0了
查看原帖
0了
786154
zhanxiangkun楼主2023/8/15 11:41
#include <bits/stdc++.h>
using namespace std;
int M;
int r[10001];
int f[10001][100];
inline int _mod(int u,int v){
	if (u>=0)   return u%v;
	return v-abs(u)%v;
}
inline void work(int n,int k){
	memset(f,0,sizeof(f));
	for (int i=1;i<n+1;i++)   scanf("%d",&r[i]);
	for (int i=0;i<k;i++)   f[1][i]=!(r[1]%k-i); 
	for (int i=2;i<n+1;i++){
		for (int j=0;j<k;j++){
			f[i][j]=f[i-1][_mod(j-r[i]%k,k)]|f[i-1][_mod(j+r[i]%k,k)];
		}
	}
	if (f[n][0])   printf("%s","Divisible");
	else   printf("%s","Not divisble");
	putchar('\n');
}
int main(){
	scanf("%d",&M);
	for (int i=1;i<M+1;i++){
		int n,k;
		scanf("%d%d",&n,&k);
		work(n,k);
	}
	return 0;
}

跟题解无区fa

2023/8/15 11:41
加载中...