91分WA on 7
查看原帖
91分WA on 7
768530
Expert_Dream楼主2023/10/26 19:12

heck:https://www.luogu.com.cn/paste/v7otrjmb

不知道为什么

#include<bits/stdc++.h>
#define int long long
#define pii pair<int,int>
#define fir first
#define se second
#define ull unsigned long long
#define endl "\n"
using namespace std;
const int N = 1e3+5;
const int din = 5000;
int n,x[N],y[N],a[N];
int s1,s2;
int dp[10005];
signed main(){
	cin >> n;
	for(int i = 1;i <= n;i++){
		scanf("%lld%lld",&x[i],&y[i]);
		s1+=x[i];
		s2+=y[i];
		a[i]=x[i]-y[i];
	}
	memset(dp,0x3f,sizeof dp);
	dp[s1-s2+din]=0;
	for(int i = 1;i <= n;i++){
		for(int j = max(0ll,2*a[i]);j <= 10000;j++){
			if(dp[j]!=0x3f3f3f3f) dp[j-2*a[i]]=min(dp[j-2*a[i]],dp[j]+1);
		}
	}
	
	for(int i = 0;i <= 5000;i++){
		if(dp[i+din]!=0x3f3f3f3f||dp[din-i]!=0x3f3f3f3f){
			cout<<min(dp[i+din],dp[din-i]);
			exit(0);
		}
	}
	return 0;
}

2023/10/26 19:12
加载中...