CF10E 题解
有
将货币集合记作一个
记金额
易证
设
设
结论:
证明:
因为
由(1):
由(2)有
结合(3)(4),发现
这说明第
那有没有可能
于是我们证明了这个结论。(是不是都忘记我们要证明什么了?)
但是怎么转换到代码上?
int G(int x) { //x用贪心法的答案
int ans = 0;
for (int i = 1; i <= n; i++) {
int d = x / c[i];
ans += d;
x -= c[i] * d;
}
return ans;
}
//...
int ans = 0x3f3f3f3f;
for (int i = 2; i <= n; i++) {
int x = c[i - 1] - 1;
int cnt = 0; //把j理解成可以用到哪一位,cnt会维护贪心法的答案
for (int j = i; j <= n; j++) {
int d = x / c[j];
cnt += d;
x -= c[j] * d; //维护i~j贪心法答案
if (cnt + 1 < G(c[i - 1] - 1 - x + c[j]))
ans = min(ans, c[i - 1] - 1 - x + c[j]);
//因为M(w)和G(c[i-1]-1)只有第j维相差1,所以M(w)的数量就是cnt+1
//此时cnt对应的w=c[i-1]-1-x+c[j],因为cnt维护的是i~j维的贪心法,所以要减去x;但是因为M(w)比G(c[i-1]-1)的第j维大1,所以要+c[j]
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!