A. A Hard Problem
题意:
给你一个集合,在这个集合中确定一个k,确定一个最小的k,使连续k个值满足这个k个数中至少存在一对数,a是b的约数。
题解:
因为当时想了下素数,然后举了一个反例推翻了。然后想想每个数和自己最近的一个约束一定是二倍关系的约数,然后盲猜一波 ( n + 1 ) / 2 + 1 (n+1)/2+1 (n+1)/2+1,至于为什么要加一喃,因为分成了两个整块,左边那个整块的右端点和我们右边整块的右端点就是约数关系。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t; scanf("%d",&t);
while(t--){
int n; scanf("%d",&n);
printf("%d\n",(n+1)/2+1);
}
}