Wraith_Fiee的博客

CF1604C Di-visible Confusion

2021-11-13 · 2 min read
Codeforces

CF传送门

题目的大意就是说,如果选择序列aa的第ii位,如果aia_i不整除(i+1)(i+1),就把这一位删掉,问是否可以把序列aa完全删除

我们考虑aia_i,显然aia_i可能因为前面一些数的删除,下标前移;那对于a1,a2...an1,ana_1,a_2...a_{n-1},a_n每个数只需要都存在一种情况使ai%j!=0(2j(i+1))a_i\%j!=0(2\le j\le (i+1))即可最终把整个序列删除

Code

#include <bits/stdc++.h>
using namespace std;
const int N=1e5+10;
typedef long long ll;

int t,n,a[N];

int main(){
	
	cin>>t;
	while(t--){
		cin>>n;
		int flag=0;
		for(int i=1;i<=n;i++) cin>>a[i];
		for(int i=1;i<=n;i++){
			int flag1=0;
			for(int j=2;j<=i+1;j++){
				if(a[i]%j!=0) {
					flag1=1;
					break;
				}
			}
			if(!flag1){
				cout<<"NO"<<endl;
				flag=1;
				break;
			}
		}
		if(!flag) cout<<"YES"<<endl;
	}
	return 0;
}
在吹不出褶皱的日子里发光
Powered by Gridea