[ABC322G] Two Kinds of Base
第一次赛后马上AK ABC,好激动,感觉是这场太水了,一看评分,G有2800?!
感觉这个 Trick 挺有用的:某些变量真正能取到的值其实远远没有给的范围那么大,除了某些特殊情况,而这些特殊情况可以用特殊的方式统计答案。
题意
对于一个非负整数序列
给定正整数
思路
首先,可以把数列
显然
所以上式的这一部分
考虑最朴素的做法,枚举
证明:假设从
开始依次填 ,设 表示 减去 至 的总贡献后的值, 到 能产生的最大贡献为 , 时仅 产生的贡献为 。能得到: 。所以,当 时,只有 时才有可能满足条件。而当 时, 只能等于 。如此贪心地往下填 的每一位,一直到 ,能确定一组唯一的 。
这样在固定
其实有效的
由于
而当
Code
点击查看代码
#include <bits/stdc++.h> using namespace std; #define ll long long #define ull unsigned long long #define l(x) x<<1 #define r(x) x<<1|1 #define mpr make_pair //mt19937_64 ra(time(0) ^ (*new char)); const ll SIZE = 200005; const ll mod = 998244353; ll n, X, ans; inline ll rd(){ ll f = 1, x = 0; char ch = getchar(); while(ch < '0' || ch > '9'){ if(ch == '-') f = -1; ch = getchar(); } while(ch >= '0' && ch <= '9'){ x = (x << 1) + (x << 3) + (ch ^ 48); ch = getchar(); } return f*x; } ll power(ll x, ll y){ ll jl = 1; while(y){ if(y & 1) jl = (jl * x); x = (x * x); y >>= 1; } return jl; } int main(){ n = rd(), X = rd(); ll cnt = 0; for(ll i = 1; i*i <= X; i++){ if(X%i == 0){ if(i < 10){ for(ll a = i+1+(X/i); a <= n; a++){ ll b = a-(X/i); if(b >= 10) break; ans = (ans + min(10ll, b)) % mod; } if(n-(X/i) >= 10){ ans = (ans + (10 * (n-(X/i)-10+1)) % mod) % mod; } } if(i != (X/i) && (X/i) < 10){ for(ll a = (X/i)+1+i; a <= n; a++){ ll b = a-i; if(b >= 10) break; ans = (ans + min(10ll, b)) % mod; } if(n-i >= 10){ ans = (ans + (10 * (n-i-10+1)) % mod) % mod; } } } } for(ll k = 3; k <= 20; k++){ for(ll a = 1; a <= n; a++){ if(power(a, k-1)-power(a-1, k-1) > X) break; for(ll b = a-1; b >= 1; b--){ if(power(a, k-1)-power(b, k-1) > X) break; ll jl = X; bool flag = 1; for(ll i = 1; i < k; i++){ if(jl / (power(a, k-i)-power(b, k-i)) >= min(10ll, min(a, b))) flag = 0; jl = (jl % (power(a, k-i)-power(b, k-i))); } if(jl == 0 && flag){ ans = (ans + min(10ll, min(a, b))) % mod; } } } } printf("%lld", ans); return 0; }
本文作者:Semorius
本文链接:https://www.cnblogs.com/Semorius/p/17744863.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步