HDU 3555 Bomb
来源:互联网 发布:javascript选项卡切换 编辑:程序博客网 时间:2024/06/04 18:07
越来越迷了。。。
数位DP
(HDU这几天怎么炸了。。。)
题目大意:给你一个数
简单数位DP,
代码:
#include<cstdio>#include<cstring>#include<algorithm>#define MAXN 25typedef long long LL;using namespace std;LL f[MAXN+5][2],ten[MAXN+5];int t,n,num[MAXN+5];LL x;LL dfs(int now,bool flag,bool fg){//当前枚举到第now位,是不是4的状态为flag,是否受限的状态为fg if (now==0) return 0; if (!fg&&f[now][flag]>=0) return f[now][flag];//如果已经计算过直接返回 LL ret=0; int m; if (fg) m=num[now]; else m=9;//分是否受限两种情况 for (int i=0;i<=m;i++) if (flag&&i==9)//如果前一位为4并且当前为9 if (fg) ret+=x%ten[now-1]+1; else ret+=ten[now-1]; else ret+=dfs(now-1,i==4,fg&&num[now]==i); if (fg) return ret; else return f[now][flag]=ret;//更新}LL ans(LL x){ n=0; while (x){ num[++n]=x%10; x/=10; } num[n+1]=0; return dfs(n,false,true);}int main(){ memset(f,-1,sizeof(f)); ten[0]=1; for (int i=1;i<20;i++) ten[i]=ten[i-1]*10; scanf("%d",&t); while (t--){ scanf("%lld",&x); printf("%lld\n",ans(x)); } return 0;}
阅读全文
1 0
- hdu HDU 3555 Bomb
- hdu 3555 Bomb
- hdu 3555 Bomb
- HDU 3555 Bomb
- hdu 3555 Bomb
- HDU:3555 Bomb
- HDU 3555 Bomb
- hdu 3555 Bomb
- hdu 3555 Bomb
- hdu 3555 Bomb
- hdu 3555 Bomb
- HDU-3555 Bomb
- hdu-3555-Bomb
- HDU 3555 Bomb
- HDU 3555 Bomb [数位]
- HDU 3555 Bomb
- HDU 3555 Bomb
- HDU 3555 Bomb
- 使用anaconda打开ipynb文件
- NO 76 Minimum Window Substring
- RAW图像数据到RGB
- 加色法和减色法
- 12.Oracle杂记——Oracle等待事件性能监控脚本
- HDU 3555 Bomb
- html5新增标签canvas画布基础详解及实操案例(上)
- 官方引例——色彩目标跟踪
- SSH原理和基本使用:ssh 安全配置 以及ssh key 认证登录
- SQLMap入门之在Windows上安装SQLMap
- Struts2深入理解
- Android -- 自定义View小Demo,绘制四位数随机码
- LINUX使用记录
- lintcode最大子数组