Source Code 湘潭大学 c语言程序设计答案.docx
- 文档编号:9863035
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:61
- 大小:29.72KB
Source Code 湘潭大学 c语言程序设计答案.docx
《Source Code 湘潭大学 c语言程序设计答案.docx》由会员分享,可在线阅读,更多相关《Source Code 湘潭大学 c语言程序设计答案.docx(61页珍藏版)》请在冰豆网上搜索。
SourceCode湘潭大学c语言程序设计答案
SourceCode
1.列车长的烦恼
Acceteped:
833Submit:
1821
TimeLimit:
1000MSMemoryLimit:
65536KB
Description
John是个小列车站的站长,每次列车在这里重新编组时他就很烦恼。
因为站上只有一个人字形的编组轨道(如图),所有的列车车厢都是从人字轨的右边依次进去,从左边出来。
但有一些编组顺序John总编不出来,John怀疑有些编组顺序是不可能完成的,可John又找不出那些是顺序是可以编组出,那些不可以。
请你写一个程序帮助John辨别哪些编组可以完成,哪些不能完成。
输入:
第一行是一个整数K,表示有多少个测试用例,以后每行一个测试用例,每行为n+1个整数,第一个整数为n表示有多少节车厢,后面n个整数表示需要编组成的顺序。
比如说3节车厢,按照1,2,3依次入轨编组,可以在左边形成123,132,213,231,321。
输出:
每行输出一个测试用例的结果。
如果可以编组输出Yes,否则输出No。
SampleInput
2
3312
41234
SampleOutput
No
Yes
Problem:
1035User:
2009551233
Memory:
900KTime:
78MS
Language:
C++Result:
Accepted
SourceCode
#include
usingnamespacestd;
intpo[1000];
intmain()
{
intca,n;
cin>>ca;
while(ca--)
{
cin>>n;
for(inti=0;i { cin>>po[i]; } boolflag=false; for(inti=0;i for(intk=i+1;k for(intj=k+1;j { if(po[i]>po[k]&&po[i]>po[j]&&po[j]>po[k]) { flag=true; break; } } if(! flag) cout<<"Yes"< else cout<<"No"< } return0; } 2.远古文明的算术题 Acceteped: 659Submit: 1291 TimeLimit: 1000MSMemoryLimit: 65536KB Description 考古人员发现地球在一亿年以前曾经存在一个高级文明叫做Delta,而且发现这个文明的具有文字和语言。 经过艰苦卓绝的工作,专家们破译了其中的一些文字和表示方法。 他们使用+表示加运算,-表示减运算,*表示乘运算,/表示整数除运算,%表示取模运算,但算术式的表示和我们不同,他们把要计算的数放到前面,运算符放在计算对象的后面,比如12+表示1+2,112+34+*表示(1+12)*(3+4)。 考古人员希望你帮助他们编写一个程序,计算出这些计算式的值。 输入: 第一行是一个整数K,表示有多少个测试用例,以后每行一个测试用例。 每行为一个字符串(长度不超过200个字符),数和数,数和运算符,运算符和运算符之间分别用一个空格隔开,数都为非负整数,且小于或等于231-1。 (所有计算式都符合计算规则,不会出现不可计算的计算式,且结果都为非负整数,且小于或等于231-1) 输出: 每行输出一个测试用例的结果。 使用一个字符串表示计算以后的结果。 SampleInput 2 12+ 112+34+* SampleOutput 3 91 Source Problem: 1036User: 2009551233 Memory: 736KTime: 0MS Language: C++Result: Accepted SourceCode #include #include #include #include usingnamespacestd; charstr[1000000],st; vector intmain() { intca,x,y; cin>>ca; getchar(); for(inti=0;i { node.clear(); inttemp; gets(str); for(inti=0;i<=strlen(str);i=i+2) { if(str[i]>='0'&&str[i]<='9') { temp=0; while(str[i]! ='') { if(str[i]=='') break; temp=int(str[i]-'0')+temp*10; i++; } i--; node.push_back(temp); } else if(str[i]=='+') { x=node.back(); node.pop_back(); y=node.back(); node.pop_back(); node.push_back(x+y); } else if(str[i]=='*') { x=node.back(); node.pop_back(); y=node.back(); node.pop_back(); node.push_back(x*y); } else if(str[i]=='-') { x=node.back(); node.pop_back(); y=node.back(); node.pop_back(); node.push_back(y-x); } else if(str[i]=='/') { x=node.back(); node.pop_back(); y=node.back(); node.pop_back(); node.push_back(y/x); } else if(str[i]=='%') { x=node.back(); node.pop_back(); y=node.back(); node.pop_back(); node.push_back(y%x); } } cout< } return0; } SourceCode 3.成对的字符串 Acceteped: 704Submit: 1268 TimeLimit: 1000MSMemoryLimit: 65536KB Description 有些字符串,如果满足下面的性质,则称为成对的字符串: a.所有的字符在字符串中出现偶数次 b.每一对相同的字符之间不会有出现奇数次的字符 现在给你一些字符串,请判断这些字符串是否为成对的字符串。 输入: 第一行是一个整数K,表示有多少个测试用例,以后每行一个测试用例。 每行为一个字符串(长度不超过1000个字符)。 输出: 每行输出一个测试用例的结果。 如果是,输出Yes,否则输出No。 SampleInput 2 aAbbAaaabbcc abcdefghijklmn SampleOutput Yes No Source 程序设计实践 Hint 字符串只有英文字母,大小写敏感。 SourceCode Problem: 1037User: 2009551233 Memory: 736KTime: 0MS Language: C++Result: Accepted SourceCode #include usingnamespacestd; chars[1000000]; intmain() { intca,j; cin>>ca; while(ca--) { cin>>s; boolflag=false; for(inti=0;s[i]! ='\0'&&! flag;i++) { if(s[i]! ='*') { for(j=i+1;s[j]! ='\0';j++) {if(s[j]==s[i]&&s[j]! ='*') { s[j]='*'; break; } } if((j-i)%2==0||s[j]=='\0') {flag=true; } } } if(flag) cout<<"No"< else cout<<"Yes"< } return0; } Description 4. S=s1s2...s2n是一个符合格式的括号的字符串,S能按下面两种方式编码: P编码: 编码是一个整数序列P=p1p2...pn,pi是第i个右括号之前的左括号的数目。 W编码: 编码是一个整数序列W=p1p2...pn,wi是第i个右括号的编码值,它等于这个右括号到与之匹配的左括号之间的右括号的数目(包括它自己)。 比如: S(((()()()))) P456666 W111456 请写一个程序将P序列转换成W序列。 输入: 第一行是一个整数K,表示有多少个测试用例,以后每两行一个测试用例。 每个测试用例第一行为一个整数n(1<=n<=20),表示P序列长度,每个测试用例第二行n个非负整数,每个整数之间有一个空格分隔。 输出: 每行输出一个测试用例的结果。 每行包括n个整数,每个整数之间用一个空格分隔。 SampleInput 2 6 456666 9 466668999 SampleOutput 111456 112451139 SourceCode Problem: 1038User: 2009551233 Memory: 920KTime: 62MS Language: C++Result: Accepted SourceCode #include usingnamespacestd; intpo[100000]; intva[100000]; intmain() { intca,n,x; cin>>ca; while(ca--) { cin>>n; po[0]=0; inted(-1); for(inti=1;i<=n;i++) { cin>>po[i]; x=po[i]-po[i-1]; for(intj=0;j { va[++ed]=-1; } va[++ed]=1; } boolflag=false; for(inti=0;i<=ed;i++) { if(va[i]==1) { intj=i-1,temp=1; while(va[j]! =-1) { if(va[j]<0) temp++; j--; } va[j]=-2; va[i]=2; if(! flag) flag=true; else cout<<""; cout< } } cout< } } SourceCode 5.恺撒的密码 Acceteped: 814Submit: 2531 TimeLimit: 1000MSMemoryLimit: 65536KB Description 恺撒时代充满了动荡和危险,恺撒为了保证在战争中传递秘密消息,发明了一种密码。 他在所有的信件中将所有的字符按字母顺序向后移动了5个位置(比如说,原文中是A,那么密信中就为F),密信中字母和原文中字母的对应关系如下: 密文: ABCDEFGHIJKLMNOPQRSTUVWXYZ 原文: VWXYZABCDEFGHIJKLMNOPQRSTU 只有字母被替换,而且所有字母都是大写的。 输入: 第一行是一个整数K,表示有多少个测试用例,以后每行一个测试用例。 每行为一个字符串(长度不超过1000个字符)。 输出: 每行输出一个测试用例的结果。 SampleInput 3 NSBFW,JAJSYXTKNRUTWYFSHJFWJYMJWJXZQYTKYWNANFQHFZXJX NBTZQIWFYMJWGJKNWXYNSFQNYYQJNGJWNFSANQQFLJYMFSXJHTSINSWTRJ IFSLJWPSTBXKZQQBJQQYMFYHFJXFWNXRTWJIFSLJWTZXYMFSMJ SampleOutput INWAR,EVENTSOFIMPORTANCEARETHERESULTOFTRIVIALCAUSES IWOULDRATHERBEFIRSTINALITTLEIBERIANVILLAGETHANSECONDINROME DANGERKNOWSFULLWELLTHATCAESARISMOREDANGEROUSTHANHE Problem: 1039User: 2009551233 Memory: 904KTime: 15MS Language: C++Result: Accepted SourceCode #include usingnamespacestd; chars[1010]; intmain() {intn,i,k; cin>>n; getchar(); while(n--) { for(k=0;s[k-1]! ='\n';k++) s[k]=getchar(); k=k-1; i=0; while(i {if(s[i]>='F'&&s[i]<='Z') printf("%c",s[i]-5); elseif(s[i]>='A'&&s[i]<='E') printf("%c",s[i]+21); elsecout< i++;} cout< } return0; } 6.零件 Acceteped: 541Submit: 1387 TimeLimit: 1000MSMemoryLimit: 65536KB Description 有一种工业零件,分成左右两半,它们的形状由’X’和空格表示的二维图形表示,比如: 左半的零件形状如下: XXXXX XXX XXXX XXX 右半的零件的形状如下 XXX XXXX XXXX XXXXX 所有的左半边的零件的左边第一列都是X,所有右半的零件的右边第一列都是X。 把这样的左右两个零件紧密地拼在一起,则可能存在空洞。 零件本身也可能有空洞,但不会存在断裂的零件,每个空洞为一个空格,要求你写一个程序求出空洞的大小(空格的数目)。 输入: 第一行是一个整数K,表示有多少个测试用例,以后每一个测试用例占2n+1行。 每个测试用例的第一行为一个整数n,(1<=n<=20),从第2行到n+1行为左半零件的二维图形,从第n+2行到2n+1行为右半零件。 左半零件左对齐,最长一行不超过25列, 右半零件右对齐,最长一行不超过25列 输出: 每行输出一个测试用例的结果。 SampleInput 2 4 XXXXX XXX XXXX XXX XXX XXXX XXXX XXXXX 2 XXXXX X XXXXX XXX SampleOutput 1 6 SourceCode Problem: 1040User: 2009551233 Memory: 820KTime: 0MS Language: C++Result: Accepted SourceCode #include #include #include usingnamespacestd; intpo[1000],va[10000]; chars[1000]; intmain() { intca,n,temp(0),j,ma(0),sta(0); cin>>ca; while(ca--) { cin>>n; getchar(); temp=0; ma=999999999; sta=0; for(inti=0;i { gets(s); for(intj=0;s[j]! ='\0';j++) {if(s[j]=='') { sta++; } } po[i]=strlen(s); if(po[i] ma=po[i]; //cout< }//cout< for(inti=0;i { po[i]=po[i]-ma; } ma=9999999; for(inti=0;i { gets(s); for(j=0;s[j]! ='X';j++) {; } va[i]=j; if(va[i] ma=va[i]; for(;s[j]! ='\0';j++) { if(s[j]=='') sta++; } //cout<<"issta"< } for(inti=0;i { va[i]=va[i]-ma; if(po[i]-va[i]>temp) temp=po[i]-va[i]; } //for(inti=0;i //cout< //cout< //for(inti=0;i //cout< ma=0; //cout< for(inti=0;i { ma=ma+va[i]+temp-po[i]; } cout< } } 7.狼群战术 Acceteped: 628Submit: 1175 TimeLimit: 1000MSMemoryLimit: 65536KB Description 二战中德军潜艇使用狼群战术使得盟军的运输线遭受重大的损失。 盟军截获了德军潜艇的通信电报,但电报显然是加了密的,经过盟军解密人员和情报人员的努力,终于解密了德军的密码,其编码方式如下: 使用一个5*5的矩阵,纵和横坐标都依次为ABCDE,上面分别写有除V以外的25个字母,然后每个字母使用横纵坐标的字母表示,V使用FF表示。 具体矩阵如下: QWERT YUIOP ASDFG HJKLZ XCBNM (比如说A的密文为CA,M的密文为EE) 请你写一个程序翻译密文。 输入: 第一行是一个整数K,表示有多少个测试用例,以后每行一个测试用例。 每个测试用例为一个字符串(最大长度不超过1000);字符串为大写英文和标点组成的。 输出: 每行输出一个测试用例的结果。 请输出对应的明文。 SampleInput 2 CAAEAECAEBECADBCAEBCCBDACBDABCBE. ADACAEBBADEDAEBDECACCBAC,EBCABEAECABCED. SampleOutput ATTACKBRITISHSHIP. RETURNTOBASE,CAPTAIN. SourceCode Problem: 1041User: 2009551233 Memory: 896KTime: 15MS Language: C++Result: Accepted SourceCode #include #include usingnamespacestd; charm[5][5]={'Q','W','E','R','T', 'Y','U','I','O','P', 'A','S','D','F','G', 'H','J','K','L','Z', 'X','C','B','N','M' }; chars[1000]; intmain() { intca; cin>>ca; gets(s); while(ca--) {gets(s); for(inti=0;s[i]! ='\0';i++) { //cout< if(s[i]>='A'&&s[i]<='Z') { if(s[i]=='F'&&s[i+1]=='F') { cout<<'V'; i++; } else { chara; a=s[i+1]; cout< i++; } } else cout< //system("pause"); } cout< } return0; } 8.重构二叉树 #include usingnamespacestd; chara[100],b[100],s[100][3]; intcases,n,i,lena,lenb,c[100],d[100]; structhaha { charc; intk;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Source Code 湘潭大学 c语言程序设计答案 湘潭 大学 语言程序设计 答案