BZOJ4230: 倒计时
2024-08-25 23:11:00
4230: 倒计时
Time Limit: 10 Sec Memory Limit: 256 MB
Submit: 20 Solved: 12
[Submit][Status][Discuss]
Description
这是一个特别的倒计时方法。
具体来说,一开始你有一个非负整数n。
每一次操作,你可以从当前的数上减去当前的数某个数位上的数值。当当前数变成0时,倒计时结束。
大概没什么人会对这样不便于使用的倒计时方法充满好奇,但是现在你仍然被要求回答让倒计时结束的最少操作次数。
Input
一行一个非负整数n
Output
让倒计时结束的最少操作次数
Sample Input
24
Sample Output
5
HINT
对于全部数据,n<=10^18
这就是郑远航眼中的NOIP题2333333
设f[x][len][y]为9999999y,共有len个9,前面最大值为x的数减到0以下的步数,g[x][len][y]为减到0以下剩的值。
然后对于x,我们先逐位减到0,然后就是秀智商与心理素质的时候了。
#include<cstdio>
#include<cctype>
#include<queue>
#include<cmath>
#include<cstring>
#include<algorithm>
#define rep(i,s,t) for(int i=s;i<=t;i++)
#define dwn(i,s,t) for(int i=s;i>=t;i--)
#define ren for(int i=first[x];i!=-1;i=next[i])
using namespace std;
typedef long long ll;
ll n,f[][][],g[][][],xp[];
int bit[],m;
int main() {
rep(x,,) rep(y,,) {
if(x<=y) f[x][][y]=,g[x][][y]=-x;
else f[x][][y]=,g[x][][y]=-x+y;
}
xp[]=;
rep(i,,) xp[i]=xp[i-]*;
rep(len,,) rep(x,,) rep(y,,) {
ll res=,cur=y;
dwn(i,,) res+=f[max(i,x)][len-][cur],cur=g[max(i,x)][len-][cur];
f[x][len][y]=res;g[x][len][y]=cur;
}
scanf("%lld",&n);
if(!n) puts("");
else if(n<) puts("");
else {
ll ans=,cur=n%,n0=n;
while(n0) bit[++m]=n0%,n0/=;
rep(i,,m-) {
int C=;
rep(j,i+,m) C=max(C,bit[j]);
int k;
if(i==) k=bit[i];
else k=bit[i]-;
dwn(j,k,) ans+=f[max(C,j)][i-][cur],cur=g[max(C,j)][i-][cur];
}
int k;
if(m==) k=bit[m];
else k=bit[m]-;
dwn(i,k,) ans+=f[i][m-][cur],cur=g[i][m-][cur];
dwn(i,m-,) dwn(j,,) ans+=f[j][i][cur],cur=g[j][i][cur];
printf("%lld\n",ans+);
}
return ;
}
最新文章
- iOS 网易新闻用到的框架
- Swift运算符
- 关于windows下QT以及QT creator的安装
- DWZ框架中ajax提交文件表单的处理(关闭当前dialog + 刷新父级navTab)
- Uncaught SyntaxError: Unexpected token ILLEGAL
- uboot make xxx_config与make的过程分析
- kallisto:Near-optimal RNA-Seq quantification
- Android广播BroadcastReceiver 一
- WIFI接入Internet配置过程
- Spring第八篇【XML、注解实现事务控制】
- 信号(1): signal
- Web项目发布的一些设置
- ELF文件解析(二):ELF header详解
- seo网页加速技术,预加载 DNS Prefetching 详解
- Java 的字符串,String、StringBuffer、StringBuilder 有什么区别?
- js彈出層或者js彈出引用url Frame 層
- ffmpeg截图
- NppFTP小插件的使用
- codeforces gym 100825 D Rings
- rhythmbox插件开发笔记2:背景知识学习 D-Bus&;VFS&;Gio&; Python GTK+ 3
热门文章
- 《ASP.NET1200例》<;ItemTemplate>;标签在html里面有什么具体的作用
- 简单方便地扩充Python的系统路径
- MyBatis3: There is no getter for property named &#39;code&#39; in &#39;class java.lang.String&#39;
- Android 中SimpleDateFormat的使用注意
- iOS 中的字体预览
- php扩展开发初探
- php中static静态关键字的使用
- 利用 Chromium Embedded Framework (CEF) 定制提取 Flash 视频的浏览器
- 5.python(迭代器,装饰器,生成器,基本算法,正则)
- springJDBC一对多关系,以及Java递归,jsp递归的实现