HDU 3652
来源:互联网 发布:ibatis sql 编辑:程序博客网 时间:2024/06/15 04:07
http://acm.hdu.edu.cn/showproblem.php?pid=3652
数位DP,用了4维来记录,dp[vis][fg][k][index],维数分别表示前面是否有13,上一位数是否为1,当前的余数,位数深度。
#include <cstdio>#include <cstring>#include <string>#include <queue>#include <stack>#include <vector>#include <iostream>#include <algorithm>using namespace std;#define int64 __int64#define ll long long#define mod 1000000007#define M 20int num[M] , dp[2][2][M][M];int Dfs(int index , int vis , int fg , int k , int limit){ if (!index) { return vis && !k; } if (!limit && dp[vis][fg][k][index] != -1)return dp[vis][fg][k][index]; int i , ret = 0 , up = limit ? num[index] : 9; for (i = 0 ; i <= up ; i++) { ret += Dfs(index-1 , vis||(fg&&i==3) , i==1 , (i+k*10)%13 , limit&&i==up); } if (!limit) dp[vis][fg][k][index] = ret; return ret;}int Solve(int k){ int len = 0; while (k) { num[++len] = k%10; k /= 10; } return Dfs(len , 0 , 0 , 0 , 1);}int main(){ int n; memset(dp , -1 , sizeof dp); while (~scanf("%d",&n)) { printf("%d\n",Solve(n)); } return 0;}
- HDU 3652
- HDU 3652
- hdu 3652
- HDU 3652
- HDU 3652 B-number
- HDU 3652 数位DP
- hdu 3652 (counting)
- hdu 3652 数位DP
- hdu 3652 -数位dp
- 【数位DP】 【HDU 3652】
- HDU 3652 B-number
- hdu 3652 数位dp
- 数位DP HDU-3652
- HDU 3652 数位DP
- HDU 3652 数位DP
- hdu 3652 B-number
- HDU 3652 B-number
- HDU 3652 B-number
- expdp_impdp使用手册
- 跟我来玩IGFrame(一)HelloWorld
- Dalvik虚拟机的运行过程分析
- 【技术类】【ArcGIS对国产卫星的支持】篇2:资源三号(ZY-3)卫星影像数据介绍
- uboot及ubuntu下常用command
- HDU 3652
- Android中Activity、Service和线程之间的通信
- iphone检测耳机插入/拔出
- 学习平台flexpaper 读文件时一直加载中
- loadrunner基础概念介绍
- Dalvik虚拟机JNI方法的注册过程分析
- linux将文本文件变成可以执行的脚本文件
- hdu 3037 Saving Beans 【大组合数取模-Lucas定理+逆元取模】
- STL学习小结