只有最后一个点过了,没找到问题在哪里
查看原帖
只有最后一个点过了,没找到问题在哪里
817346
emopawa楼主2023/6/16 22:16

rt

#include<bits/stdc++.h>
using namespace std;
int v_n,n,c;
int w[1000001],v[100001];
int dp[10001];

int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cin>>v_n>>n>>c;
	for(int i=1;i<=n;i++)
	{
		cin>>w[i]>>v[i];
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=c;j>=w[i];j--)
		{
			dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
		}
	}
	for(int i=0;i<=v_n;i++)
	{
		if(dp[i]>=v_n)
		{
			cout<<c-i;
			return 0;
		}
	}
	cout<<"Impossible";
	return 0;
}
2023/6/16 22:16
加载中...