2022.4.9 记录我第一次参加蓝桥杯
填空
1.答案:1478
2.答案4
感觉012三个连续的应该不算
3. 7天做5a+2b道题,算n中有几个5a+2b,再算还需要几天
#include<iostream>
using namespace std;
int main(){
long long a,b,n;
cin>>a>>b>>n;
int day=0;
day+=(n/(5*a+2*b))*7;
int d=n%(5*a+2*b);
int d1=0;
d1+=a;
if(d1>=d){
cout<<day+1;
return 0;
}
d1+=a;
if(d1>=d){
cout<<day+2;
return 0;
}
d1+=a;
if(d1>=d){
cout<<day+3;
return 0;
}
d1+=a;
if(d1>=d){
cout<<day+4;
return 0;
}
d1+=a;
if(d1>=d){
cout<<day+5;
return 0;
}
d1+=b;
if(d1>=d){
cout<<day+6;
return 0;
}
d1+=b;
if(d1>=d){
cout<<day+7;
return 0;
}
}
4.通过模拟,发现当修剪两个回合后就会重复,所以只要循环两个回合。注意当循环到最后一个和第一个注意变向.
#include<iostream>
#include<cstring>
using namespace std;
int n;
int h[10001];
int m[10001];
int flag;
int main(){
cin>>n;
memset(h,0,sizeof(h));
memset(m,0,sizeof(m));
int index=1;
flag=0;
for(int k=0;k<3*n;k++){
for(int i=1;i<=n;i++){
h[i]++;
m[i]=max(h[i],m[i]);
}
h[index]=0;
if(index==1){
flag=0;
}
if(index==n){
flag=1;
}
if(flag==0){
index++;
}
else{
index--;
}
}
for(int i=1;i<=n;i++){
cout<<m[i]<<endl;
}
return 0;
}