20分求助
查看原帖
20分求助
320470
William_Takazaki楼主2022/9/23 13:33

rt,前两个点AC,后面八个全是TLE,就算我卡常时间也不会变化

#include<bits/stdc++.h>
using namespace std;
int t,n,m,a[10010];
bool flag,b[10010];
void dfs(int x,bool f){
	int i,sum;
	if(x==n-1){
		sum=a[1];
		for(i=2;i<=n;i++){
			if(b[i-1]==true)sum=sum+a[i];
			else sum=sum-a[i];
		}if(sum%m==0){
			flag=true;
			return;
		}
	}else{
		b[x]=f;
		dfs(x+1,f);
		dfs(x+1,!f);
	}
}int main(){
	int i;
	cin>>t;
	while(t--){
		cin>>n>>m;
		for(i=1;i<=n;i++)cin>>a[i];
		flag=false;
		dfs(1,true);
		dfs(1,false);
		if(flag==true)cout<<"Divisible\n";
		if(flag==false)cout<<"Not divisible\n";
	}return 0;
}
2022/9/23 13:33
加载中...