poj 2033 dp 正确的解码方法数
来源:互联网 发布:苹果系统清理软件 编辑:程序博客网 时间:2024/06/04 19:24
题意:给定一种英文的编码方式,a编码为1,b编码为2...z编码为26。那么一串数字可以有不同的解码方式(比如26,可以译为z,也可以译为bf)。给定一个合理的数字串,问解码的可能个数。
思路:dp[i]表示s[1]...s[i]这些串能够组成的串的个数。那么如果s[i]=0,那么它必然不可能单独组成字符;如果不为0,那么它可以单独组成字符,即:dp[i]+=dp[i-1]。
再考虑连字符情况,只要s[i-1]s[i]组成的是合理的即可,此时dp[i]+=dp[i-2]。初始化dp[0] = dp[1] = 1;
#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <queue>#include <cstdlib>using namespace std;#define clc(s,t) memset(s,t,sizeof(s))#define INF 0x3fffffff#define N 100005char s[N];long long dp[N];int main(){ while(scanf("%s",s+1) && strcmp(s+1, "0")){ int i,j; clc(dp,0); dp[0] = 1; dp[1] = 1; for(i = 2;s[i];i++){ if(s[i] != '0') dp[i] += dp[i-1]; if(s[i-1]=='1' ||(s[i-1]=='2'&&s[i]<='6')) dp[i] += dp[i-2]; } printf("%lld\n",dp[i-1]); } return 0;}
0 0
- poj 2033 dp 正确的解码方法数
- 判断完全平方数的正确方法
- 解码方法数 Decode Ways
- CString::GetLength()获得字节数的正确方法
- 修改XP中IIS连接数的正确方法
- CString::GetLength()获得字节数的正确方法
- CString::GetLength()获得字节数的正确方法介绍
- Tomcat 7最大并发连接数的正确修改方法
- CString::GetLength()获得字节数的正确方法
- Tomcat 7最大并发连接数的正确修改方法
- CString::GetLength()获得字节数的正确方法介绍
- Tomcat 7最大并发连接数的正确修改方法
- CString::GetLength()获得字节数的正确方法介绍
- Tomcat 7最大并发连接数的正确修改方法
- Tomcat 7最大并发连接数的正确修改方法
- Tomcat 7最大并发连接数的正确修改方法
- Tomcat 7最大并发连接数的正确修改方法
- Tomcat 7最大并发连接数的正确修改方法
- eclipse新建maven webapp后无法添加src/main/java和src/main/test
- Eclipse快捷键大全
- Android Studio快捷键
- jQuery UI 学习笔记
- Extjs 表格的样式设计
- poj 2033 dp 正确的解码方法数
- xcode中配置文件
- JSON数据之间的转换
- wamp 安装及运行时出现的问题解决方法
- navigationBar改透明
- Html5从入门到精通-新增标签
- Ubuntu遇到的问题
- Android中View转换为Bitmap及getDrawingCache=null的解决方法
- 主动通知Android系统图库进行更新