吃瓜群众:你不是说要搞管理员的么???
额。。。这不是庐阳区是赛刚考完,我来发一下代码。。。
第一题
题目大意
这道题不需要太多的技巧,只需要判断分数是否小于60即可
重点代码
if(yu<60&&shu<60&&yin<60){
printf("no");
return 0;//这行代码一定要加!
}printf("pass");
第二题
题目大意
很多人不会做这道题,实际上,这道题的范围根本不会到10^6
重点代码
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
Max = max(a[j]-a[i]);
}
}
printf("%d",Max);
第三题
题目大意
这是一道纯粹的模拟题,直接暴力即可(最多366天)
重点代码
int month[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int main(){
freopen("day.in","r",stdin);
freopen("day.out","w",stdout);
int n,y,r;
long long ans = 0;
cin>>n>>y>>r;
bool run = 0;
if((n%4 == 0&&n%100!=0) || n%400 == 0){
run = 1;
}
for(int i=1;i<y;i++){
ans+=month[i];
if(i == 2&&run)ans+=1;
}
ans += r;
cout<<ans;
return 0;
}
第四题
题目大意
本题是一道十分简单的递归搜索题(回溯),直接暴力~~
重点代码
int cha(int x,int ans = 0){
ans+=a[x];
if(x == n-1){
Min = min(Min,abs(l-ans));
return 0;
}
for(int i=x+1;i<n;i++){
cha(i,ans);
}
return 0 ;
}
int main(){
.........
for(int i=1;i<=n;i++){
cha(i);
}
cout<<Min;
return 0;
}
第五题
题目大意
又是一道暴力题,但是没那么简单。
思路
这道题可以这样想:
假如从一开始循环增加飞船载重量的话,就可以得出最优解,但时间会爆,那我们可以从maxa或Sum/m加,可以减少大量时间!
重点代码
int a[1000010];
int main(){
int n,m,Max = -0xffffffff,sum = 0;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
Max = max(a[i],Max);
sum+=a[i];
}
int l = max(Max,sum/n);
while(l++){
sum = 0;
int cnt = 1;
for(int i=1;i<=n;i++){
if(sum + a[i] <= l){
sum+=a[i];
}else cnt += 1,sum = a[i];
}
if(cnt == m){
cout<<l<<endl;
return 0;
}
}
return 0;
}
第六题
题目大意
这一题很多人说是错的,答案应该是4不是5。
笑话,他是对的
真相
拿样例举个例子
3 2
2 2 2
当猴子第一次跳到1米,能量会到3
然后直接跳到3,能量为4.
代码
暂时没有。。。。。。