体检
初看题面,没什么思路,但这种题往往是结论题
————————————————————————————————————
手推情况:
- m>=3 ,ABCABC……循环
- m==1,AAAA……
———————————————————————————————————
接下来考虑m=2的情况,貌似没什么结论,那就打张表来看看(当然也可以手推,但时间较久)
发现BABBAA的循环
#include<bits/stdc++.h>
using namespace std;
string s="BABBAA";
int n,m,k;
int main(){
int T;
scanf("%d",&T);
while(T--){
scanf("%d%d%d",&n,&m,&k);
if(m==1){
puts("A");
continue;
}
if(m>=3){
if(k%3==1) puts("A");
if(k%3==2) puts("B");
if(k%3==0) puts("C");
continue;
}
if(n<=4){
if(n==2||n==4){
if(k<=n/2) puts("A");
else puts("B");
continue;
}
if(n==1||n==3){
if(k<=(n/2+1)) puts("A");
else puts("B");
continue;
}
}
if(n>4&&n<=8){
if(k<=3||k==5) puts("A");
else puts("B");
continue;
}
if(n>8){
if(k<=4) {
puts("A");
continue;
}
if(n%6==5){
if(k==n) puts("A");
else putchar(s[(k-5)%6]),puts("");
continue;
}
if(n%6==0){
if(k==n||k==n-1) puts("A");
else putchar(s[(k-5)%6]),puts("");
continue;
}
else{
putchar(s[(k-5)%6]),puts("");
continue;
}
}
}
}