pku + 2033

 1 #include <iostream>
 2 #include <string>
 3 #include <new>
 4 #include <vector>
 5 using namespace std;
 6 
 7 inline int ji_suan( char &ch1,char &ch2 )
 8 {
 9     int j = ( ch1 - '0' ) * 10 + ( ch2 - '0' );
10     return j;
11 }
12 int main()
13 {
14     string str;
15     vector<int> v1;
16     while ( cin >> str && str != "0" )
17     {
18         for ( int i = 0; i != str.size(); ++i )
19             v1.push_back(0);
20         if ( str[0- '0' >= 1 && str[0- '0' <= 26 )
21             v1[0= 1;
22         int i = 1;
23         for ( ; i != str.size(); ++i )
24         {
25             if ( ( i + 1 != str.size() && str[i+1== '0' ) || str[i] == '0' || str[i-1== '0' ) //判断 0 的情况
26             {
27                 v1[i] = v1[i-1];
28                 continue;
29             }
30             int j = ji_suan( str[i-1],str[i] );
31             if ( i == 1 && ( j >= 1 && j <= 26 ) ) // 然后 是一个 推的 过程 动动笔就明白了
32                 v1[i] = v1[i-1+ 1;
33             else if ( i > 1 )
34             {
35                 if ( j >= 1 && j <= 26 )
36                     v1[i] = v1[i-1+ v1[i-2];
37                 else v1[i] = v1[i-1];
38             }
39             else v1[i] = v1[i-1]; // 主要 是针对 i == 1 不成立的时候
40         }
41         cout << v1[i-1<< endl;
42         v1.clear();
43     }
44     return 0;
45 }
46 

posted on 2010-06-07 21:01 haozi 阅读(110) 评论(0)  编辑 收藏 引用 所属分类: 动态规划


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2010年6月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

导航

统计

常用链接

留言簿

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