目录
一.题目报告
赛中一题AC,二题70分,三题0分,四题20分,赛后
二.赛中概况
第一题模拟秒了,第二题打表忘用scanf,printf,70分,第三题调试了很久,最终没有写出来,第四题暴力20分。
三.解题报告
T1.三个(three)
题目情况
赛中AC。
题目大意
有A,B,C三种微生物各一个,A 类微生物每一秒会繁殖出1个A类微生物,1个B类微生物,1个C类微生物。
B类微生物每一秒会繁殖出2个A类微生物,2 个C类微生物。
C类微生物每一秒会繁殖出1个A类微生物,1个B类微生物。
求n秒后A类,B类,C类微生物各是奇数还是偶数个。
题目解析
赛中思路:数据范围不大,模拟即可。
赛后正解:1.模拟 2.找规律,每三秒一循环,秒数取余3,余数为1则为奇奇偶,2为偶偶奇,0为奇奇奇。
题目正解
模拟:
#include<bits/stdc++.h>
using namespace std;
long long n,a=1,b=1,c=1,d,e,f;
int main(){
freopen("three.in","r",stdin);
freopen("three.out","w",stdout);
cin>>n;
for(int i=0;i<n;i++){
d=e=f=0;
d=a+2*b+c;
e=a+c;
f=a+2*b;
a+=d;
b+=e;
c+=f;
}
if(a%2!=0){
cout<<"odd"<<endl;
}
else{
cout<<"even"<<endl;
}
if(b%2!=0){
cout<<"odd"<<endl;
}
else{
cout<<"even"<<endl;
}
if(c%2!=0){
cout<<"odd"<<endl;
}
else{
cout<<"even"<<endl;
}
fclose(stdin);
fclose(stdout);
return 0;
}
T2.合体(fit)
题目情况
赛中70,赛后AC。
题目大意
一个长度为n的序列,可以将两个相同的数x合成为一个数x+1,求最后可以合成几个q。(多测)
题目解析
赛中思路:单层循环,用桶,a[i]+=a[i-1]/2打表。
赛后正解:打表(使用scanf,printf)。
题目正解
#include<bits/stdc++.h>
using namespace std;
lon