注:本次补题报告没有题目大意,因为作者《突发恶疾》(人话:懒得写),所以不写了(doge)
| 题目 | 三个(three) |
合体(fit) | 矩阵(matrix) | 数对(pair) |
| 赛中得分 | 100 | 100 | 30 | 20 |
| 赛后得分 | 100 | 100 | 100 | 100 |
题目分析
T1:三个(three)
1.1 问题描述
现在科学家在培养 A,B,C 三种微生物,这三种微生物每一秒都会繁殖出新的微生物,具体规则为:
A 类微生物每一秒会繁殖出 1 个 A 类微生物,1 个 B 类微生物,1 个 C 类微生物。
B 类微生物每一秒会繁殖出 2 个 A 类微生物,2 个 C 类微生物。
C 类微生物每一秒会繁殖出 1 个 A 类微生物,1 个 B 类微生物。假设所有的微生物都不会死亡,一开始培养皿中有 A,B,C 三种微生物各 1 个,现在问你 n 秒后 A,B,C 三种微生物分别有奇数个还是偶数个。
1.2 输入格式
从文件
three.in中读取数据。一行一个整数 n。
1.3 输出格式
输出到文件
three.out中。输出总共三行:
第一行:若 n 秒后 A 类微生物有奇数个,输出
odd,否则输出even。
第二行:若 n 秒后 B 类微生物有奇数个,输出odd,否则输出even。
第三行:若 n 秒后 C 类微生物有奇数个,输出odd,否则输出even。1.4 输入样例1
31.5 输出样例1
odd odd odd1.6 输入样例2
41.7 输出样例2
odd odd even1.8 输入样例3
2331.9 输出样例3
even even odd1.10 数据描述
总共 20 个测试点:
对于测试点 1∼4:1≤n≤3。
对于测试点 5∼8:1≤n≤100。
对于测试点 9∼20:1≤n≤10^6。
题目分析
刚开始随便打个暴力,结果发现会炸(当然包括开long long)
主要是我忘了只判断奇偶就行了,打了个小表找规律,长这个样子:
long long a=1,b=1,c=1;
for(int i=1;i<=n;i++){
long long na=a+2*b+c,nb=a+c,nc=a+b*2;
a=na+a;b=nb+b;c=nc+c;
cout<<i<<' ';
if(a%2==0)cout<<"even ";
else cout<<"odd ";
if(b%2==0)cout<<"even ";
else cout<<"odd ";
if(c%2==0)cout<<"even\n";
else cout<<"odd\n";
}
1 odd odd even
2 even even odd
3 odd odd odd
4 odd odd even
5 even even odd
6 odd odd odd
7 odd odd even
8 even even odd
9 odd odd odd
10 odd odd even…………</

最低0.47元/天 解锁文章

1640

被折叠的 条评论
为什么被折叠?



