HDU 3652 B-number DP入门
来源:互联网 发布:g76数控车床车蜗杆编程 编辑:程序博客网 时间:2024/06/07 22:59
也是入门题,相比不要62那题, 只需要多开一维have,初始化维0,存储每次选择数字后对13取余;
prev中存储每次前一位是否为1;
#include <cstdio>#include <string>#include <cstring>#include <iostream>#include <algorithm>#include <vector>#define maxn 30using namespace std;#define ll long longint limit[40],dp[40][10][20];int dfs(int now,int prev,int have,bool flag){ if(now<=0) return prev==2&&have==0; if(!flag&&dp[now][prev][have]!=-1) return dp[now][prev][have]; int bound=flag?limit[now]:9,ret=0; for(int k=0;k<=bound;k++) { int prev_x,have_x; prev_x=prev; have_x=(have*10+k)%13; if(prev==0&&k==1) prev_x=1; if(prev==1&&k!=1) prev_x=0; if(prev==1&&k==3) prev_x=2; ret+=dfs(now-1,prev_x,have_x,flag&&(k==bound)); } if(!flag) dp[now][prev][have]=ret; return ret;}int count(int x){ int len=0; while(x) { limit[++len]=x%10; x/=10; } return dfs(len,0,0,true);}int main(){ int n; memset(dp,-1,sizeof(dp)); while(cin>>n) { cout<<count(n)<<endl; } return 0;}
0 0
- HDU 3652 B-number DP入门
- 数位DP入门之hdu 3652 B-number
- hdu B-number 3652 数位dp入门 第一发
- HDU 3652--B-number(数位dp)
- HDU 3652 B-number(数位DP)
- [HDU 3652]B-number[数位DP]
- hdu 3652 B-number (数位DP)
- hdu 3652 B-number(数位DP)
- HDU:3652 B-number(数位DP)
- HDU-3652 B-number 数位DP
- HDU 3652 B-number(数位dp模版)
- hdu 3652 B-number(数位dp)
- [数位dp] hdu 3652 B-number
- 【HDU】3652 B-number 数位DP
- hdu 3652 B-number(数位dp)
- HDU 3652 B-number (数位DP)
- HDU 3652 B-number(数位DP)
- HDU 3652 B-number(数位DP)
- 海关总署发布公告 朋友圈代购可能被视为走私
- 团购网站大缩水:5058家团购网站 只剩176家
- printf("hello world"); x=6; 日志中没有"hello world", 但x=6居然执行了?
- 上半年团购网站数量大幅度减少 网站存活率仅有3.5%
- 字典知识点,集合知识点
- HDU 3652 B-number DP入门
- 网址导航如何在阵痛中寻找发展良机
- 正确选择长尾关键词 提升网站定向流量
- 从哈耶克的多元货币竞争理论到比特币
- 华为荣耀599元新机:5寸720p屏+四核
- java volatile深入内存详解
- UVA - 11205 The broken pedometer(子集枚举+增量构造法)
- 二进制转16进制JAVA代码
- 小米MIUI 6开启内测:首批适配小米4和小米3