XTU 1151 bus 不互相包含的最多的对的个数 DP题
来源:互联网 发布:淘宝达人广场电脑 编辑:程序博客网 时间:2024/06/05 20:47
Bus
Accepted : 49 Submit : 478Time Limit : 1000 MS Memory Limit : 65536 KB题目描述
小强刚来到长沙这个大城市,发现这里有很多他老家没有的东西,其中一个就是公交车了。小强的家到学校有很多个公交站,每个公交站都有一个英文名字。小强很喜欢坐公交车,但是他有个奇怪的要求,就是公交车的上车站和下车站的英文名字必须是首字母相同的,且不在同一个站上下车,不然小强宁愿走过这个站去搭下一趟车,甚至直接走到学校。给出小强从家里到学校的之间每一个公交站的英文名字,问如果不往回走,小强最多能搭几次公交车?
输入
多组样例,每组样例第一行为非负整数n(n<=1000),表示小强家里到学校之间有n个公交站。接下来n行,每行有一个英文名字,每行不超过100字符。
输出
对于每组样例,输出最多的乘坐次数。
样例输入
4shaoshanerzhongshangxiadongmen5shaoshanshangxiaertianerzhongdongmen
样例输出
12
Source
XTUCPC2013机票:http://202.197.224.59/OnlineJudge2/index.php/Problem/read/id/1151
/*思路参考我童鞋的*题目大意:小强坐车,他不能在同一个站台(每个站台都以首字母区分)下车再上车,而且在一个站台上车必须下车的站台的首字母跟上车的站台必须一样,*他可以走过所有站台,求小强能最多做多少次车??*解题思路:dp题,用dp[i][2](i<=n),i表示每个站台,dp[i][0]表示走路到这个站台,dp[i][1]表示坐车到这个站台,*状态转移方程:dp[j][0]=max(dp[i][1],dp[i][0],dp[j][0])(0<=i<j),dp[j][1]=max(dp[i][0]+1,dp[j][1])(0<=i<j);*/#include<stdio.h>#include<string.h>int a[2000];char s[2000];int dp[2000][2];int mmax(int a,int b){ return a>b?a:b;}int main(){ int n,i,j; while(scanf("%d",&n)!=EOF) { for(i=0;i<n;i++) { scanf("%s",s); a[i]=s[0]-'0'; } memset(dp,0,sizeof(dp)); for(i=0;i<n;i++) for(j=0;j<i;j++) { if(a[i]==a[j]) dp[i][1]=mmax(dp[i][1],dp[j][0]+1); // else//不能加else 因为也可以不坐车过这个地方 也要求dp[i][0] 否则就只求了坐车过的值了 // { dp[i][0]=mmax(dp[i][0],dp[j][0]); dp[i][0]=mmax(dp[i][0],dp[j][1]); // } } int ans=0; for(i=0;i<n;i++) { ans=mmax(ans,dp[i][0]); ans=mmax(ans,dp[i][1]); } printf("%d\n",ans); } return 0;}
- XTU 1151 bus 不互相包含的最多的对的个数 DP题
- 求不相交区间的最多个数
- 求最多不相交区间的个数
- HDU 2089 数位dp水题 统计区间中不包含62 和 4 的个数
- 类互相包含的办法
- 互相包含的两个类
- 求给定字符串中包含的字符及个数及最多字符是哪个?
- XTU SBB的饭碗
- XTU的A+B
- 输出个数最多的连续的字符
- 直线上最多的点的个数
- Frequent values-------最多的连续的个数
- XTU-1231 人生成就(求路径的种类 简单DP)
- oracle包含最多关键字的查询语句
- 统计单词出现最多的个数
- 定长线段最多覆盖点的个数
- 定长线段最多覆盖点的个数
- 取出现次数最多的K个数
- 布置java开发环境和第一个程序——HelloWorld
- Ext.Net 1.x_Ext.Net_遍历清空textbox控件
- php5与mysql5 web 开发技术详解-12 Smarty与模板技术
- Linux学习之初试编程基础
- Ext.Net 1.x_Ext.Net.GridPanel+MSCHART案列二(易飞IQC来料批次分析与MsChart 使用双轴显示)
- XTU 1151 bus 不互相包含的最多的对的个数 DP题
- LeetCode : Surrounded Regions
- 招聘要求~
- minidump代码
- 查询1
- 为什么内置数组不支持数组之间的赋值,支持这种操作需要什么信息?
- java平台统一异常框架的设计与实现
- 那些后台进程可杀 (自学随笔)
- AS3中对于XML的使用。(待定)