Sicily 1001. Alphacode
动态规划题目,若第i个字符能够和前一个字符构成有意义的密码,即10-26,则这个字符前(包括这个字符)的子字符串可以构成的可能解有dp[i] =dp[i-1]+dp[i-2]个,因为此时:这个字符可以单独作为一个密码存在,此时整个子字符串有dp[i-1]个解;又或者是和前一个字符作为一个密码存在,此时整个字符串有dp[i-2]个解。若第i个字符无法和其前一个字符构成有意义的密码,那么这个字符只能作为一个单独的密码存在,此时整个子字符串有dp[i-1]个解。若当前字符是0,由于密码的正确性,其前一个字符必定是0或者1,此时整个子字符串有dp[i-2]个解。另外数组要开得大点,因为题目中没有说明字符串最大有多大,也可以只设3个变量来解决这个问题,毕竟这个动态转移方程和斐波纳兹函数很像。
Run Time: 0sec
Run Memory: 312KB
Code length: 651Bytes
SubmitTime: 2012-02-0121:54:13
// Problem#: 1001
// Submission#: 1204017
// The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
// URI: http://creativecommons.org/licenses/by-nc-sa/3.0/
// All Copyright reserved by Informatic Lab of Sun Yat-sen University
#include <iostream>
#include <string>
using namespace std;int main()
{int i;string s;int num[ 3 ];while ( cin >> s && s != "0" ) {num[ 0 ] = num[ 1 ] = num[ 2 ] = 1;for ( i = 1; i < s.size(); i++ ) {num[ 0 ] = num[ 1 ];num[ 1 ] = num[ 2 ];if ( s[ i ] == '0' )num[ 2 ] = num[ 0 ];else if ( ( s[ i - 1 ] == '1' && s[ i ] <= '9' ) || ( s[ i - 1 ] == '2' && s[ i ] <= '6' ) )num[ 2 ] = num[ 0 ] + num[ 1 ];elsenum[ 2 ] = num[ 1 ];}cout << num[ 2 ] << endl;}return 0;}
Sicily 1001. Alphacode相关推荐
- 【艾米莉娅】Sicily:1001. Alphacode 代码分享
Code in C Language for SOJ 1001. Alphacode (代码没啥注释是因为后天要考四级却还没有复习) 事情是这样的(:з)∠)_ 某日突然知道中大还有类似于POJ的SO ...
- Sicily 1001. 叠罗汉
Description 最近叠罗汉成为一种时尚运动,于是有了叠罗汉社-- 或许有人比较out,不清楚这种运动的规则,简单来说:就是人叠人,第一个人站在地面,第二个人站在第一个人的肩膀,第三个人站在第二 ...
- sicily题目分类
sicily题目分类 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. ...
- [sicily]部分题目分类
sicily题目分类 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. ...
- Sicily 题目分类
依照自己水平挑着做→ →~~ 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 ...
- Soj题目分类 python代码)
正值期末复习,刷点soj放松下 但想看看能不能在找点关于数据结构的题目来做一下. 在网上看到有不少人上传过那些关于部分SOJ题目的描述,但是说实话有些乱 不过我看到有个网页中包含的一个类似文档的东西, ...
- 初学者acm的练习题指南
上机练习题参考题 忘了在哪找的啦~~希望对大家有帮助呦 <!--[if !supportLists]-->1. <!--[endif]-->Programming Bas ...
- 编程题目分类(剪辑)
1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. 模拟 12. 算术与代 ...
- [sicily]【1001】 会议安排(田忌赛马类贪心)
题干: N个会议要同时举行,参会人数分别为A[0], A[1], ...,A[N-1]. 现有M个会议室,会议室可容纳人数分别为B[0], B[1], ...,B[M-1]. 当A[i]<=B[ ...
最新文章
- 零基础学汇编 --小甲鱼
- MPB:中科院城环所杨军组-​​​基于DNA宏条形码的水体浮游细菌群落测序建库方法...
- Quzrtz 使用oracle集群无法正常启动问题解决
- (转)虚函数和纯虚函数区别
- bloom filter 的Java 版
- ibm nvidia 超级计算机,IBM,Nvidia和美国能源部组成一个超级计算机超级团队
- 指标公式c语言源码下载,自用60分钟指标源码
- 企业级实际性能测试案例与经验分享
- 1.实验:删除CentOS6下/boot/vmlinuz文件修复之
- yarn的安装和使用
- Android ANR:executing service com.xxx.yyy/cn.jpush.android.service.PushService
- 《从0开始做运营[张亮]》——读书笔记
- JAVA对接飞猪旅行_飞猪 - 开放平台
- 读书笔记: 与爱因斯坦月球漫步-记忆术
- KendoUI系列:switch 开关
- 这是您正在找的大数据、人工智能实战培训课程!
- FinalShell使用教程:SSH链接Linux服务器
- oracle中的trim函数使用介绍
- python中的map什么意思啊_python中的map怎么使用(方法详解)
- 年会活跃微信群小游戏有哪些?塔防小游戏经典玩法讲解