HYSBZ - 1026 windy数 数位DP
来源:互联网 发布:淘宝宽屏 编辑:程序博客网 时间:2024/06/13 09:32
题目大意:windy定义了一种windy数。不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。 windy想知道,在A和B之间,包括A和B,总共有多少个windy数?
解题思路:模板题目,初始的pre是12,保证第一位能满足
#include<cstdio>#include<cstring>#include<cmath>using namespace std;int data[12],dp[12][13];int DP(int pos,int pre,bool jud, bool board) {if(pos == -1)return 1;if(!board && dp[pos][pre] != -1)return dp[pos][pre];int ans = 0;int end = board? data[pos]:9;for(int i = 0; i <= end; i++) {if(!(jud || i)) ans += DP(pos-1,12,0,board && (i == end));else if(fabs(pre-i) >= 2)ans += DP(pos-1,i,1,board && (i == end));}if(!board)dp[pos][pre] = ans;return ans;}int solve(int x) {int pos = 0;while(x) {data[pos++] = x % 10;x = x / 10;}return DP(pos-1,12,0,1);}int main() {int left,right;memset(dp,-1,sizeof(dp));scanf("%d%d",&left,&right);printf("%d\n",solve(right) - solve(left-1));return 0;}
0 0
- HYSBZ:1026 windy数(数位DP)
- HYSBZ - 1026 windy数 数位DP
- HYSBZ 1026 windy数 (数位DP)
- HYSBZ 1026 windy数 数位dp
- HYSBZ - 1026 windy数 (数位DP)
- HYSBZ 1026——windy数(数位dp)
- HYSBZ 1026windy数
- 数位DP --Windy数
- 数位DP Windy数
- 数位dp windy数
- windy数 【数位DP】
- 【数位Dp】windy数
- [bzoj 1026]windy数[数位DP]
- 数位dp BZOJ 1026: [SCOI2009]windy数
- BZOJ 1026 SCOI2009 windy数 数位DP
- bzoj 1026 windy数(数位DP)
- 【BZOJ】1026: [SCOI2009]windy数 数位DP
- bzoj 1026 Windy数 数位DP
- jquery 中的empty()和remove()
- 把工作都放在文档里,解放思想。
- 在恰当的地方使用MongoDB的WriteConcern.SAFE参数
- UIGestureRecognizer学习笔记
- ArrayList的addAll方法使用注意
- HYSBZ - 1026 windy数 数位DP
- C#常用编程技巧(待续)
- Codeforces Round #279 (Div. 2) C. Hacking Cypher
- 统计字母‘A’出现的次数
- Codeforces Team Olympiad(暴力)
- Swift学习笔记一
- escape()、encodeURI()、encodeURIComponent()区别详解
- 游戏种通用提示框的设计模板和应用(待续)
- ArrayList的add()方法使用