luogu P1510 精卫填海
题目描述
【版权说明】
本题为改编题。
【问题描述】
发鸠之山,其上多柘木。有鸟焉,其状如乌,文首,白喙,赤足,名曰精卫,其名自詨。是炎帝之少女,名曰女娃。女娃游于东海,溺而不返,故为精卫。常衔西山之木石,以堙于东海。——《山海经》
精卫终于快把东海填平了!只剩下了最后的一小片区域了。同时,西山上的木石也已经不多了。精卫能把东海填平吗?
事实上,东海未填平的区域还需要体积为v的木石才可以填平,而西山上的木石还剩下n块,每块的体积和把它衔到东海需要的体力分别为k和m。精卫已经填海填了这么长时间了,她也很累了,她还剩下的体力为c。
输入输出格式
输入格式:
输入文件的第一行是三个整数:v、n、c。
从第二行到第n+1行分别为每块木石的体积和把它衔到东海需要的体力。
输出格式:
输出文件只有一行,如果精卫能把东海填平,则输出她把东海填平后剩下的最大的体力,否则输出’Impossible’(不带引号)。
输入输出样例
100 2 10 50 5 50 5
0
10 2 1 50 5 10 2
Impossible
说明
【数据范围】
对于20%的数据,0<n<=50。
对于50%的数据,0<n<=1000。
对于100%的数据,0<n<=10000,所有读入的数均属于[0,10000],最后结果<=c。
背包
#include<cstdio> #include<cstring> #include<algorithm> inline int read() {int x=0;char c=getchar() ;while(c<'0'||c>'9') c=getchar();while(c<='9'&&c>='0')x=x*10+c-'0',c=getchar();return x; } const int maxn = 10007; int v,n,c; int k[maxn],m[maxn],dp[maxn]; int main() {v=read(),n=read(),c=read();for(int i=1;i<=n;++i) k[i]=read(),m[i]=read();int ans=-1;for(int i=1;i<=n;++i) {for(int j=c;j>=m[i];--j) {dp[j]=std::max(dp[j],dp[j-m[i]]+k[i]);if(dp[j]>=v)ans=std::max(ans,c-j);}}if(ans>=0)printf("%d\n",ans);else puts("Impossible");return 0; }
转载于:https://www.cnblogs.com/sssy/p/7912177.html
luogu P1510 精卫填海相关推荐
- P1510 精卫填海
题面:https://www.luogu.org/problemnew/show/P1510 01背包问题,dp方程即经典的f[j]=max(f[j],f[j-m]+k); 最后在所有满足条件f[j] ...
- 洛谷P1510 精卫填海(DP)
[题目描述] 事实上,东海未填平的区域还需要至少体积为vvv的木石才可以填平,而西山上的木石还剩下nnn块,每块的体积和把它衔到东海需要的体力分别为kkk和mmm.精卫已经填海填了这么长时间了,她也很 ...
- 古有陈天华万字血书抗沙俄,今有本剧蒻万字背包虐dp(01,完全,多重,分组,混合等各种背包详解 + 板子题+ 奇奇怪怪滴变式题)
前言: 本文介绍了01背包.完全背包.多重背包.混合背包.分组背包等背包,并对其进行透彻的剖析,并附上了板子题,供您白嫖,以及一些奇葩变式,颇有意思,供你琢磨玩弄.此外绝大部分题都有二维数组和滚动数组 ...
- 动态规划dp(带模板题の超易懂版):01背包,完全背包,分组背包,多重背包,混合背包
动态规划dp(带模板题の超易懂版):01背包,完全背包,分组背包,多重背包 01背包 && 完全背包 && 分组背包 の 视频教程:https://www.bilibi ...
- 动态规划之背包问题的一些基础简单入门题
前言 参考视频教程洛谷试练场 普及组 动态规划的背包问题 主要有01背包问题.完全背包问题.分组背包问题. 01背包问题一般从右往左推: 完全背包问题一般从左往右推: 分组背包一般用01的方法但需要记 ...
- 动态规划--from zpz
版权声明:copy from zpz,我可能要修改 https://blog.csdn.net/qq_40828060/article/details/83064425 文章目录 前言 记忆化搜索 动 ...
- 动态规划,且学且放弃
文章目录 前言 记忆化搜索 动态规划的基本解题思路 背包问题 01背包 (待处理)P1489 猫狗大战 01背包的空间优化问题 P1048 采药 P1510 精卫填海 P1566 加等式 P1504 ...
- [leetcode] 总结篇
刷题推荐:https://programmercarl.com/ C++ 必备知识: vector 用法 unordered_set 与 unordered_map string 字符串操作 sort ...
- 蓝桥杯刷题记录(待更新)
谨以此文纪念我逝去的青春 我当年不会做的题目合集 一.普通题型 1.P1421 小玉买文具 2.P1425 小鱼的游泳时间 3.P1085 不高兴的津津 4.P1008 三连击 5.P1618 三连击 ...
- luogu P1549 棋盘问题(2) 题解
luogu P1549 棋盘问题(2) 题解 题目描述 在\(N * N\)的棋盘上\((1≤N≤10)\),填入\(1,2,-,N^2\)共\(N^2\)个数,使得任意两个相邻的数之和为素数. 例如 ...
最新文章
- coco格式的数据集进行训练
- 机器学习并不“万能”
- RS(纠删码)技术浅析及Python实现
- Java培训教程之对象的创建与使用
- Asp.net MVC中防止HttpPost重复提交
- 小狗扫地机器人与石头_当戴森遇到石头机器人,从容应对 “猫狗拆家”
- Object_id用法
- SpringCloudGateway起步
- 搜索Maven依赖资源_搜索Maven工件_搜索Maven构件_搜索依赖_搜索构件_搜索工件
- Ubuntu Linux系统环境变量配置文件
- python协同过滤电影推荐_基于协同过滤的电影推荐系统的设计与实现
- PHP对象和接口抽象类注意事项
- 好久没弄网站多皮肤了
- hdu 4619 Warm up 2(并查集)
- .NET----错误和异常处理机制
- php mysql网站统计源码_php统计器代码(在线人数据统计程序源码)
- C#几种截取字符串的方法(split 、Substring、Replace、remove)
- 利用后中遍历结果,重构二叉树
- IBM WebSphere构建智慧世界的六大策略
- 【408预推免复习】计算机网络(谢希仁第七版)第三章——数据链路层