1 solutions

  • -7
    @ 2024-1-23 12:27:29

    这道题目一开始我也不是很会,看了网上的题解后融入了自己的思考,在此感谢:原版题解

    #include<iostream>
    using namespace std;
    int a[int(2e4)],n,k;
    bool f[int(2e4)][200];//每一种n,k
    int main() {
    	cin>>n>>k;
    	for(int i=1;i<=n;i++){
    		cin>>a[i];
    		a[i]%=k;
    	}
    	f[0][0]=1;
    	for(int i=1;i<=n;i++) {
    		for(int j=0;j<k;j++){
    			f[i][j]
    			=(f[i-1][(j-a[i]+k)%k]
    			||f[i-1][(j+a[i]+k)%k]);//递推
    		}
    	}
    	if(f[n][0]){
    		cout<<"YES"<<endl;
    	}
    	else{
    		cout<<"NO"<<endl;
    	}
    	return 0;
    }
    
    • 1

    Information

    ID
    681
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    9
    Tags
    # Submissions
    12
    Accepted
    7
    Uploaded By