AT4634 Anti-Adjacency 题解

题意简述

给定两个整数 nnkk。让我们在 [1,n][1,n] 这个区间内找到 kk 个数,让这 kk 个数的差不为 11

解题思路

一道需要思考一下的数学题。

为了让差不为 11,就必须隔着选。

比如我们这里设有数列 SS,这个序列中包含了 [1,n][1,n] 区间内的所有数字,且一一对应。

也就是说,如果我们现在取 SiS_i。我们必定不能取 Si1S_{i-1}

然后再结合那一堆样例,可以轻松得到。

如果 $ \large{\frac {n+1} {2}} \geqslant k$ 那么就可以取到,反之就不可以。

代码实现

#include<bits/stdc++.h>
using namespace std;
int n,k;
int main() {
	scanf("%d%d",&n,&k);
	if((n+1)/2>=k) printf("YES");
	else printf("NO");
	return 0;
}
//code by TheCedar