CSP-J第四套模拟题补题报告——————————————————————S12679
分数报告:
T1,T2 AC,T3,T4 20分,赛后AK。
赛中概况:
T1,T2很快做完,T3,T4骗分。
题目解析:
时间限制:1秒 内存限制:256M
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 个,现在问你 nn 秒后 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
3
1.5 输出样例1
odd
odd
odd
1.6 输入样例2
4
1.7 输出样例2
odd
odd
even
1.8 输入样例3
233
1.9 输出样例3
even
even
odd
1.10 数据描述
总共 20 个测试点:
对于测试点 1∼4:1≤n≤3。
对于测试点 5∼8: 1≤n≤100。
对于测试点 9∼20: 1≤n≤106。
数据才1e6,直接暴力
上代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
freopen("three.in","r",stdin);
freopen("three.out","w",stdout);
long long n,a=1,b=1,c=1;
scanf("%lld",&n);
for(int i=1;i<=n;i++){
long long a1=0,a2=0,a3=0;
a1=a+c+2*b;
a2=a+c;
a3=a+2*b;
a+=a1;
b+=a2;
c+=a3;
a%=2;
b%=2;
c%=2;
}
if(a%2==1)printf("odd\n");
else printf("even\n");
if(b%2==1)printf("odd\n");
el