【HDOJ】【3555】Bomb
数位DP
cxlove基础数位DP第二题
与上题基本相同(其实除了变成long long以外其实更简单了……)
//HDOJ 3555
#include<cmath>
#include<vector>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#define rep(i,n) for(int i=0;i<n;++i)
#define F(i,j,n) for(int i=j;i<=n;++i)
#define D(i,j,n) for(int i=j;i>=n;--i)
#define pb push_back
using namespace std;
int getint(){
int v=,sign=; char ch=getchar();
while(!isdigit(ch)) {if(ch=='-') sign=-; ch=getchar();}
while(isdigit(ch)) {v=v*+ch-''; ch=getchar();}
return v*sign;
}
const int N=1e7+,INF=~0u>>;
const double eps=1e-;
typedef long long LL;
/*******************template********************/
LL dp[][];
LL len,bit[];
//dp[i][0]表示不含49的i位数字
//dp[i][1]表示不含49,且最高位为9
//dp[i][2]表示存在49
void init(){
dp[][]=;
F(i,,){
dp[i][]=(LL)dp[i-][]*-dp[i-][];
dp[i][]=dp[i-][];
dp[i][]=(LL)dp[i-][]*+dp[i-][];
}
}
LL solve(LL n){
len=; n++;
for(;n;n/=) bit[++len]=n%;
bit[len+]=;
printf("check : ");
D(i,len,) printf("%lld",bit[i]);
printf("\n");
LL ans=;
bool flag=false;
D(i,len,){
ans+=(LL)dp[i-][]*bit[i];
if (flag) ans+=(LL)dp[i-][]*bit[i];
if (!flag && bit[i]>) ans+=dp[i-][];
if (bit[i+]== && bit[i]==) flag=true;
}
return ans;
}
int main(){
init();
int T;LL n;
for(T=getint();T;T--){
scanf("%I64d",&n);
printf("%I64d\n",solve(n));
}
return ;
}
【HDOJ】【3555】Bomb的更多相关文章
- 【HDOJ图论题集】【转】
		=============================以下是最小生成树+并查集====================================== [HDU] How Many Table ... 
- 【集训笔记】博弈论相关知识【HDOJ 1850【HDOJ2147
		以下资料来自:http://blog.csdn.net/Dinosoft/article/details/6795700 http://qianmacao.blog.163.com/blog/stat ... 
- 【数位dp】【HDU 3555】【HDU 2089】数位DP入门题
		[HDU 3555]原题直通车: 代码: // 31MS 900K 909 B G++ #include<iostream> #include<cstdio> #includ ... 
- 【HDOJ 5379】 Mahjong tree
		[HDOJ 5379] Mahjong tree 往一颗树上标号 要求同一父亲节点的节点们标号连续 同一子树的节点们标号连续 问一共同拥有几种标法 画了一画 发现标号有二叉树的感觉 初始标号1~n 根 ... 
- HDOJ 1238 Substrings 【最长公共子串】
		HDOJ 1238 Substrings [最长公共子串] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Ja ... 
- HDOJ 1423 Greatest Common Increasing Subsequence 【DP】【最长公共上升子序列】
		HDOJ 1423 Greatest Common Increasing Subsequence [DP][最长公共上升子序列] Time Limit: 2000/1000 MS (Java/Othe ... 
- HDOJ 1501 Zipper 【DP】【DFS+剪枝】
		HDOJ 1501 Zipper [DP][DFS+剪枝] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Ja ... 
- 【HDOJ 2089】不要62
		[HDOJ 2089]不要62 第一个数位dp的题 做的老困难了...只是好歹是做出来了 迈出了第一步.. 对大牛来说这样的题都是小case ps:新上一个记忆化方法 一些绕弯的题里用dfs好想些 代 ... 
- 【HDOJ 5371】 Hotaru's problem
		[HDOJ 5371] Hotaru's problem Manacher算法+穷举/set Manacher算法一好文:http://blog.csdn.net/yzl_rex/article/de ... 
- 【HDOJ 5654】 xiaoxin and his watermelon candy(离线+树状数组)
		pid=5654">[HDOJ 5654] xiaoxin and his watermelon candy(离线+树状数组) xiaoxin and his watermelon c ... 
随机推荐
- ubuntu上部署github博客,利用hexo
			安装Node.js三种安装方法,前两种是我安装过的,后一种是 Google 到的. #####①:apt-get 安装在 终端 输入 nodejs 或者 npm ,如果没有安装会提示你进行安装,命令如 ... 
- ASP.NET C# 文件下载
			1.文件下载到客户端 //WriteFile实现下载 protected void Download_Click(object sender, EventArgs e) { string fileNa ... 
- 集合类学习之Hashmap机制研究
			1.遍历的两种实现方法 //新建 Map map=new HashMap(); //存储值 map.put() ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 //遍历方式 ... 
- JqueryPagination 分页插件使用说明
			JqueryPagination是个简单轻量级的分页插件,使用起来很容易,只要初始化一个实例,并设置总数量.翻页回调函数.其它参数就可以实现无刷新分页功能了 1 首先引入相关js文件: <lin ... 
- Cocos2d-JS内置粒子系统
			从类图中我们可以看到,Cocos2d-JS中有内置的11种粒子,这些粒子的属性都是预先定义好的,我们也可以在程序代码中单独修改某些属性,我们在上一节的实例中都已经实现了这些属性的设置.内置粒子系统内置 ... 
- hdu 1716(dfs)
			题目链接 : http://acm.hdu.edu.cn/showproblem.php?pid=1716 排列2 Problem Description Ray又对数字的列产生了兴趣:现 ... 
- MATLAB 生成 COM 步骤
			环境: 操作系统:windows xp sp3 MATLAB:Version 7.1.0.246(R14) Service Pack 3 第一步:安装编译器(如果已经安装则可跳过此步) 在MATLAB ... 
- 8款最受欢迎的HTML5/CSS3应用及源码
			新的一周开始,小编也将继续为大家分享精彩的HTML5应用,还有CSS3和jQuery方面的东西.今天给大家带来的是8款最受欢迎的HTML5/CSS3应用及代码,一起来看看吧. 1.基于HTML5 Ca ... 
- 卡通投掷游戏ios源码
			卡通投掷游戏源码,一款基于cocos2d很有意思的卡通投掷游戏源码,使用重力感应摇动手机让猴子打转,然后点击屏幕任何地方将猴子抛出去,抛出去的过程中会收集星星,游戏的规则就是抛得越远越好,收集的星星最 ... 
- mycat1.5~1.6的一个bug
			以下语句在mysql单库中执行正常: SELECT * FROM device WHERE devicetype='AMS.Monitoring.XlCloud.QKL8154.XLCloudDevi ... 
