SHU 2013 暑期集训(7-15)解题报告
2013-07-16 13:07
453 查看
Problem A: 【C语言训练】字符串正反连接
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 78 Solved: 41
[Submit][Status][Web Board]
Description
所给字符串正序和反序连接,形成新串并输出Input
任意字符串(长度<=50)Output
字符串正序和反序连接所成的新字符串Sample Input
123abcSample Output
123abccba321HINT
分析:水题,直接正向输出后反向输出。#include <iostream> #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> #define maxlen 1100 using namespace std ; int maps[25][maxlen]; int n; char c; char str[25][maxlen]; int visited[25]; int dfs(int s) { int ans=0,flag=0; for(int i=0; i<n; i++) { int temp=0; if(maps[s][i]&&visited[i]) { flag=1; visited[i]--; temp=dfs(i); visited[i]++; temp+=strlen(str[s])-maps[s][i]; } ans=max(ans,temp); } if(!flag) return strlen(str[s]); return ans; } int main() { while(scanf("%d",&n)!=EOF) { for(int i=0; i<n; i++) scanf("%s",str[i]); cin>>c; memset(maps,0,sizeof(maps)); for(int i=0; i<n; i++) { for(int j=0; j<n; j++) { int len1=strlen(str[i]); int len2=strlen(str[j]); for(int k=0; k<len1&&k<len2; k++) { if(strncmp(str[i]+len1-k-1,str[j],k+1)==0) { maps[i][j]=k+1; break; } } } } for(int i=0; i<n; i++) visited[i]=2; int cnt=0; for(int i=0; i<n; i++) { if(str[i][0]==c) { visited[i]--; cnt=max(cnt,dfs(i)); } } printf("%d\n",cnt); } }
View Code
相关文章推荐
- SHU 2013 暑期集训(7-16)解题报告
- SHU 2013 暑期集训(7-14)解题报告
- SHU 2013 暑期集训(7-17)解题报告
- SHU 2013 暑期集训(7-18)解题报告
- 2013NBUT暑期集训成果赛 赛后总结以及解题报告
- 中南大学2012暑期集训中期检测训练赛“跳跳”解题报告
- 西南交大2011年第二次暑期集训比赛解题报告
- 中南大学2012暑期集训中期检测训练赛“跳跳”解题报告
- 2010-ZZULI-暑假集训选拔赛(二)解题报告
- BZOJ 3193 [JLOI 2013] 计数DP 解题报告
- HNU 13064 Cuckoo for Hashing解题报告 North America - East Central 2013
- 【图论基础练习】 SCU 2013 Summer Traing 3 - Graph Theory (1) 解题报告
- poj 2013 Symmetric Order 解题报告
- 2013腾讯编程马拉松初赛第一场(3月21日) 解题报告 (HDU 4505 HDU4506 HDU4507 HDU4508 HDU4509)
- 2013 Multi-University Training Contest 6 解题报告(更新中)
- NOIP2013 积木大赛 解题报告(贪心)
- 2013 Multi-University Training Contest 7 解题报告(更新中)
- hdu 2013 蟠桃记-递推-[解题报告]C++
- 2013长沙网络赛,Problem G,Goldbach,解题报告
- Codevs 3287 NOIP2013提高组 货车运输(重庆一中高2018级信息学竞赛测验2) 解题报告