洛谷P4138 [JOISC2014]挂饰 题解
description:
JOI君有N个装在手机上的挂饰,编号为1…N。 JOI君可以将其中的一些装在手机上。
JOI君的挂饰有一些与众不同——其中的一些挂饰附有可以挂其他挂件的挂钩。每个挂件要么直接挂在手机上,要么挂在其他挂件的挂钩上。直接挂在手机上的挂件最多有1个。
此外,每个挂件有一个安装时会获得的喜悦值,用一个整数来表示。如果JOI君很讨厌某个挂饰,那么这个挂饰的喜悦值就是一个负数。
JOI君想要最大化所有挂饰的喜悦值之和。注意不必要将所有的挂钩都挂上挂饰,而且一个都不挂也是可以的。
solution:
设 f [ i ] [ j ] 表 示 前 i 个 挂 钩 , 有 j 个 挂 饰 时 的 最 大 喜 悦 值 设f[i][j]表示前i个挂钩,有j个挂饰时的最大喜悦值 设f[i][j]表示前i个挂钩,有j个挂饰时的最大喜悦值
那 么 f [ i ] [ j ] = m a x ( f [ i − 1 ] [ j ] , f [ i − 1 ] [ m a x ( j − d [ i ] . a , 0 ) + 1 ] + d [ i ] . b ) ; 那么f[i][j]=max(f[i-1][j],f[i-1][max(j-d[i].a,0)+1]+d[i].b); 那么f[i][j]=max(f[i−1][j],f[i−1][max(j−d[i].a,0)+1]+d[i].b);
显然在普通背包的基础上考虑负值带来的影响就行了
还有就是注意要排序,因为如果先算钩子少的极有可能多次挂上没有意义
code:
#include<cstdio>
#include<algorithm>
#define minx -1000000000
using namespace std;
struct ben
{int a,b;
}d[2005];
int cmp(const ben &x,const ben &y)
{return x.a>y.a;
}
int f[2005][2005];
int main()
{int n;scanf("%d",&n);int m=0;for(int i=0;i<=n;i++){f[0][i]=f[i][n+1]=minx;}f[0][1]=0;for(int i=1;i<=n;i++){scanf("%d%d",&d[i].a,&d[i].b);}sort(d+1,d+n+1,cmp);for(int i=1;i<=n;i++){for(int j=0;j<=n;j++){f[i][j]=max(f[i-1][j],f[i-1][max(j-d[i].a,0)+1]+d[i].b);}}int ans=-2000000000;for(int i=0;i<=n;i++){ans=max(ans,f[n][i]);}printf("%d\n",ans);return 0;
}
洛谷P4138 [JOISC2014]挂饰 题解相关推荐
- P4138 [JOISC2014] 挂饰 题解
洛谷题面&并不会更好的阅读体验 目录 0x00 思路 0x01 定义状态 0x02 状态转移方程 0x03 注意优化! code 0x00 思路 先看题. JOI君有 N N N 个装在手机上 ...
- P4138 [JOISC2014]挂饰
P4138 [JOISC2014]挂饰 ◦ N个装在手机上的挂饰.挂饰附有可以挂其他挂件的挂钩.每个挂件要么直接挂在手机上,要么挂在其他挂件的挂钩上.直接挂在手机上的挂件最多有1个. ...
- 洛谷P1129 [ZJOI2007] 矩阵游戏 题解
洛谷P1129 [ZJOI2007] 矩阵游戏 题解 题目链接:P1129 [ZJOI2007] 矩阵游戏 题意:给定一张有黑白棋子的正方形棋盘,问存不存在解法使得经过若干次交换行或列的操作后,左上角 ...
- 洛谷P3336 [ZJOI2013]话旧 题解
洛谷P3336 [ZJOI2013]话旧 题解 题目链接:P3336 [ZJOI2013]话旧 题意:小林跟着银河队选手去了一趟宇宙比赛,耳濡目染,变得学术起来.回来后,他发现世界大变样了.比丘兽究级 ...
- 洛谷P4683 [IOI2008] Type Printer 题解
洛谷P4683 [IOI2008] Type Printer 题解 题目链接:P4683 [IOI2008] Type Printer 题意: 你需要利用一台可移动的打印机打印出NNN个单词.这种可移 ...
- 洛谷P3647 [APIO2014] 连珠线 题解
洛谷P3647 [APIO2014] 连珠线 题解 题目链接:P3647 [APIO2014] 连珠线 题意: 在达芬奇时代,有一个流行的儿童游戏称为连珠线.当然,这个游戏是关于珠子和线的.线是红色或 ...
- 洛谷P4170 [CQOI2007]涂色 题解
洛谷P4170 [CQOI2007]涂色 题解 题目链接:P4170 [CQOI2007]涂色 题意: 假设你有一条长度为 555 的木板,初始时没有涂过任何颜色.你希望把它的 555 个单位长度分别 ...
- 洛谷P1868 饥饿的奶牛 题解
洛谷P1868 饥饿的奶牛 题解 题目链接:P1868 饥饿的奶牛 题意: 有一条奶牛冲出了围栏,来到了一处圣地(对于奶牛来说),上面用牛语写着一段文字. 现用汉语翻译为: 有 NNN 个区间,每个区 ...
- 洛谷P1462 通往奥格瑞玛的道路 题解
洛谷P1462 通往奥格瑞玛的道路 题解 题目链接:P1462 通往奥格瑞玛的道路 题意:在艾泽拉斯,有 nnn 个城市.编号为 1,2,3,-,n1,2,3,\ldots,n1,2,3,-,n . ...
最新文章
- XML 解析XML文档 XML约束
- python盘点订单_django解决订单并发问题【推荐】
- vsftpd+pam+mysql实现ftp构建
- 【Java源码分析】ArrayList源码分析
- 韩顺平老师 Mysql优化 笔记
- 网络流 (EK Dinic)
- php上传图片文件常用的几个方法
- WordPress: 使用 wp_insert_attachment 上传附件
- AudioClip 参数解析
- 安装LoadRunner时提示缺少vc2005_sp1_with_atl_fix_redist解决方案
- 如何开发Android安卓APP读写NFC Ntag
- VMware下安装Windows ME
- protel99实用基础入门教程
- 云知声(Unisound)蜂鸟系列AI离线语音识别芯片方案介绍
- 光纤存储服务器虚拟化,光纤存储DELL MD3600连接VMware ESX 65
- 飞思卡尔imx6q交叉编译工具有关问题
- 2022年下半年软考报名时间陆续公布(持续更新)
- 计算机毕业生毕业论文写作及选题方向
- Ubuntu 虚拟机的 wifi 连接图标上有个问号,网络用不了
- 巴拿赫空间的基本性质
热门文章
- 闭包的概念,作用,和优缺点
- Pytorch之经典神经网络CNN(三) —— AlexNet(CIFAR-10) (LRN)
- python声明变量
- java高德地图Api根据城市名称查该城市所有区域
- Java多线程总结(3)— Timer 和 TimerTask深入分析
- android AutoCompleteTextView 实现手机号格式化,附带清空历史的操作
- python人工智能应用锁_人工智能Python编程特训营——情报密码锁
- 2019年4月3日华为实习生笔试第2题-合法去重移位排序输出
- 服务器A上传文件到服务器B
- Win10不能直接拖文件进行打开解决 办法