Luogu P2297 刷图 DP
题目背景
loidc,LOI中的传说级哲♂学家,曾经创造一天内入坑maxlongint个弃坑0x7fffffff个的神奇纪录。目前,loidc最喜欢的游戏就是地下城与勇♂士。
题目描述
Loidc是一个勤奋的孩子。 他每天都会勤奋的搬砖刷疲劳,每天都会期待着各种BOSS给他爆点什么神奇的东西(例如魔剑..),但是每次刷远古总会坑到连门票钱也赚不回来。 最近loidc新技能get√ 他每天都会朗诵一遍线段树,将自己升级为”Deep Dark Fantasy”模式(其实是每天去给腾讯爹送钱)下才去搬砖,所以他人品次次爆发,每次刷图后腾讯都会象征性给他爆点好东西。 今天他又来刷一个叫做“痛苦之村列瑟芬”的图,每次刷完图后都会有N个掉落物。但是loidc很健忘,他每次都会忘清空背包,所以不一定是所有东西都能带回去。 i个物品有两个属性A_i和B_i,现在loidc需要在其中选取若干个物品,使得sum{A_i + B_i}最大,同时sum{A_i},sum{B_i}均非负。但是由于loidc太弱,所以这个工作交给了你。
输入输出格式
输入格式:
第一行,一个整数,表示掉落物个数N。 接下来N行,每行两个整数,表示A_i和B_i。
输出格式:
一个整数,表示最大的sum{A_i + B_i}。
输入输出样例
5
-5 7
8 -6
6 -3
2 1
-8 -5
8
说明
N <= 100 , |A_i| <= 1000 , |B_i| <= 1000 sum{}表示求和
LuoguP2340 奶牛会展 双倍经验爽!!
提交地址 : https://www.luogu.org/problemnew/show/P2297#sub
and https://www.luogu.org/problemnew/show/P2340#sub
分析:
裸裸的01背包吗。
把属性a当做体积, 属性b当做价值;
妥妥的ok;
但有个小问题,数组并不能存负值;
所以要平移数组,最后就是裸背包;
然后枚举移动的位数,判断b属性大于零,然后 取max;
代码:
// By zZhBr
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std; int n; int m;
int a[], b[]; int dp[]; int ans; int main()
{
cin >> n; for(register int i = ; i <= n ; i ++)
{
scanf("%d%d", &a[i], &b[i]);
m += a[i] > ? a[i] : ;
} memset(dp, 0xcf, sizeof dp); m *= ;
dp[m/] = ; for(register int i = ; i <= n ; i ++)
{
if(a[i] > )
{
for(register int j = m ; j >= a[i] ; j --)
{
dp[j] = max(dp[j], dp[j-a[i]] + b[i]);
}
}
else
{
for(register int j = ; j <= m - a[i] ; j ++)
{
dp[j] = max(dp[j], dp[j-a[i]] + b[i]);
}
}
} int k = m / ; for(register int i = ; i <= k ; i ++)
{
if(dp[i+k] >= )
{
ans = max(ans, i + dp[i+k]);
}
} printf("%d\n", ans);
return ;
}
zZhBr
Luogu P2297 刷图 DP的更多相关文章
- 【Trie图+DP】BZOJ1030[JSOI2007]-文本生成器
[题目大意] 给出单词总数和固定的文章长度M,求出至少包含其中一个单词的可能文章数量. [思路] 对于至少包含一个的类型,我们可以考虑补集.也就是等于[总的文章可能性总数-不包含任意一个单词的文章总数 ...
- html+JS刷图实现视频效果
网页播放视频须要载入播放器,可是通过刷图也能实现视频播放的效果 JS中用到Z-index属性,记录一篇解说Z-index属性的博客的地址: http://www.cnblogs.com/gisdrea ...
- Tarjan缩点+DAG图dp
题目背景 缩点+DP 题目描述 给定一个n个点m条边有向图,每个点有一个权值,求一条路径,使路径经过的点权值之和最大.你只需要求出这个权值和. 允许多次经过一条边或者一个点,但是,重复经过的点,权值只 ...
- ZOJ 1232 【灵活运用FLOYD】 【图DP】
题意: copy自http://blog.csdn.net/monkey_little/article/details/6637805 有A个村子和B个城堡,村子标号是1~A,城堡标号是A+1~B.马 ...
- HDU 2296 Ring ( Trie图 && DP && DP状态记录)
题意 : 给出 m 个单词,每一个单词有一个权重,如果一个字符串包含了这些单词,那么意味着这个字符串拥有了其权重,问你构成长度为 n 且权重最大的字符串是什么 ( 若有权重相同的,则输出最短且字典序最 ...
- codeforces 677D(分层图dp)
Codeforces 677D 传送门:https://codeforces.com/contest/677/problem/D 题意: 给你一个n*m的方格图,每个点有一个权值val,现在要求你从坐 ...
- 1023: [SHOI2008]cactus仙人掌图(DP+单调队列优化)
这道题吗= =首先解决了我多年以来对仙人掌图的疑问,原来这种高大上的东西原来是这个啊= = 然后,看到这种题,首先必须的就是缩点= = 缩点完之后呢,变成在树上找最长路了= =直接树形dp了 那么那些 ...
- ACdream 1083 有向无环图dp
题目链接:点击打开链接 人民城管爱人民 Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 128000/64000 KB (Java/Othe ...
- 【特殊的图+DP】【11月校赛】大家一起玩游戏
大家一起玩游戏 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submi ...
随机推荐
- Ubuntu18.04安装测试TensorFlow-GPU
1 安装Ubuntu18.04.03 lts spt@spt-ts:~$ lsb_release -a No LSB modules are available. Distributor ID: Ub ...
- Web之-----弹出确认框控件应用
引用文件!-------- <link rel="stylesheet" type="text/css" href="@Url.FrontUrl ...
- 使用opencv训练分类器时,traincascade训练报错:Train dataset for temp stage can not be filled.解决方法
opencv分类器训练中,出错一般都是路径出错,例如, 1.opencv_traincascade.exe路径 2.负样本路径文件,neg.dat中的样本前路径是否正确 3.移植到别的电脑并修改完路径 ...
- 超级密码(BFS)
Problem Description Ignatius花了一个星期的时间终于找到了传说中的宝藏,宝藏被放在一个房间里,房间的门用密码锁起来了,在门旁边的墙上有一些关于密码的提示信息: 密码是一个C进 ...
- ACM团队周赛题解(2)
拉了CF583和CF486的两套div2题目 还是先贴宏定义部分 #define MAXN 1000000+5#define MOD 1000000007#define PI (acos(-1.0)) ...
- 浅谈ViewPager与TabLayout的简单用法
今天介绍一下ViewPager与TabLayout的简单用法 1.准备 在一切开始之前,你懂得,先导库,老方法,在build.gradle直接添加下面这一句 implementation ...
- 微信图片解决方法-windows版的dat文件
public string decodeImg(string filepath) { Dictionary<string, byte[]> headers = new Dictionary ...
- linux初学者小记(二)
文件管理 1.文件系统结构元素 文件和目录被组织成一个单根倒置树结构文件系统从根目录下开始,用"/"表示. 1.1文件系统 # 根文件系统(rootfs):root filesys ...
- JS/Jquery 表单方式提交总结
1. submit提交 (1). submit 按钮式提交 缺点:在提交前不可修改提交的form表单数据 // 1. html <form method="post" act ...
- Mybatis面试题吐血总结
高强度训练第二十天总结:Mybatis面试题 什么是Mybatis? Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时 只需要关注 SQL 语句本身,不需要花费精力 ...