P1510 精卫填海

题目描述

【版权说明】

本题为改编题。

【问题描述】

发鸠之山,其上多柘木。有鸟焉,其状如乌,文首,白喙,赤足,名曰精卫,其名自詨。是炎帝之少女,名曰女娃。女娃游于东海,溺而不返,故为精卫。常衔西山之木石,以堙于东海。——《山海经》

精卫终于快把东海填平了!只剩下了最后的一小片区域了。同时,西山上的木石也已经不多了。精卫能把东海填平吗?

事实上,东海未填平的区域还需要体积为v的木石才可以填平,而西山上的木石还剩下n块,每块的体积和把它衔到东海需要的体力分别为k和m。精卫已经填海填了这么长时间了,她也很累了,她还剩下的体力为c。

输入输出格式

输入格式:

输入文件的第一行是三个整数:v、n、c。

从第二行到第n+1行分别为每块木石的体积和把它衔到东海需要的体力。

输出格式:

输出文件只有一行,如果精卫能把东海填平,则输出她把东海填平后剩下的最大的体力,否则输出’Impossible’(不带引号)。

输入输出样例

输入样例#1:

【样例输入1】
100 2 10
50 5
50 5

【样例输入2】
10 2 1
50 5
10 2

输出样例#1:

【样例输出1】
0

【样例输出2】
Impossible

说明

【数据范围】

对于20%的数据,0<n<=50。

对于50%的数据,0<n<=1000。

对于100%的数据,0<n<=10000,所有读入的数均属于[0,10000],最后结果<=c。

比较简单的01背包问题,

1.这题写二维的会炸空间

2.我们可以在进行背包的过程中取到答案

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 #include<algorithm>
 6 using namespace std;
 7 const int MAXN=10001;
 8 void read(int &n)
 9 {
10     char c=‘+‘;int x=0;bool flag=0;
11     while(c<‘0‘||c>‘9‘)
12     {c=getchar();if(c==‘-‘)flag=1;}
13     while(c>=‘0‘&&c<=‘9‘)
14     {x=x*10+(c-48);c=getchar();}
15     flag==1?n=-x:n=x;
16 }
17 int nedv,n,tl;
18 struct node
19 {
20     int v;
21     int w;
22 }stone[MAXN];
23 int dp[10001];
24 int ans=-1;
25 int main()
26 {
27     read(nedv);read(n);read(tl);
28     for(int i=1;i<=n;i++)
29     {
30         read(stone[i].v);
31         read(stone[i].w);
32     }
33     for(int i=1;i<=n;i++)
34     {
35         for(int j=tl;j>=stone[i].w;j--)
36         {
37             dp[j]=max(dp[j],dp[j-stone[i].w]+stone[i].v);
38             if(dp[j]>nedv)
39                 ans=max(ans,tl-j);
40         }
41     }
42     ans==-1?printf("Impossible"):printf("%d",ans);
43     return 0;
44 }
时间: 2024-10-14 09:09:22

P1510 精卫填海的相关文章

洛谷 P1510 精卫填海

P1510 精卫填海 题目描述 [版权说明] 本题为改编题. [问题描述] 发鸠之山,其上多柘木.有鸟焉,其状如乌,文首,白喙,赤足,名曰精卫,其名自詨.是炎帝之少女,名曰女娃.女娃游于东海,溺而不返,故为精卫.常衔西山之木石,以堙于东海.——<山海经> 精卫终于快把东海填平了!只剩下了最后的一小片区域了.同时,西山上的木石也已经不多了.精卫能把东海填平吗? 事实上,东海未填平的区域还需要体积为v的木石才可以填平,而西山上的木石还剩下n块,每块的体积和把它衔到东海需要的体力分别为k和m.精卫已

背包DP专题

