P10202 [湖北省选模拟 2024] 沉玉谷 / jade
P10202 [湖北省选模拟 2024] 沉玉谷 / jade
看到求
那么我们就来研究一下
通过手玩一些数可以发现,不存在某种明显的贪心策略。那么怎么 dp?首先可以观察到一个性质:
进一步可以发现,中间过程会达到的绝对值最大值也可以推出不超过
于是需要设计一个可达性状态。到这里也就可以大胆将当前答案放到状态里了,设 __int128
将每个状态压成一个数去转移。
猜测状态数不多,于是写出
#include <bits/stdc++.h>
#define pii std::pair<int, int>
#define mk std::make_pair
#define fi first
#define se second
#define pb push_back
using i64 = long long;
using ull = unsigned long long;
const i64 iinf = 0x3f3f3f3f, linf = 0x3f3f3f3f3f3f3f3f;
/*
*/
const int N = 21, M = 18010, B = 81;
int q, n, k, tot, len;
int tr[M][10], g[M], a[N];
std::map<__int128, int> mp;
i64 f[N][M][N];
__int128 o = 1;
void write(__int128 x) {
if(x < 0) putchar('-'), x = -x;
if(x > 9) write(x / 10);
putchar(x % 10 + '0');
return;
}
i64 build(__int128 sta) {
if(mp[sta]) return mp[sta];
int id = mp[sta] = ++tot;
for(__int128 i = 0; i <= B; i++) {
if((sta >> i) & 1) {
g[id] = i;
break;
}
}
for(int c = 0; c <= 9; c++) {
__int128 nxt = 0;
for(__int128 i = 0; i <= B; i++) {
if((sta >> i) & 1) {
if(i + c <= B) nxt |= (o << (i + c));
if(i >= c) nxt |= (o << (i - c));
else nxt |= (o << (c - i));
}
}
tr[id][c] = build(nxt);
}
return id;
}
i64 dfs(int dep, int eq, int sta) {
if(!dep) {
return g[sta] <= k;
}
if(!eq && f[dep][sta][k] != -1) return f[dep][sta][k];
int ed = eq ? a[dep] : 9;
i64 ret = 0;
for(int i = 0; i <= ed; i++) {
ret += dfs(dep - 1, eq && (i == ed), tr[sta][i]);
}
if(!eq) f[dep][sta][k] = ret;
return ret;
}
i64 solve(i64 x) {
len = 0;
while(x) a[++len] = x % 10, x /= 10;
return dfs(len, 1, 1);
}
void fake_main() {
i64 l, r;
std::cin >> l >> r >> k;
if(k >= 9) std::cout << r - l + 1<< "\n";
else std::cout << solve(r) - solve(l - 1) << "\n";
}
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
memset(f, -1, sizeof(f));
build(o);
std::cin >> q;
while(q--) fake_main();
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具