Home_W的握手问题(思维+打表)
解题思路:拿到此题,我的第一反应就是打表找规律,我们可以很轻松的找到n在[1,6]情况下,存在的k平衡握手
n | 存在的k |
---|---|
1 | 0 |
2 | 0,1 |
3 | 0,2 |
4 | 0,1,2,3 |
5 | 0,2,4 |
6 | 0,1,2,3,4,5 |
7 | 0,2,4,6 |
于是我们可以很明显的观察出,当n为奇数和n为偶数的时候,存在的k平衡握手的规律是不一样的 | |
1> 当n为偶数的时候,k的选取可为[0,n-1] | |
2> 当n为奇数的时候,k的选取只能是[0,n-1]的偶数 | |
注意:无论当n为奇数还是偶数都是建立在n>k的情况下的,当n<k的时候,不存在k平衡握手规律 | |
Code: |
#include<cstdio>
int n,k,t;main()
{
scanf("%d",&t);
while(t--) {
scanf("%d%d",&n,&k);
if(n%2) {
if(k >= 0 && k % 2 == 0 && n > k)
puts("1");
else
puts("0");
}
else {
if(k >= 0 && n > k)
puts("1");
else
puts("0");
}
}
}