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;; }