大一下第一场比赛:
太菜了
总结
小错误太多,应该提高严密性
** long long ~scanf("%lld")**
有> < = ~~~不要忘记了等于的情况
*成绩那题~~~~我默认把它看成了小数,其实还有整数的情况*
一题有一些小细节没注意导致花了很多时间,诶……
长寿的xjl
Description
xjlxjl出生于1999年2月3号,她想知道自己已经活了多少天,所以请你帮帮忙,题目会给出当前的日期,请你求出从她出生日开始到某一天时,xjlxjl已经活了多少天了(算上出生那天)
Input
输入当前日期(年/月/日),年份保证大于出生日期并且小于1000010000
Output
xjlxjl活的天数
Sample Input 1
1999/2/10
Sample Output 1
8
#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
int r[]={0,31,29,31,30,31,30,31,31,30,31,30,31};
int q[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int main(){
ll y,m,d;
char x1;
char x2;
scanf("%lld%c%lld%c%lld",&y,&x1,&m,&x2,&d); //忘了加 lld ,最后结果可能是个负数
ll sum=0;
if(y<2000){
if(m>2){
for(ll i=3;i<m;i++){
sum+=q[i];
}
cout<<sum+26+d;
}
else{
cout<<d-3+1;
}
}else{
for(ll i=2000;i<y;i++){ //不小心写成了y++
if(i%400==0||(i%4==0&&i%100!=0)){
sum+=366;
}
else sum+=365;
}
sum+=332;
if(y%400==0||(y%4==0&&y%100!=0)){
for(ll i=1;i<m;i++){
sum+=r[i];
}
sum+=d;
}
else{
for(ll i=1;i<m;i++){
sum+=q[i];
}
sum+=d;
}
cout<<sum;
}
return 0;
}
翻译
Description
xjlxjl有一个好朋友xxnxxn,但她们的语言大小写正好相反,作为翻译让她们可以正常的交流,如果你能帮助她们,她们会很感谢你的
Input
输入一个字符串,只包含大小写字符(长度不超过100100)
Output
输出翻译后的结果
Sample Input 1
abcde
Sample Output 1
ABCDE
Sample Input 2
abcDN
Sample Output 2
ABCdn9
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
cin>>s;
int lenth=s.length();
int a=0;
int b=0;
int i=0;
int j=0;
while(j<lenth){
if(i!=2){
if(s[j]=='A') a++;
else b++;
i++;
}
else{
i=0;
}
j++;
}
cout<<a<<"A"<<b<<"B";
return 0;
}
分糖
Description
xjlxjl有一盒糖果,其中有糖果AA和糖果BB两种糖果,她想要和她的小伙伴xxnxxn一起分享,两人按顺序依次取,xjlxjl 22颗xxnxxn 11颗,小精灵想知道她可以得到AA糖果多少颗,BB糖果多少颗(xjlxjl先)
Input
输入一个字符串s(len(s) \leq 100)s(len(s)≤100),并且里面只有AA和BB
Output
输出xjlxjl能拿到AABB糖果的个数
Sample Input 1
ABAABB
Sample Output 1
2A2B
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
getchar();
int a,b,c,d;
char x,y,z;
while(t--){
scanf("%d%c%d%c%d%c%d",&a,&x,&b,&y,&c,&z,&d);
getchar();
if(a*d==b*c) cout<<"GOOD!"<<"\n";
else cout<<"HAHAHA"<<"\n";
}
return 0;
}
数学好难
Description
开学了,xjlxjl遇到了困难,她觉得数学实在是太难了,她听说你是数学大佬OrzOrz,所以想让你帮她检查一下她的homework,你可以帮助她吗?
如果小精灵的等式是正确的,输出GOOD!GOOD! 反之输出HAHAHAHAHAHA
Input
第一行输入一个T(T \leq 10)T(T≤10),表示有T个等式
接下来T行输入一个等式(格式:a/b=c/d(0 < a,b,c,d \leq 10^{12})a/b=c/d(0<a,b,c,d≤10
12
))
Output
判断每个等式正确与否,按条件输出
Sample Input 1
2
1/2=4/8
1/5=7/40
Sample Output 1
GOOD!
HAHAH
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
getchar();
int a,b,c,d;
char x,y,z;
while(t--){
scanf("%d%c%d%c%d%c%d",&a,&x,&b,&y,&c,&z,&d);
getchar();
if(a*d==b*c) cout<<"GOOD!"<<"\n";
else cout<<"HAHAHA"<<"\n";
}
return 0;
}
成绩单
Description
xjlxjl收到了自己的成绩单,一共nn门课,每门课的成绩为a_1,a_2,…,a_na 1,a 2 ,…,a n,请你求出xjlxjl本学期成绩的中位数以及对应的课程。
Input
第一行输入一个n(n \leq 100)n(n≤100)
接下来nn行每行包含一个科目名以及对应的科目,中间用空格分隔。
Output
输出成绩的中位数以及对应的课程名。
如果nn为偶数则同时输出两门课的名字(名称按字典序排列)中间用空格分隔。
Sample Input 1
3
yuwen 85
shuxue 89
yingyu 66
Sample Output 1
yuwen 85
Sample Input 2
4
yuwen 85
shuxue 89
yingyu 66
tiyu 86
Sample Output 2
tiyu yuwen 85.5
这道题真心让我……
最后的中位数,我忘了区分是否为整数情况诶……
#include<bits/stdc++.h>
using namespace std;
struct node{
string s;
int number;
}a[150];
bool cmp(node &x,node &y){
return x.number<y.number;
}
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i].s>>a[i].number;
}
sort(a,a+n,cmp);
if(n%2==1){
cout<<a[n/2].s<<" "<<a[n/2].number;
}
else{
if((a[n/2-1].number+a[n/2].number)%2==0){ //未考虑到中位数为整数情况
int q=(a[n/2-1].number+a[n/2].number)/2;
if(a[n/2-1].s<a[n/2].s){
cout<<a[n/2-1].s<<" "<<a[n/2].s<<" ";
printf("%d",q);
}
else{
cout<<a[n/2].s<<" "<<a[n/2-1].s<<" ";
printf("%d",q);
}
}
else{
double q=(a[n/2-1].number+a[n/2].number)/2.0;
if(a[n/2-1].s<a[n/2].s){
cout<<a[n/2-1].s<<" "<<a[n/2].s<<" ";
printf("%.1lf",q);
}
else{
cout<<a[n/2].s<<" "<<a[n/2-1].s<<" ";
printf("%.1lf",q);
}
}
// double q=(a[n/2-1].number+a[n/2].number)/2.0;
}
return 0;
}
躲猫猫
Description
xjlxjl和小伙伴们在玩躲猫猫游戏,xjlxjl需要闭着眼睛从11数到1010才能睁开眼睛去找人。由于xjlxjl经常耍赖,你需要监督她。如果xjlxjl从11数到了1010,你就大喊 youyou xixi kaikai shishi, 否则喊 xjlxjl shuashua lai!lai!.
提示:必须是从11到1010.
Input
输入一串数字,表示xjlxjl喊的数字(以-1−1结尾)
Output
youyou xixi kaikai shishi或者xjlxjl shuashua lai!lai!
Sample Input 1
1 2 3 4 5 6 7 8 9 10 -1
Sample Output 1
you xi kai shi
Sample Input 2
1 2 3 10 -1
Sample Output 2
xjl shua lai!
#include<bits/stdc++.h>
using namespace std;
int main(){
int s[20];
int n=0;
while(1){
int a;
cin>>a;
if(a==-1) break;
s[n]=a;
n++;
}
if(n!=10) {
cout<<"xjl shua lai!";
return 0;
}
for(int i=0;i<n;i++){
if(s[i]!=(i+1)){
cout<<"xjl shua lai!";
return 0;
}
}
cout<<"you xi kai shi";
return 0;
}
大富翁
Description
xjlxjl在玩一个大富翁的游戏,可以把游戏的棋盘看成nmnm的格子,移动路径为:从(1,1)(1,1)位置到(n,1)(n,1),然后以蛇形的方式,移动到(n,m)(n,m)位置再上一格,然后再左移到(n-1, 2)(n−1,2)位置,一次反复,最后走到(1,2)(1,2)位置走完一圈(保证能走到(1,2)(1,2)位置)。
如图是4343的图的走法:
![](https://acm.sicnu.edu.cn/public/upload/f780332f31.png)
现在xjlxjl扔了一下一个特殊的骰子,上面写的数字是kk,表示xjlxjl需要移动kk步,请问现在xjlxjl所在的位置(初始位置在(1,1)(1,1))
Input
输入三个整数n,m,kn,m,k(2 \leq n, m \leq 10^92 ≤n, m ≤ 10 9
, nn 保证是偶数, 0 ≤ k < n*m0 ≤ k < n∗m)表示棋盘的大小和骰子上显示的数字
Output
两个正整数,表示xjlxjl移动后的坐标
Sample Input 1
4 3 0
Sample Output 1
1 1
Sample Input 2
4 3 7
Sample Output 2
3 2
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
ll n,m,k;
cin>>n>>m>>k;
k=k+1;
if(k<=n){ //一开始没有写==的情况,应该注意思维的严密性
cout<<k<<" "<<"1";
return 0;
}
else{
k-=n;
ll a=k/(m-1);
ll b=k%(m-1);
if(b==0){
if(a%2==1){
cout<<n-a+1<<" "<<m;
}
else
cout<<n-a+1<<" "<<"2";
}
else{
if(a%2==1){
cout<<n-a<<" "<<m-b+1;
}
else{
cout<<n-a<<" "<<1+b;
}
}
}
return 0;
}
佛祖保佑 永无bug
Description
xjlxjl写代码经常出bugbug,聪明的xxnxxn告诉她一个好办法,就是代码需要开光,在代码的开头要加上注释佛祖保佑:
/*
ooOoo
o8888888o
88" . "88
(| -- |)
O\ = /O
/---'\____ .' \\| |//
.
/ \||| : |||//
/ ||||| -:- |||||-
| | \\ - /// | |
| _| ‘’—/’’ | |
\ .-_ -
___/-. /
___. .' /--.--\
. . __
."" '< .___\_<|>_/___.' >'"". | | :
- `.;\ _ /
;./ -
: | |
\ \ -. \_ __\ /__ _/ .-
/ /
======-.____
-._/_.-____.-'======
=—=’
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Buddha bless never bug
*/
这样写代码就不会出bugbug了。聪明的xjlxjl一学就会,马上动起手来写了一段代码,并加上了佛祖保佑
提示!输出的字符串里面有 \ 和 " 两种字符的需要转义,改成 \ 和 ", 其他不变
Input
一个字符串,表示xjlxjl原本要写的代码(长度小于 10^510
5
)
Output
加上注释,最终的代码
Sample Input 1
ZheShiYiDuanDaiMa;
Sample Output 1
/*
ooOoo
o8888888o
88" . "88
(| -- |)
O\ = /O
/---'\____ .' \\| |//
.
/ \||| : |||//
/ ||||| -:- |||||-
| | \\ - /// | |
| _| ‘’—/’’ | |
\ .-_ -
___/-. /
___. .' /--.--\
. . __
."" '< .___\_<|>_/___.' >'"". | | :
- `.;\ _ /
;./ -
: | |
\ \ -. \_ __\ /__ _/ .-
/ /
======-.____
-._/_.-____.-'======
=—=’
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Buddha bless never bug
*/
ZheShiYiDuanDaiMa;
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
cin>>s;
cout<<"/*\n _ooOoo_\n o8888888o\n 88\" . \"88\n (| -_- |)\n O\\ = /O\n ____/`---'\\____\n .' \\\\| |// `.\n / \\\\||| : |||// \\\n / _||||| -:- |||||- \\\n | | \\\\\\ - /// | |\n | \\_| ''\\---/'' | |\n \\ .-\\__ `-` ___/-. /\n ___`. .' /--.--\\ `. . __\n .\"\" '< `.___\\_<|>_/___.' >'\"\".\n | | : `- \\`.;`\\ _ /`;.`/ - ` : | |\n \\ \\ `-. \\_ __\\ /__ _/ .-` / /\n======`-.____`-.___\\_____/___.-`____.-'======\n `=---='\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n Buddha bless never bug\n*/\n";
cout<<s;
return 0;
}
xjl的字符串2
Description
xjlxjl有一个只有0101两种字符的字符串。每一次,他可以删掉字符串最右侧的一个字符,同时字符串会在最左侧生成一个新的字符,以保证字符串长度不变。如果他删掉的是一个11,他可以决定字符串在最左侧会生成什么字符串00或者11;但如果他删掉了一个00,会在左侧生成一个随机的字符,既可能是00,也可能是11,而且它的生成方式总会与xjlxjl作对,尽力的破坏他的计划。而此时xjlxjl想要把所有的字符都变成00
现在给你一个0101串,请帮助xjlxjl判断一下,能否在有限步之内让全部的字符都变成00。
Input
输入一个0101字符串(长度小于100100)
Output
如果能变成全0则输出 YesYes否则输出NoNo
Sample Input 1
1111
Sample Output 1
Yes
这道题不论怎样输入,其结果都是YES,对于那些还在找规律的宝宝们,是不是超级坑爹,哈哈哈……
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
cin>>s;
cout<<"Yes";
return 0;
}