RE求调
  • 板块CF577B Modulo Sum
  • 楼主_luo_gu
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/4/25 20:52
  • 上次更新2024/4/25 20:57:51
查看原帖
RE求调
950927
_luo_gu楼主2024/4/25 20:52

以下代码

CF说RE在了第8行。但是加上特判0后依然RE

#include <bits/stdc++.h>
#define int long long
using namespace std ;
int n , m , a[3500] , dp[3500][3500] ;
signed main(){
	scanf("%lld%lld" , &n , &m );
	for( int i = 1 ; i <= n ; ++ i ){
		scanf("%lld" , &a[i] );
		if( m != 0 ){
			a[i] %= m ;
		}
	}
	if( n > m ){
		printf("YES\n");
	}else{
		for( int i = 1 ; i <= n ; ++ i ){
			//dp[i][j]表示选到i时余数是否为j
			//则选他自己是显然为j
			dp[i][a[i]] = true ; 
			for( int j = 0 ; j < m ; ++ j ){
				dp[i][j] |= dp[i-1][j] ;//如果不选,就相当于它的上一个
				dp[i][j] |= dp[i-1][(j-a[i]+m)%m] ;//如果选,则余数减去m。因为怕是负的,所以要加m再mod掉 
			}
			if( dp[i][0] == true ){
				printf("YES\n");
				return 0 ;
			}
		}
	}
	printf("NO\n");
	return 0 ;
}

感谢大佬!好人一生平安!

2024/4/25 20:52
加载中...