XTU1151:Bus(DP)
来源:互联网 发布:otl功率放大器实验数据 编辑:程序博客网 时间:2024/06/05 01:50
题目描述
小强刚来到长沙这个大城市,发现这里有很多他老家没有的东西,其中一个就是公交车了。小强的家到学校有很多个公交站,每个公交站都有一个英文名字。小强很喜欢坐公交车,但是他有个奇怪的要求,就是公交车的上车站和下车站的英文名字必须是首字母相同的,且不在同一个站上下车,不然小强宁愿走过这个站去搭下一趟车,甚至直接走到学校。给出小强从家里到学校的之间每一个公交站的英文名字,问如果不往回走,小强最多能搭几次公交车?
输入
多组样例,每组样例第一行为非负整数n(n<=1000),表示小强家里到学校之间有n个公交站。接下来n行,每行有一个英文名字,每行不超过100字符。
输出
对于每组样例,输出最多的乘坐次数。
样例输入
4shaoshanerzhongshangxiadongmen5shaoshanshangxiaertianerzhongdongmen
样例输出
12
Source
XTUCPC2013
简单DP
#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;char s[105],a[1005];int dp[1005][2];int main(){ int n,i,j; while(~scanf("%d",&n)) { for(i = 0; i<n; i++) { scanf("%s",s); a[i] = s[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] = max(dp[i][1],dp[j][0]+1); dp[i][0] = max(max(dp[i][0],dp[j][1]),dp[j][0]); } } int ans = 0; for(i = 0; i<n; i++) ans = max(ans,max(dp[i][0],dp[i][1])); printf("%d\n",ans); } return 0;}
0 0
- XTU1151:Bus(DP)
- bus
- BUS
- bus
- 【BZOJ】【P1537】【POI2005】【Aut- The Bus】【题解】【树状数组+dp】
- 1537: [POI2005]Aut- The Bus 线段树优化DP
- [BZOJ]2004: [Hnoi2010]Bus 公交线路 状态压缩DP+矩阵乘法
- bzoj1537 [POI2005]Aut- The Bus 树状数组+DP。
- bzoj 2004: [Hnoi2010]Bus 公交线路 状压dp+矩阵乘法
- XTU 1151 bus 不互相包含的最多的对的个数 DP题
- [BZOJ 2004][HNOI 2010]Bus 公交线路(矩阵快速幂加速DP)
- 【bzoj1537】 POI2005 Aut- The Bus 离散化+树状数组优化DP
- D-BUS
- D-BUS
- Message Bus
- D-BUS
- Platform bus
- I2C Bus
- NYOJ 679 贪婪的商店
- 【玩转微信公众平台之二】 账号注册
- 检查是否是子串
- C#编译
- 高并发高流量网站架构(转)
- XTU1151:Bus(DP)
- 【玩转微信公众平台之三】 基本操作
- MVC框架理解
- PHP初学习
- XTU1154:Encode
- 【玩转微信公众平台之四】 编辑模式的使用
- JS 删除字符串最后一个字符的几种方法
- windows 如何查看端口占用情况?
- ios app初始化和数据迁移的设计思路