Competition Against a Robot
Competition Against a Robot
https://ac.nowcoder.com/acm/contest/12548/D
题意:输入n、k,问对任意长度为n,值在上的序列,给你一个p,然后通过事先和队友讲好的方案将序列内的某个数+1然后对k取余,接着把修改后的序列给队友,让队友猜,猜不对就输。
思路:
将k^n个状态映射到n个集合的权重组合就可解
MyCode:
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e6+7,maxm=2e5+7;
typedef long long int ll;
typedef unsigned long long ull;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int Q;
ll n,k,gcd;
cin>>Q;
while(Q--) {
cin>>n>>k;
while(n!=1) {
gcd=__gcd(n,k);
if(gcd==1) break;
n/=gcd;
}
if(n==1) cout<<"HUMAN\n";
else cout<<"ROBOT\n";
}
return 0;;
}