POJ 1850 Code (数位DP)
来源:互联网 发布:动感单车品牌 知乎 编辑:程序博客网 时间:2024/06/09 16:43
题目地址:POJ 1850
简单数位DP,只需要多处理一下0的时候。
代码如下:
#include <iostream>#include <string.h>#include <math.h>#include <queue>#include <algorithm>#include <stdlib.h>#include <map>#include <set>#include <stdio.h>using namespace std;#define LL __int64#define pi acos(-1.0)const int mod=100000000;const int INF=0x3f3f3f3f;const double eqs=1e-8;LL dp[12][30];char s[12], c[12];LL dfs(int cnt, int pre, int maxd){ if(cnt==-1) return 1&⪯ if(maxd&&pre&&dp[cnt][pre]!=-1) return dp[cnt][pre]; int i, r=maxd?26:c[cnt]-'a'+1; LL ans=0; if(!pre) ans+=dfs(cnt-1,0,maxd||0<r); for(i=pre+1;i<=r;i++){ ans+=dfs(cnt-1,i,maxd||i<r); } if(maxd&&pre) dp[cnt][pre]=ans; return ans;}int main(){ int len, i, flag; memset(dp,-1,sizeof(dp)); while(scanf("%s",s)!=EOF){ len=strlen(s); flag=0; for(i=1;i<len;i++){ if(s[i]<=s[i-1]){ flag=1; break; } } if(flag){ puts("0"); continue ; } for(i=0;i<len;i++){ c[i]=s[len-1-i]; } printf("%I64d\n",dfs(len-1,0,0)); } return 0;}
0 0
- POJ 1850 Code (数位DP)
- poj 1850 数位DP
- poj 3252 数位dp (数位统计)
- poj 1850 数位dp/排列组合
- poj 3252(数位dp)
- poj 3252 Round Numbers(数位dp)
- poj 3208 Apocalypse Someday (数位dp)
- poj 3252 Round Numbers(数位dp)
- POJ 3208 Apocalypse Someday(数位DP)
- POJ 3252 round numbers(数位DP)
- POJ 3252 Round Numbers(数位dp)
- POJ 3252 Round Numbers (数位dp)
- poj 3252 数位dp(Round Number)
- POJ 3252 Round Numbers(数位DP)
- POJ-3252 Round Numbers (数位DP)
- POJ 3252 - Round Numbers(数位dp)
- POJ 2229 Sumsets(数位DP)
- 【POJ】2346 - Lucky tickets(数位dp)
- 让UILabel的文字顶部对齐
- S2SH搭建Struts2报错
- 1、说到Android的屏幕适配,首当其冲的就是图片的适配
- 零基础学习hadoop到上手工作线路指导(初级篇)
- poj1942--Paths on a Grid(组合篇4)
- POJ 1850 Code (数位DP)
- 记录下mybatis中#{}和${}传参的区别
- Error: could not find java.dll如何解决
- EasyUI表单元素总结
- Java开发中的23种设计模式详解(转)
- C1驾考成都胜利考场科目二经验
- 手机游戏内存优化
- 常用税收风险管理指标
- 基础搜索算法题解(N-R)