题目大意:
给你一个
sgu246 Black & White
。输出这个解题思路:
首先我们观察发现,
我们考虑构造一个方案使得有
首先如果第1个放了黑色珠子,那么第
我们假设第i个放黑色,那么我们就可以每次隔
然后我们发现从i出发最少进行
AC代码:
<code class="hljs cpp">#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include #include<iostream>using namespace std;int n;int gcd(int a,int b){return a%b==0?b:gcd(b,a%b);}int main(){ scanf("%d",&n); n=n/2+1; int Gcd=gcd(n+1,2*n-1); int L=(long long)(n+1)*(2*n-1)/Gcd/(n+1); printf("%d",(2*n-1)/L*(L/2)+1); return 0;}</iostream></cmath></cstring></cstdlib></cstdio></code>