题目描述:

【问题描述】

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

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

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

输入格式:

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

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

输出格式:

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

输入输出样例:

输入 #1复制

100 2 10
50 5
50 5

输出 #1复制

0

输入 #2复制

10 2 1
50 5
10 2

输出 #2复制

Impossible

说明/提示:

【数据范围】

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

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

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

AC Code:

#include<bits/stdc++.h>
using namespace std;
#define N 10010
int v,n,c,dp[N],tl[N],tj[N];
int main() {scanf("%d %d %d",&v,&n,&c);for(int i=1;i<=n;i++) {scanf("%d %d",&tj[i],&tl[i]);//分别为相应的体积和耗费的体力 }for(int i=1;i<=n;i++) {for(int j=c;j>=tl[i];j--) {dp[j]=max(dp[j],dp[j-tl[i]]+tj[i]);}}if(dp[c]<v) {//无法填平东海 printf("Impossible\n");}else {for(int i=1;i<=c;i++) {//循环查找精卫在多少体力时就已经将东海填平 if(dp[i]>=v) {//大于需要的体积表示此时已经填平 printf("%d\n",c-i);//c为精卫的总体力,i为填平东海耗费的体力,相减即为剩余的体力 break;}}}return 0;
}

洛谷P1510-精卫填海(01背包)相关推荐

  1. 洛谷 P1048 采药 01背包入门

    P1048 采药 最近想学dp了 一道非常简单入门的01背包,写此博客做一个教训,对01背包还不是特别熟,动态方程很容易就推出来了,但是写二维状态方程时wa了,然后改为一维过了. 主要还是对01背包不 ...

  2. bzoj1334 洛谷P4394 选举 01背包

    题目链接:传送门 题目描述 NNN个政党要组成一个联合内阁,每个党都有自己的席位数. 现在希望你找出一种方案,你选中的党的席位数要大于总数的一半,并且联合内阁的席位数越多越好. 对于一个联合内阁,如果 ...

  3. 洛谷P1510 精卫填海(DP)

    [题目描述] 事实上,东海未填平的区域还需要至少体积为vvv的木石才可以填平,而西山上的木石还剩下nnn块,每块的体积和把它衔到东海需要的体力分别为kkk和mmm.精卫已经填海填了这么长时间了,她也很 ...

  4. 洛谷——3399 丝绸之路(背包)

    题目背景 张骞于公元前138年曾历尽艰险出使过西域.加强了汉朝与西域各国的友好往来.从那以后,一队队骆驼商队在这漫长的商贸大道上行进,他们越过崇山峻岭,将中国的先进技术带向中亚.西亚和欧洲,将那里的香 ...

  5. 洛谷 1858 多人背包

    https://www.luogu.org/problem/show?pid=1858 题目描述 DD 和好朋友们要去爬山啦!他们一共有 K 个人,每个人都会背一个包.这些包的容量是相同的,都是 V. ...

  6. 洛谷P1169 树上分组背包

    题解 第一次写树上分组背包的题目. 什么是分组背包? 分组背包就是将物品进行分组每组内部只能选择一类物品. for(int i = 1;i <= N;++i){for(int j = 0;j & ...

  7. 洛谷P4495 奇怪的背包 [HAOI2018] 数论

    正解:数论+dp 解题报告: 传送门! 首先看到这题,跳无数次,自然而然可以想到之前考过好几次了的一个结论--如果只考虑无限放置i,它可以且仅可以跳到gcd(p,v[i]) 举一反三一下,如果有多个i ...

  8. 动态规划dp(带模板题の超易懂版):01背包,完全背包,分组背包,多重背包,混合背包

    动态规划dp(带模板题の超易懂版):01背包,完全背包,分组背包,多重背包 01背包 && 完全背包 && 分组背包 の 视频教程:https://www.bilibi ...

  9. 洛谷 p1757 通天之分组背包(哈希,分组背包)2021-08-12

    题目背景 直达通天路·小 A 历险记第二篇 题目描述 自 01 背包问世之后,小 A 对此深感兴趣.一天,小 A 去远游,却发现他的背包不同于 01 背包,他的物品大致可分为 k 组,每组中的物品相互 ...

  10. 【题解】洛谷P1541 [NOIP2010TG] 乌龟棋(类似背包的DP)

    题目来源:洛谷P1541 思路 类似背包的题 总之就是四种卡牌取的先后顺序不同导致的最终ans不同 所以我们用一个四维数组每一维分别表示第几种取了几张的最大分数 然后就是简单DP解决 代码 #incl ...

最新文章

  1. C#线程间操作无效: 从不是创建控件 XX 的线程访问它
  2. Jenkins 权限配置与集群配置
  3. css3 transtion and transform
  4. 基于角色的访问控制'的权限管理的数据库的设计实现
  5. 机器学习(一)梯度下降算法的实现及过程分析
  6. Android中LayoutInflater()方法
  7. 95-35-010-Topic-Topic 扩容 源码解析
  8. python中tab键_python中tab键是什么意思
  9. 算法梳理之LightGBM
  10. python怎么读xlsx_使用Python读取xlsx文件
  11. C++类内初始值的初始化形式
  12. pyinstaller 打包内置文件,ico文件内置
  13. FreeSWITCH背后的故事(译)
  14. 当Proteus 8 Professional打开出现:已使用符号sMKRORIGIN但未在库中找到.
  15. linux开启审计进程,系统运维|Auditd-Linux 服务器安全审计工具
  16. 【深度学习】Mask-RCNN 计算机视觉实例分割模型介绍 Mask分支
  17. SEO白帽必备孙子兵法之三十六计
  18. Java 进制转换工具类
  19. 2 大数据电商数仓项目——项目需求及架构设计
  20. 测井计算机使用的总线,测井数据处理开始步入工作站时代

热门文章

  1. 程序分析与优化 - 6 循环优化
  2. ]获取android应用的MD5签名
  3. 虚拟化:gva、gpa、hva、hpa转化
  4. 利用useRef hooks 解决 定时器关闭不到的问题
  5. HCPL3120手册翻译
  6. 什么是React为什么使用React什么时候使用React
  7. 赵小楼《天道》《遥远的救世主》深度解析(4)从肖亚文引申怎么看待随缘、惜缘、攀缘这三种缘?
  8. http 301 302 303 307 308 傻傻分不清
  9. 教你文本聚类(参考http://www.kuqin.com/searchengine/20080511/8323.html)
  10. canvas 绘点图