Party Games UVA - 1610
2018-06-17 22:07:58来源:未知 阅读 ()
题目
1 #include<iostream> 2 #include<string> 3 #include<algorithm> 4 using namespace std; 5 //生成字符串 6 /* 7 求出排序后位于中间的两个字符串较小的和较大的分别为s1,s2 8 s[i]表示字符串s的第i位 9 对于第1位,显然只需要考虑两个值:s1[1],s1[1]+1 10 如果单独一位两种方式不能满足,则考虑2位的情况 11 显然,如果需要考虑第2位,那么第1位应该取s1[1] 12 对于第i位,如果s1[i]和s2[i]都存在,只要类比以上方法即可 13 如果s1.length>s2.length 14 试验可得用一般的方法即可 15 如果s1.length<s2.length 16 如果计算到s1.length位仍未得出结果,那么答案就是s1 17 */ 18 //曾经出过的bug:忽略了s1[i]+1超出了字母范围(A到Z)的情况,此时应舍去 19 string s[1000]; 20 string t1,t2,s1,s2; 21 int n; 22 int main() 23 { 24 int i; 25 cin>>n; 26 while(n!=0) 27 { 28 t1="";t2=""; 29 for(i=0;i<n;i++) 30 cin>>s[i]; 31 sort(s,s+n); 32 s1=s[(n/2)-1]; 33 s2=s[n/2]; 34 for(i=0;i<s1.length();i++) 35 { 36 t2=t1+s1[i]; 37 if(t2>=s1&&t2<s2) 38 { 39 cout<<t2<<'\n'; 40 goto haha; 41 } 42 if(s1[i]+1<='Z') 43 { 44 t2=t1+(char)(s1[i]+1); 45 if(t2>=s1&&t2<s2) 46 { 47 cout<<t2<<'\n'; 48 goto haha; 49 } 50 } 51 t1+=s1[i]; 52 } 53 if(s1.length()<s2.length()) 54 { 55 cout<<s1<<'\n'; 56 } 57 haha: 58 cin>>n; 59 } 60 return 0; 61 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:gzez某蒟蒻lyy的博客
下一篇:生理周期POJ 1006
- [Uva1637][DFS][记忆化] 纸牌游戏 Double Patience 2020-03-06
- anniversary party_hdu1520 2020-02-16
- Prime Time UVA - 10200(精度处理,素数判定) 2019-08-16
- J - Fire! UVA - 11624 2018-09-01
- uva11768 Lattice Point or Not 2018-08-14
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash