01背包变形

守卫贝壳

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 10   Accepted Submission(s) : 4
Font: Times New Roman | Verdana | Georgia
Font Size:  

Problem Description

猪猪大神前两天从海边捡了很多贝壳回家。但是没想到的是,他捡贝壳的行为激怒了海里的真理之神,真理之神派出了他最得力的住手真理神教的大主教——教主大人前去夺回被猪猪捡走的贝壳。
我捡起的贝壳,是要去启蒙所有的人类的,怎么可以让它们再落会你们这些自私的神的手中!猪猪大神心想一定不能让教主夺走他辛苦捡来的贝壳,他找来的他的好盆友伍妹,他们两个人准备一起在海岸上布置防御系统阻止教主。猪猪大神的防御系统是由很多导弹发射器组成,每个导弹发射器只能由一个人来完成,需要a分钟才能建好,而每个导弹发射器发射的导弹对教主的伤害是b。猪猪大神拥有n种导弹发射器的图纸,每张图纸只能建造一个导弹发射器。
距离教主上岸还有k分钟,教主的血量为p,猪猪想知道他能不能在教主上岸的瞬间打败教主,守卫自己的贝壳。如果不能打败教主,猪猪大神想知道他和伍妹建造的防御系统最多能消耗掉教主多少血量,这样他好计算他终极必杀技的伤害。

Input

输入包含多组数据。
每组数据第一行包含3个数,n,k,p(0<=n<=50,0<=k<=100,0<=p<=1000000)。
接下来n行,每行有两个数,a,b(0<=a<=20,0<=b<=1000)。

Output

每组数据的第一行输出猪猪大神和伍妹建造的导弹系统在教主上岸的瞬间能对教主造成的最大伤害(这个伤害可以超过教主的血量)。
第二行,如果导弹系统击败了教主,输出“Your skills are so so.”,如果没有击败教主,输出“Anyone else?”,因为猪猪大神即将要开启自己的必杀技了!

Sample Input

5 10 30
3 6
4 7
5 8
6 9
7 10
5 9 31
3 6
4 7
5 8
6 9
7 10

Sample Output

32
Your skills are so so.
30
Anyone else?

HINT:
对于第一组数据,猪猪大神建造1号和5号导弹发射器,伍妹建造2号和4号发射器。
对于第二组数据,猪猪大神建造1号和4号导弹发射器,伍妹建造2号和3号发射器。

Author

wxz



dp[i][j] 表示有两个背包容量 i,j.最多能装多少价值的东西。
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
#include<math.h>
using namespace std;
#define inf 0x3f3f3f3f
#define ll __int64

int a[60],b[60];
int dp[110][110];
int main()
{
	int n,k,p;
	while(cin>>n>>k>>p)
	{
		int i,j,l;
		memset(dp,0,sizeof(dp));
		for(i=0;i<n;i++)
			cin>>a[i]>>b[i];
		for(i=0;i<n;i++)
		{
			for(j=k;j>=0;j--)
			{
				for(l=k;l>=0;l--)
				{
					if(j>=a[i])
						dp[j][l]=max(dp[j][l],dp[j-a[i]][l]+b[i]);
					if(l>=a[i])
						dp[j][l]=max(dp[j][l],dp[j][l-a[i]]+b[i]);
				}
			}
		}
		cout<<dp[k][k]<<endl;
		if(dp[k][k]>=p) cout<<"Your skills are so so."<<endl;
		else cout<<"Anyone else?"<<endl;
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值