其他分享
首页 > 其他分享> > P1510 精卫填海 题解

P1510 精卫填海 题解

作者:互联网

P1510 精卫填海

#include<iostream>
using namespace std;
long long dp[45001];
int s[10001],t[10001];
int main()
{
	int v,n,c;
	cin>>v>>n>>c;
	for (int i=1;i<=n;i++)
	{
		cin>>s[i]>>t[i];
	}
	for (int i=1;i<=n;i++)
	{
		for (int j=c;j>=t[i];j--)
		{
			dp[j]=max(dp[j],dp[j-t[i]]+s[i]);
		}
	}
	if (dp[c]>=v)
	{
		for (int i=1;i<=c;i++)
		{
			if (dp[i]>=v)
			{
				cout<<c-i;
				break;
			}
		}
	}
	else
	{
		cout<<"Impossible"<<endl;
	}
	
 } 

  

标签:10001,int,题解,P1510,long,精卫填海,dp
来源: https://www.cnblogs.com/smghj/p/16033113.html