12.14考试总结
2017-12-14 18:28
148 查看
开篇照样吐槽
(听说要考递归?
(字符串?
(操作?
![](https://img-blog.csdn.net/20171214183014644)
就酱,我怀着期(ri)待(gou)的心情打开了题面
第一题:题目描述:
分别用大写英文字母A,B,c,…Z表示这26个路口,并按如下的规则派出这些机器人到交通路口协助指挥交通:u
1、每次派出两名机器人。
2、当两名机器人的名字中存在一个相同的字母时,这两名机器人便到对应的交通路口指挥(ZhiHui)交通;有多个字母相同时,两名机器人需要按字母的字典顺序到这些路口巡逻。(XLuo)
3、当两名机器人的名字中不存在相同的字母时,交警部门的派出指令无效(WuXiao)
1、当不能派出机器人时,在第一行输出“WuXiao”.
2、当两名机器人在路口上指挥交通时,在第一行输出“ZhiHui”,在第二行输出路口编号。
当两名机器人在路口上巡逻时,在第一行输出“XunLuo”,第二行输出巡逻的路口数,
好简单啊!本蒟蒻已经不是当年那个蒟蒻啦!哈哈哈哈太简单了!坐等打脸!
解题思路:暴力二重,开个标记数组,记录是否重复,三种情况按序输出就行啦!
代码:#include<bits/stdc++.h>
using namespace std;
int main()
{
string a,b,t;
char tb;
int k=0,jl=0,pd[26]={0};
cin>>a>>b;
for(int i=0;i<a.length();i++)
for(int j=0;j<b.length();j++) if(a[i]==b[j]&&pd[a[i]-'A']==0) {k++; pd[a[i]-'A']=1;}
// for(int i=0;i<=25;i++) if(pd[i]==1) cout<<i<<' ';
if(k==0) {cout<<"WuXiao"<<endl; return 0;}
else if(k==1)
{
cout<<"ZhiHui"<<endl;
for(int i=0;i<a.length();i++)
for(int j=0;j<b.length();j++) if(a[i]==b[j])
{
cout<<a[i]<<endl;
return 0;
}
}
else
{
cout<<"XLuo"<<endl;
for(int i=0;i<=25;i++) if(pd[i]==1&&jl+1!=k) {tb='A'+i; cout<<tb<<'-'; jl++;}
else if(pd[i]==1) {tb='A'+i; cout<<tb<<endl;}
}
//for(int i=0;i<a.length();i++)
// for(int j=0;j<b.length();j++) if(a[i]==b[j]) {cout<<a[i]<<endl; return 0;}
//if(jl+1!=k) cout<<a[i]<<'-';
//else cout<<a[i]<<endl;
//jl++;
return 0;
}
(忽略注释打表打表)
这么腻害的程序肿么可能错
信心满满(蜜汁自信)
![](https://img-blog.csdn.net/20171214190723635)
什么鬼?
20分。。
一看输出
。。。这是什么东西?
一行80分?80分?
代码:#include<bits/stdc++.h>
using namespace std;
int main()
{
string a,b,t;
char tb;
int k=0,jl=0,pd[26]={0};
cin>>a>>b;
for(int i=0;i<a.length();i++)
for(int j=0;j<b.length();j++) if(a[i]==b[j]&&pd[a[i]-'A']==0) {k++; pd[a[i]-'A']=1;}
// for(int i=0;i<=25;i++) if(pd[i]==1) cout<<i<<' ';
if(k==0) {cout<<"WuXiao"<<endl; return 0;}
else if(k==1)
{
cout<<"ZhiHui"<<endl;
for(int i=0;i<a.length();i++)
for(int j=0;j<b.length();j++) if(a[i]==b[j])
{
cout<<a[i]<<endl;
return 0;
}
}
else
{
cout<<"XLuo"<<endl;
cout<<k<<endl;
for(int i=0;i<=25;i++) if(pd[i]==1&&jl+1!=k) {tb='A'+i; cout<<tb<<'-'; jl++;}
else if(pd[i]==1) {tb='A'+i; cout<<tb<<endl;}
}
//for(int i=0;i<a.length();i++)
// for(int j=0;j<b.length();j++) if(a[i]==b[j]) {cout<<a[i]<<endl; return 0;}
//if(jl+1!=k) cout<<a[i]<<'-';
//else cout<<a[i]<<endl;
//jl++;
return 0;
}
圣光代码背叛了我!
(浪费1小时凉了凉了)
![](https://img-blog.csdn.net/20171214191239913)
第二题先不写!
第三题:题目描述:
具体问题是:给定长度为N(1 <= N <=50,000)的只包含左右(小)括号的字符串。能否找出相邻的两个左括号,和两个相邻的右括号,并且左括号的位置比右括号的位置靠左。
是时候展示我666的代码技术了
解题思路:离散化,存2个数组,存双括号下标,暴力二重,如果a在b左边就必然有一对双括号匹配
贴代码:#include<bits/stdc++.h>
using namespace std;
int a[26000]={},b[26000]={},xb=1,xb1=1;
long long s=0;
string c;
int main()
{
cin>>c;
for(int i=0;i<=c.size();i++)
{
if(c[i]=='('&&'('==c[i+1]) {a[xb]=i; xb++;}
if(c[i]==')'&&')'==c[i+1]) {b[xb1]=i; xb1++;}
}
//cout<<a[1]<<' '<<a[2]<<endl<<b[1]<<' '<<b[2]<<endl;
xb--; xb1--;
for(int i=1;i<=xb;i++)
for(int j=1;j<=xb1;j++)
{
if(b[j]>a[i]) {//cout<<b[j]<<" "<<a[i]<<endl;
s++;
}
}
cout<<s<<endl;
return 0;
}
第三题:题目描述:
2027年,从清华毕业的久知找了一份为一些文件的某些部分加密的工作,加密的部分是一串小写英文字母,加密的规则是这样的:要是连续出现相同的字母,则把他们替换成这个字母的大写形式,后面紧跟相同字母的个数,并把它之前跟之后的两端字符串调换,例如出现bcmatchingaef,则字符串变成:efA6bc。然后重新扫描字符串,直到没有出现相同小写字母为止。
这题不贴代码辣(我才不会告诉你们我不会写)
老师的思路:
我的思路:
(听说要考递归?
(字符串?
(操作?
就酱,我怀着期(ri)待(gou)的心情打开了题面
第一题:题目描述:
分别用大写英文字母A,B,c,…Z表示这26个路口,并按如下的规则派出这些机器人到交通路口协助指挥交通:u
1、每次派出两名机器人。
2、当两名机器人的名字中存在一个相同的字母时,这两名机器人便到对应的交通路口指挥(ZhiHui)交通;有多个字母相同时,两名机器人需要按字母的字典顺序到这些路口巡逻。(XLuo)
3、当两名机器人的名字中不存在相同的字母时,交警部门的派出指令无效(WuXiao)
1、当不能派出机器人时,在第一行输出“WuXiao”.
2、当两名机器人在路口上指挥交通时,在第一行输出“ZhiHui”,在第二行输出路口编号。
当两名机器人在路口上巡逻时,在第一行输出“XunLuo”,第二行输出巡逻的路口数,
好简单啊!本蒟蒻已经不是当年那个蒟蒻啦!哈哈哈哈太简单了!坐等打脸!
解题思路:暴力二重,开个标记数组,记录是否重复,三种情况按序输出就行啦!
代码:#include<bits/stdc++.h>
using namespace std;
int main()
{
string a,b,t;
char tb;
int k=0,jl=0,pd[26]={0};
cin>>a>>b;
for(int i=0;i<a.length();i++)
for(int j=0;j<b.length();j++) if(a[i]==b[j]&&pd[a[i]-'A']==0) {k++; pd[a[i]-'A']=1;}
// for(int i=0;i<=25;i++) if(pd[i]==1) cout<<i<<' ';
if(k==0) {cout<<"WuXiao"<<endl; return 0;}
else if(k==1)
{
cout<<"ZhiHui"<<endl;
for(int i=0;i<a.length();i++)
for(int j=0;j<b.length();j++) if(a[i]==b[j])
{
cout<<a[i]<<endl;
return 0;
}
}
else
{
cout<<"XLuo"<<endl;
for(int i=0;i<=25;i++) if(pd[i]==1&&jl+1!=k) {tb='A'+i; cout<<tb<<'-'; jl++;}
else if(pd[i]==1) {tb='A'+i; cout<<tb<<endl;}
}
//for(int i=0;i<a.length();i++)
// for(int j=0;j<b.length();j++) if(a[i]==b[j]) {cout<<a[i]<<endl; return 0;}
//if(jl+1!=k) cout<<a[i]<<'-';
//else cout<<a[i]<<endl;
//jl++;
return 0;
}
(忽略注释打表打表)
这么腻害的程序肿么可能错
信心满满(蜜汁自信)
什么鬼?
20分。。
一看输出
。。。这是什么东西?
一行80分?80分?
代码:#include<bits/stdc++.h>
using namespace std;
int main()
{
string a,b,t;
char tb;
int k=0,jl=0,pd[26]={0};
cin>>a>>b;
for(int i=0;i<a.length();i++)
for(int j=0;j<b.length();j++) if(a[i]==b[j]&&pd[a[i]-'A']==0) {k++; pd[a[i]-'A']=1;}
// for(int i=0;i<=25;i++) if(pd[i]==1) cout<<i<<' ';
if(k==0) {cout<<"WuXiao"<<endl; return 0;}
else if(k==1)
{
cout<<"ZhiHui"<<endl;
for(int i=0;i<a.length();i++)
for(int j=0;j<b.length();j++) if(a[i]==b[j])
{
cout<<a[i]<<endl;
return 0;
}
}
else
{
cout<<"XLuo"<<endl;
cout<<k<<endl;
for(int i=0;i<=25;i++) if(pd[i]==1&&jl+1!=k) {tb='A'+i; cout<<tb<<'-'; jl++;}
else if(pd[i]==1) {tb='A'+i; cout<<tb<<endl;}
}
//for(int i=0;i<a.length();i++)
// for(int j=0;j<b.length();j++) if(a[i]==b[j]) {cout<<a[i]<<endl; return 0;}
//if(jl+1!=k) cout<<a[i]<<'-';
//else cout<<a[i]<<endl;
//jl++;
return 0;
}
圣光代码背叛了我!
(浪费1小时凉了凉了)
第二题先不写!
第三题:题目描述:
具体问题是:给定长度为N(1 <= N <=50,000)的只包含左右(小)括号的字符串。能否找出相邻的两个左括号,和两个相邻的右括号,并且左括号的位置比右括号的位置靠左。
是时候展示我666的代码技术了
解题思路:离散化,存2个数组,存双括号下标,暴力二重,如果a在b左边就必然有一对双括号匹配
贴代码:#include<bits/stdc++.h>
using namespace std;
int a[26000]={},b[26000]={},xb=1,xb1=1;
long long s=0;
string c;
int main()
{
cin>>c;
for(int i=0;i<=c.size();i++)
{
if(c[i]=='('&&'('==c[i+1]) {a[xb]=i; xb++;}
if(c[i]==')'&&')'==c[i+1]) {b[xb1]=i; xb1++;}
}
//cout<<a[1]<<' '<<a[2]<<endl<<b[1]<<' '<<b[2]<<endl;
xb--; xb1--;
for(int i=1;i<=xb;i++)
for(int j=1;j<=xb1;j++)
{
if(b[j]>a[i]) {//cout<<b[j]<<" "<<a[i]<<endl;
s++;
}
}
cout<<s<<endl;
return 0;
}
第三题:题目描述:
2027年,从清华毕业的久知找了一份为一些文件的某些部分加密的工作,加密的部分是一串小写英文字母,加密的规则是这样的:要是连续出现相同的字母,则把他们替换成这个字母的大写形式,后面紧跟相同字母的个数,并把它之前跟之后的两端字符串调换,例如出现bcmatchingaef,则字符串变成:efA6bc。然后重新扫描字符串,直到没有出现相同小写字母为止。
这题不贴代码辣(我才不会告诉你们我不会写)
老师的思路:
我的思路:
相关文章推荐
- 第一次编程考试问题总结
- 20170820考试总结
- 考试方法总结
- CCNA考试试验总结
- 算法设计与分析期末上机考试总结
- ●(考试失误导致的)倍增总结
- 全国计算机技术与软件专业技术资格(水平)考试【软件评测师】-考试内容总结(五)计算机网络基础知识
- 等级考试过后的C语言总结
- 【自学考试】数据结构导论总结
- 考试系统维护总结
- 考试系统维护总结
- 5.30 考试修改+总结
- 软件设计师考试真题总结
- 2016-7-13考试总结
- [TOEIC] 2013年12月25日托业考试总结
- 2011年11月份总结:考试、教育
- 在线考试系统开发进行时——未完成的总结
- 考试系统调试优化总结
- CCNA认证考试命令大总结
- 6.19 考试修改+总结