HDU 4861 Couple doubi
前天刚到学校,很久没刷题,需要一段时间寻找状态。
这是22号的多校,我没赶上,现在重新写一下来帮助自己找回状态。
由于p一定是素数,打表可知循环节为p-1,并且只有p-1号球有价值。一开始题意理解错,以为必须从第一号球开始轮流拿,其实是任意顺序拿的。这样,求出总共可以拿到几次有价值的球k,如果k为奇数则代表doubiNan可以多拿一次,输出"YES",如果为偶数,那么他们拿的次数相等,输出"NO"。
#include <iostream> #include <vector> #include <cstring> #include <cstdio> #include <cstdlib> #include <cmath> using namespace std; int k, p; int main() { while(~scanf("%d%d", &k, &p)) { int n = k/(p-1); if(n & 1) printf("YES\n"); else printf("NO\n"); } return 0; }