比赛网址:2022江西师范大学软件学院程序设计个人挑战赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com)
目录
E题
#include <bits/stdc++.h>
using namespace std;
int main(){
int a[10]={0},b[10]={0},c[100]={0};
int sum=0,count=0;
for(int i=1;i<=5;i++){
scanf("%d",&a[i]);
}
for(int i=1;i<=5;i++){
scanf("%d",&b[i]);
}
sort(b+1,b+5+1);
for(int i=1;i<=5;i++){
c[b[i]]+=1;
}
for(int i=1;i<=5;i++){
count=max(count,c[i]);
}
if(count==2) sum=1;
if((b[1]==b[2]&&b[3]==b[4])||(b[2]==b[3]&&b[4]==b[5])||(b[1]==b[2]&&b[4]==b[5])) sum=2;
if(count==3) sum=3;
if((b[1]==b[2]&&b[3]==b[4]==b[5]&&b[2]!=b[3])||(b[2]==b[3]&&b[1]==b[4]==b[5]&&b[1]!=b[2])||(b[3]==b[4]&&b[1]==b[2]==b[5]&&b[2]!=b[3])||(b[4]==b[5]&&b[1]==b[2]==b[3]&&b[3]!=b[4])) sum=6;
if(count==4) sum=7;
//if((b[1]==b[2]&&b[3]==b[4])||(b[2]==b[3]&&b[4]==b[5])||(b[1]==b[2]&&b[4]==b[5])) sum=2;
//if((b[1]==b[2]&&b[3]==b[4]==b[5]&&b[2]!=b[3])||(b[2]==b[3]&&b[1]==b[4]==b[5]&&b[1]!=b[2])||(b[3]==b[4]&&b[1]==b[2]==b[5]&&b[2]!=b[3])||(b[4]==b[5]&&b[1]==b[2]==b[3]&&b[3]!=b[4])) sum=6;
//if(b[1]==b[2]-1&&b[2]==b[3]-1&&b[3]==b[4]-1&&b[4]==b[5]-1) sum=4;
if(a[1]==a[2]&&a[2]==a[3]&&a[3]==a[4]&&a[4]==a[5]){
if(b[1]==1&&b[2]==10&&b[3]==11&&b[4]==12&&b[5]==13) sum=9;
else if(b[1]==b[2]-1&&b[2]==b[3]-1&&b[3]==b[4]-1&&b[4]==b[5]-1) sum=8;
else sum=5;
}
else if(b[1]==b[2]-1&&b[2]==b[3]-1&&b[3]==b[4]-1&&b[4]==b[5]-1||(b[1]==1&&b[2]==10&&b[3]==11&&b[4]==12&&b[5]==13)){ sum=4; }
printf("%d",sum);
return 0;
}
哈哈哈哈没见过这么暴力的代码,写了好久好久,结果还是只过了86%
C题
一道不是很难的题,但是写了我很久.......
因为没有考虑n=0的情况,被扣了一分
#include <bits/stdc++.h>
using namespace std;
int main(){
long long aam[10000010],apm[10000010],b[10000010];
int n,x;
scanf("%d",&n);
aam[1]=n;
b[1]=1;
int i=1;
for(int i=1;;i++){
apm[i]=2*aam[i]; //
aam[i+1]=apm[i]-b[i];//
b[i+1]=b[i]*2+b[i];//
// printf("aam[%d]=%d\n",i,aam[i]);
// printf("apm[%d]=%d\n",i,apm[i]);
// printf("b[%d]=%d\n",i,b[i]);
if(apm[i]<=b[i]) {x=i; break;}
//i+=1;
}
if(n==0){
printf("0");
}
else printf("%d",x);
return 0;
}
B题:
#include <bits/stdc++.h>
using namespace std;
int main(){
long long sum=0;
for(int i=1;i<=2021;i++){
if(i%4==0&&i%100!=0||i%400==0) sum+=366;
else sum+=365;
}
sum+=(365-19);
//printf("%lld",sum);
printf("%lld",sum%8);
return 0;
}
又是一道简单题,,我错在了多加了365天,把 for(int i=1;i<=2021;i++) 写成了 for(int i=1;i<=2022;i++) 。唉。