中国石油大学(北京)第三届“骏码杯”程序设计竞赛(同步赛)
A-云影密码
链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
某国情报部门截获了一些密文,但是密文中只含有0,1,2,4,80,1,2,4,80,1,2,4,8这555种数字,特工们无法得知密文的内容.
密码破译专家小菲经过研究后给出了破译这种密码的方式.
密文中的000是分隔符,000把密文分割成了若干段,每段都只包含1,2,4,81, 2, 4, 81,2,4,8这444种数字,求出每段数字的和sss,则s=1∼26s = 1 \sim 26s=1∼26分别对应英文小写字母a∼za \sim za∼z,按密文中每一段出现的顺序把破译出的字母排列好就是密文的内容.
小菲希望你帮忙破译截获的密文.
输入描述:
本题含有多组测试数据. 第111行包含一行一个正整数T(1≤T≤105)T(1 \leq T \leq 10^5)T(1≤T≤105),表示测试数据的数目,然后输入TTT组独立的数据. 每组数据输入一行一个字符串表示密文,保证密文符合题面中描述的格式,即每段数字的和sss满足1≤s≤261 \leq s \leq 261≤s≤26,密文不含有前导零和尾零. 保证输入的所有字符串的长度之和不超过10610^6106.
输出描述:
对于每组测试数据,输出一行一个仅包含小写字母的字符串,表示密码破译后的结果.
示例1
输入
复制2 18012041 210201
2 18012041 210201
输出
复制ice cba
ice cba
说明
对于第111个样例,密文为180120411801204118012041,首先000把密文分成了三段,18,12,4118,12,4118,12,41,每段分别求和得到9,3,59, 3, 59,3,5,分别对应字母i,c,ei, c, ei,c,e,所以密文的内容为iceiceice.
//注意细节,之前把26字母顺序写错,导致多提交两次产生罚时,也因此去考虑其他问题,比如中间有多个0的情况,不过后面测试中,这个情况不需要考虑。
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,x,i;string s;
char a[30]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
cin>>n;
while(n--){
cin>>s;
x=0;
for(i=0;i<s.size();i++){
if(s[i]=='0'){
cout<<a[x-1];x=0;}
else x=x+(s[i]-'0');
}cout<<a[x-1];
cout<<endl;
}
return 0;
}
D-引流
链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
小菲最近喜欢看虚拟主播,所以她打算给自己喜欢的虚拟主播狠狠地引一波流.
她发现别人给主播引流的时候都会发像"guan zhu xx miao, guan zhu xx xie xie miao!"这样的弹幕,意思是"关注XX喵,关注XX谢谢喵!".所以他只要把"XX"换成她喜欢的主播的名字就可以啦!
小菲会告诉你她喜欢的虚拟主播的名字,然后让你帮她写好要发的弹幕,这样她只用点一下发送就可以啦.
输入描述:
输入一行一个只包含小写字符的字符串表示小菲喜欢的虚拟主播的名字,保证名字的长度不超过303030个字符.
输出描述:
输出一行一个字符串表示小菲要发送的弹幕.
示例1
输入
复制xuegaocheese
xuegaocheese
输出
复制guan zhu xuegaocheese miao, guan zhu xuegaocheese xie xie miao!
guan zhu xuegaocheese miao, guan zhu xuegaocheese xie xie miao!
说明
无
//签到题
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
cin>>s;
cout<<"guan zhu "<<s<<" miao, guan zhu "<<s<<" xie xie miao!";
return 0;
}
J-三门问题
链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
有A,B,CA,B,CA,B,C三个门,其中一个门后面有一辆轿车.你可以从中任选一个门,如果轿车在这个门后,你就可以将车作为奖品开回家.当你做出选择之后,主持人会从剩下两个门中选择一个没有轿车的门打开,假如你选中AAA门,随后主持人打开BBB门且发现门后没有轿车.然后,主持人问你:"再给你一次机会,你可以在AAA和CCC中再做一次选择".这时候,你会坚持之前的选择呢?还是改选CCC呢?
以上是经典的三门问题.
有一个新节目想邀请小菲去参加,但是这次节目组准备了nnn扇门,每扇门后有轿车的概率都是相等的,小菲可以猜一扇门后是否有轿车,然后主持人会从剩下的所有门中选择一个没有轿车的门打开,小菲可以选择坚持之前的选择或者改选另一扇没有打开的门.
注意以上操作只会进行一次,即主持人只会打开一扇未被小菲选择且门后没有轿车的门然后询问小菲是否坚持之前的选择,后续不会再打开其他门。
小菲想知道当她采用最优策略时有多大概率开走轿车,你能帮帮她吗?
输入描述:
本题含有多组测试数据. 第111行包含一行一个正整数T(1≤T≤98)T(1 \leq T \leq 98)T(1≤T≤98),表示测试数据的数目,然后输入TTT组独立的数据. 每组数据第111行输入一行一个正整数n(3≤n≤100)n(3 \leq n \leq 100)n(3≤n≤100),表示门的数量.
输出描述:
对于每组测试数据,输出一行以空格分隔的两个正整数p,qp,qp,q,表示小菲采用最优策略时开走轿车的概率为( p q )\left( \dfrac{\ p\ }{\ q\ } \right)( q p ).要求( p q )\left( \dfrac{\ p\ }{\ q\ } \right)( q p )必须是最简分数形式,即必须满足ppp,qqq不能含有大于111的公因子.
示例1
输入
复制1 3
1 3
输出
复制2 3
2 3
说明
样例是经典的三门问题,设三扇门为A,B,CA,B,CA,B,C 一开始每扇门后有轿车的概率为 1 3 \dfrac{\ 1\ }{\ 3\ } 3 1 ,小菲的一种最优策略是先选择AAA,在主持人打开一扇门后更换选择,开走轿车的概率为 2 3 \dfrac{\ 2\ }{\ 3\ } 3 2 .
//数学思维,概率。我们在惯性思维下认为,起初a,b,c概率都一样,,都是1/3,如果我们选a,在剔除b和c中的一个空的时候,我们认为换不换都是1/2,所以还不如相信第一直觉,但是此题应该这样去分析。假设我们选的是a,如果答案是a,显然我们不换就可以;如果答案是b,必须换才可以;同样的,答案是c,也必须换,也就是当答案是自己一开始选择的,那么也只是1/n,但如果不是,那么就是n-1/n*(n-2),这个2是已选答案和已公布结果的门,明显大于1/n。
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,t;
cin>>t;
while(t--){
cin>>n;
cout<<n-1<<' '<<n*(n-2)<<endl;
}
return 0;
}