Sicily 1001(dp)
2015-05-11 10:20
253 查看
题目连接:http://soj.sysu.edu.cn/1001
解题报告:f[i]表示第i个字母前能组成的种类
情况:1、s[i]==0,f[i]=f[i-1]
2、s[i-1]*10+s[i]>=10&&<=26,f[i]=f[i-1]+f[i-2]
3、!s[i-1]*10+s[i]>=10&&<=26,f[i]=f[i-1];
解题报告:f[i]表示第i个字母前能组成的种类
情况:1、s[i]==0,f[i]=f[i-1]
2、s[i-1]*10+s[i]>=10&&<=26,f[i]=f[i-1]+f[i-2]
3、!s[i-1]*10+s[i]>=10&&<=26,f[i]=f[i-1];
#include <iostream> #include <cstring> #include <string> using namespace std; int f[10000] ; int main() { string s ; while(cin >> s && s[0] != '0') { s = ' ' + s ; memset(f,0,sizeof(f)) ; f[0] = 1 ; f[1] = 1 ; for(int i = 2 ; i < s.size() ;i ++) { if(s[i] == '0') { f[i] = f[i-2] ; } else { f[i] = f[i-1]; if(10*(s[i-1] - '0')+s[i]-'0' > 9 && 10*(s[i-1] - '0')+s[i]-'0' <= 26) { f[i] = f[i] + f[i-2] ; } } } cout << f[s.size()-1] << endl; } }
相关文章推荐
- sicily 1001. Alphacode dp
- sicily 1001. Alphacode (DP)
- HDU 4632 Palindrome subsequence (2013多校4 1001 DP)
- 2016 Multi-University Training Contest 4 1001 Another Meaning (DP)
- Sicily 1001. Alphacode
- Sicily 1327 Pinary (SOJ 1327) 【dp 动态规划】
- sicily1822 Fight club(dp)
- sicily 1345. 能量项链(dp)
- sicily 1001. Alphacode
- Sicily.1001. Alphacode
- sicily 1001. 整数调换位置
- hdu 4655 Cut Pieces/杭电多校第六场1001 找规律,或者dp
- #sicily#1001.寻找第k大数字(numberk)
- HDU 6114 Chess(DP)2017百度之星初赛(B) 1001
- sicily 1001. Alphacode
- sicily1001 全排列(升序)
- sicily-1001 alphacode
- Sicily 1001. Alphacode
- sicily_course_1001
- 动态规划实例:"Alphacode" From Sicily 1001