论n方的复杂度过了这道题这档子事
查看原帖
论n方的复杂度过了这道题这档子事
705343
cbkxx楼主2023/8/14 08:54
#include<bits/stdc++.h>
using namespace std;
long long t,l,a[1000001],b[1000001],n,sum,k;
string K; 
bool flag;
int main(){
	cin>>t;
	while(t--){
		k=0;
		n=0;
		flag=0;
		cin>>l>>K;
		for(int i=1;i<=l;i++){
			scanf("%d",&b[i]);
			if(b[i]%2==0||b[i]%7==0||b[i]%11==0||b[i]%3==0){
				a[++n]=b[i];
			}else if(flag==0){
				a[++n]=b[i];
				flag=1;
			}
			sum+=b[i];
		}
		flag=0;
		for(int i=1;i<=n;i++){
			for(int j=i+1;j<=n;j++){
				if(a[i]*a[j]%154==0||a[i]*a[j]%147==0){
					cout<<"Yes\n";
					flag=1;
					break;
				}
			}
			if(flag==1){
				break;
			}
		}
		if(flag==0){
			if(K.size()<17){
				for(int i=0;i<K.size();i++){
					k=k*10+K[i]-48;
				}
			}else{
				k=1e16;
			}
			if(sum>=k){
				cout<<"Yes\n";
			}else{
				cout<<"No\n";
			}
		}
		sum=0;
	}
	return 0;
}

谁能解释一下为什么n方过了这道题??(8,9点卡的异常极限,cin就过不掉了)

2023/8/14 08:54
加载中...