hdu3555(数位dp)
来源:互联网 发布:ios leancloud数据库 编辑:程序博客网 时间:2024/06/05 09:07
链接:点击打开链接
题意:求1~N中含49的数的个数(4和9必须相邻)
代码:
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;long long dp[50][10],dight[50];long long solve(long long x){ long long i,j,len,ans,temp; temp=x; memset(dight,0,sizeof(dight)); len=1;ans=0; while(x){ dight[len++]=x%10; x/=10; } for(i=len;i>=1;i--){ for(j=0;j<dight[i];j++){ if(!(dight[i+1]==4&&j==9)) ans+=dp[i][j]; } if(dight[i+1]==4&&dight[i]==9) break; } return temp-ans; //返回值改成含49的个数}int main(){ //数位dp 具体看http://blog.csdn.net/stay_accept/article/details/48749621 long long t,n,i,j,k; //这题求的是含49的个数 memset(dp,0,sizeof(dp)); dp[0][0]=1; for(i=1;i<=25;i++) //数据量变大了因此要预处理更多数据 for(j=0;j<=9;j++) for(k=0;k<=9;k++){ if(!(j==4&&k==9)) dp[i][j]+=dp[i-1][k]; } scanf("%lld",&t); while(t--){ scanf("%lld",&n); printf("%lld\n",solve(n+1)-solve(1)); } return 0;}
1 0
- 【数位DP】 hdu3555 Bomb
- 【hdu3555】【数位DP】Bomb
- 【数位DP】Bomb HDU3555
- hdu3555 Bomb 数位DP
- hdu3555数位dp
- 数位dp hdu3555
- HDU3555:Bomb(数位DP)
- hdu3555 Bomb (数位DP)
- HDU3555 Bomb 数位DP
- hdu3555 数位DP
- hdu3555(数位DP)
- Hdu3555 - Bomb - 数位dp
- hdu3555 Bomb 数位dp
- hdu3555 Bomb(数位DP)
- HDU3555 Bomb 数位DP
- hdu3555,hdu2089 数位dp
- hdu3555(数位DP)
- hdu3555 数位dp
- TCP 与 UDP
- PAT(甲级)1043
- poj2817状态压缩DP
- 汽车租赁
- HDU - 1087 Super Jumping! Jumping! Jumping!(DAG)
- hdu3555(数位dp)
- iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)
- mongoDB 3.0 安全权限访问控制
- 无技术实用调试技巧
- PAT(甲级)1044
- 2600:War
- ubuntu git安装
- ASP.NET中的几种弹出框提示基本实现方法
- Fliter设置字符编码,解决中文问题