P1510 精卫填海 很容易看出这是个01背包,可是怎么转化模型呢?注意到,输出impossible的情况就是当体力值C不可以处理体积为V的石头的时候,很自然的想到:把体力值看作背包的体积,把石头的体积看作背包的权值.求最大剩余体力值->在背包体积尽可能小的情况下,背包的权值>=石头的体积V rd(V),rd(n),rd(C); rep(i,1,n){ rd(w[i]),rd(v[i]); } rep(i,1,n) dwn(j,C,v[i]) f[j]=max(f[j],f[j-v[i]]+w

精卫填海

题目描述 [版权说明] 本题为改编题. [问题描述] 发鸠之山,其上多柘木.有鸟焉,其状如乌,文首,白喙,赤足,名曰精卫,其名自詨.是炎帝之少女,名曰女娃.女娃游于东海,溺而不返,故为精卫.常衔西山之木石,以堙于东海.——<山海经> 精卫终于快把东海填平了!只剩下了最后的一小片区域了.同时,西山上的木石也已经不多了.精卫能把东海填平吗? 事实上,东海未填平的区域还需要至少体积为v的木石才可以填平,而西山上的木石还剩下n块,每块的体积和把它衔到东海需要的体力分别为k和m.精卫已经填海填了这么长时

程序员生存定律--使人生永动的势能

程序员生存定律这系列的目录在这里:程序员生存定律--目录 喜欢从头瞄的,可以移步. ------------------------------------------------------------------------------ 这篇说的是精神,比较务虚,不感兴趣的可以略过. 在国内有一个很特别的现象:高中打了鸡血一样使劲学习的人,到了大学往往会放松下来,跑去享受生活了,大学里打游戏.打牌.临考冲刺的大有人在. 这倒也在情理之中,高中不学真考不上大学,考不上大学真就完蛋了:大学不学,

读侯凤章的散文

读侯凤章的散文 杨森翔 (一) 侯凤章的散文创作虽然开始于他的学生时代,但正式进入创作是在他走上工作岗位以后.也许是因为生活境遇的关系,他的散文对山区的人生和苦难有着特殊的情结.这可以理解为他理性的"载道".其实,经历了"文革"和新时期改革开放的历史阶段,尤其是改革开放时期中国社会经过政治.经济.文化等方面的历史转折,呈现了错综复杂的文化悖论现象,每个人都必须理性选择.理性面对身心裹挟其中的诸多人生问题.侯凤章作为生于斯.长于斯的山区职业教育工作者,既要无可规避地以

评鉴奇石须知石之六维

评鉴须知"石之六维" 从二十世纪80年代至今,我国奇石的收藏价格创造了从两位数飙升到九位数的"世界奇迹",堪称"疯狂".对此,储智广奉劝新石友们要理性对待,不断提高自我的赏石水平,以达到以石怡情.赏石养性的目的.那种"一夜暴富"的心理要不得. 在我国,最早创立奇石评鉴的是宋代书法四大家之一的米芾.他能诗文善书画,多藏奇石,有"拜石"之举.他提出鉴赏奇石的"四字诀",即"瘦.漏.

程序员工作法则,避免成为程序猿

这篇说的是精神,比较务虚,不感兴趣的可以略过. 在国内有一个很特别的现象:高中打了鸡血一样使劲学习的人,到了大学往往会放松下来,跑去享受生活了,大学里打游戏.打牌.临考冲刺的大有人在. 这倒也在情理之中,高中不学真考不上大学,考不上大学真就完蛋了:大学不学,只要能毕业,大致还能找到工作.但人生是场长跑,稍一停顿,后面的人就嗖嗖的窜到你前面了,虽然你不一定能看得到到底是谁.这很像龟兔赛跑,但为了避免不成为那只兔子,单靠口号层次的主观意愿是不行的. 停下来的人其实很多,有的人停在了大学里,有的人停在

你才20多岁,为什么总怕来不及---转载

[一] 前一段时间,有个94年的学妹给我打电话.她说,她很迷茫,很害怕.她说没想到一转身就大三了,很快就要大四了,感觉好像随时要毕业的样子.可是她回头去看过去的三年时光,她都不知道自己究竟干了些什么,读书没有好好读,恋爱也没有正经谈过,社团也只是随便打打酱油.她说感觉自己好失败,好像什么事情都做不好.不知道一个这样的自己,要如何面对明年的毕业? 她还说,但这样一个平庸的自己,身边却不乏厉害的人.她认识大一开始就利用寒暑假的时间四处旅行拍照的学姐,如今已经开始给旅行杂志供稿:她认识大二的时候就交换

[歪谈]经理该不该写代码?

这个话题我在好几个地方看到过,基本上大家的意见有几种: 1.小公司别说经理,老板都得写(这是在说我吗?) 2.一般到100或200人以上的公司,经理很少会直接参与代码的编写. 3.大公司(BAT?这个就不说了)一般经理级别以上不写代码 4.还有个观点支持率比较多:那就是要看公司是做产品的还就是做项目的.如果是做项目的一来公司肯定不会大,二来做项目的公司经理和员工一起写代码是很正常的:如果是做产品的,那么除了直系部门的经理会适当写些代码,大部分核心模块. 好吧,我先放出一些自己的观点,然后我们再做