ZZNU 1992: 情人节的尴尬
题目描述
情人节这不刚过去没多久吗,我得给大家爆个料。这个事关于小飞飞的,小飞飞呢,要给她女票买礼物,但是呢有个比较尴尬的事情,小飞飞有些钱在某宝里,有些钱在某东里,众所周知,这俩可是死对头,想相互转钱是不可能的,于是小飞飞决定把这些钱用来给女票买礼物(可以花不完,因为这样的话小飞飞就可以给其她女生买礼物了)。 已知某宝中有c1元,某东里有c2元。大家都知道网上东西竞争很厉害,基本价格都是差不多的,但是质量就不好说了,所以呢,同一件物品在不同的地方买,花费同样的价格,但是得到的物品的好坏却不一样,我们就用一个好感度来衡量吧,那么花费同样的钱在某宝中的好感度为v1,在某东上的好感度为v2,为了使得小飞飞买的东西能够使他的女票尽可能的满意,当然她的女票不喜欢两件相同的东西,所以请大家帮帮他,否则,小飞飞就要受到残酷的惩罚了。啊~~~~~~~~~~~~~~~~~~(来自小飞飞崩溃的惨叫。。。)
输入
t组测试事例 每组有 n c1 c2 下面有n行 表示有n种商品,在某宝的余额为c1,某东的余额为c2,每行c v1 v2表示花费c元,在某宝的好感度为v1,某东的好感度为v2(n<=100, c1,c2<=500, t<=5)
输出
占一行 最大可以获得的最大好感度。
样例输入 样例输出
题目链接:http://acm.zznu.edu.cn/problem.php?id=1992
*************************************
题意:dp[i][j][k]表示第i件礼物,某宝还有j元钱,某东还有k元钱时可获得
的最大好感度。
分析:此状态由三种可能得到:
1.此物品不买(dp[i-1][j][k])
2.在某宝买(dp[i-1][j-v[i]][k]+w[i])
3.在某东买(dp[i-1][j][k-v[i]]+w[i])
取最大值即可。由01背包状态压缩可知,第一维是不需要的
需要注意的是数据有坑,可能某礼物需要的花费是0,这样如果比较和赋值同时进行可能会出现将某宝和某东的好感值都加上的情况.因此将三种状态全部遍历后再赋值.
AC代码:
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include<limits.h>
#include <cmath>
#include <cstdlib>
#include <stack>
#include <vector>
#include <queue>
#include <map> using namespace std; #define N 520
#define INF 0x3f3f3f3f
#define met(a, b) memset (a, b, sizeof (a))//// met (dist, -1); int dp[N][N]; int main()
{
int T,i,j,k; scanf("%d", &T); while(T--)
{
int n,c1,c2,c[N],v1[N],v2[N]; scanf("%d%d%d", &n,&c1,&c2); for(i=;i<n;i++)
scanf("%d%d%d", &c[i], &v1[i],&v2[i]); met(dp,);
int ans=; for(i=;i<n;i++)
for(j=c1;j>=;j--)
for(k=c2;k>=;k--)
{
int a=,b=;///一定要赋零
if(j>=c[i])
a=max(dp[j][k],dp[j-c[i]][k]+v1[i]);
if(k>=c[i])
b=max(dp[j][k],dp[j][k-c[i]]+v2[i]); dp[j][k]=max(dp[j][k],max(a,b));
ans=max(ans,dp[j][k]);
}
printf("%d\n", ans);
}
return ;
}
ZZNU 1992: 情人节的尴尬的更多相关文章
- 【2018年全国多校算法寒假训练营练习比赛(第五场)-E】情人节的电灯泡(二维树状数组单点更新+区间查询)
试题链接:https://www.nowcoder.com/acm/contest/77/E 题目描述 情人节到了,小芳和小明手牵手,打算过一个完美的情人节,但是小刚偏偏也来了,当了一个明晃晃的电灯泡 ...
- 7年.NET面试Java的尴尬历程
先简单介绍LZ 现如今的情况,LZ 1992年出生,2012年实习,大专学渣一枚,实习期直接被校企合作直招到公司做.NET开发,现如今在某三线城市做后端技术经理,7年开发经验(5年.Net,2年.NE ...
- 情人节那点事,Power BI告诉你
情人节伴随着元宵节刚刚过去,Power BI团队就送给我们一份大礼,利用来自NRF(national retail foundation)和Bing搜索的数据,在Power BI中帮助我们发现在美国那 ...
- 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
腾讯优测是专业的移动自动化测试平台,提供多维度的自动化测试服务,让测试更简单! 近期有报道称,澳大利亚悉尼市新某大学的一名男生在课堂上看电影,不料耳机没有插好,变成了现场直播... 如果你认为耳机没插 ...
- 【情人节来一发】网站添加QQ客服功能
今年的元宵节遇到情人节,挺不自量力的,呵呵,开篇给各位讲个段子,早上一美女同学在空间发说说道:“开工大吉 起床啦,卖元宵,卖玫瑰,卖避孕套啦-有木有一起去发财的小伙伴?Let’s go…”,对于此种长 ...
- 【C语言学习趣事】_32_平胸的尴尬,嫁不出去的姑娘
为什么写这篇文章呢? 为什么要弄这么个题目呢? 首先解释为什么用这个题目.这一切都要从那天在QQ群中的讨论说起,那天在群中,一个哥们问了一个关于(void)0 的问题.然后大家说到了 (void)0和 ...
- 移动设备页面高度不足时min-height 的尴尬处理
移动设备页面高度不足时min-height 的尴尬处理 在做html5的页面时,经常遇到页面内容太少撑不起来整个手机屏幕的高度. 我们经常使用min-height来处理,比如min-height:56 ...
- zznu 1914 asd的甩锅计划
http://acm.zznu.edu.cn/problem.php?id=1914 asd的甩锅计划 时间限制: 1 Sec 内存限制: 128 MB提交: 114 解决: 10[提交][状态] ...
- 截图技巧——鼠标按着不懂,同时点击截图快捷键(QQ为ctrl+alt+a)即可避免按下快捷键鼠标按下等操作消失截不到的尴尬。
截图技巧--鼠标按着不懂,同时点击截图快捷键(QQ为ctrl+alt+a)即可避免按下快捷键鼠标按下等操作消失截不到的尴尬.
随机推荐
- javascript代码实现简单的五星评价功能!
<script type="text/javascript"> //★ var spans=document.getElementsByTagName("sp ...
- C#的FTP上传下载的实验
前段时间做了一个FTP操作服务器文件的实验,现在把一些经验写下来,免得忘记. 1.上传的处理:目标文件夹A上传到服务器指定目录.先检索服务器目录中有无同名文件夹,若有,则先改名,上传成功后再删除,上传 ...
- vue-auto-focus: 控制自动聚焦行为的 vue 指令
在网页的表单中,经常需要用程序来控制input和textarea的自动聚焦行为.例如我最近做的一个项目,有个装箱出库的流程,input框自动聚焦的流程如下:页面进入时自动聚焦到订单号输入框->订 ...
- Netty 5.0源码分析之综述
1. 前言 本系列主要是用于梳理Netty的架构流程,深入设计细节,重点关注Netty是如何实现它所声称的特性. (ps:本人水平有限,如有错误,请不吝指教 : )) 2. 什么是Netty Nett ...
- Windows/Linux 生成iOS证书及p12文件
操作步骤 生成csr文件(通过OpenSSL命令) 生成mobileprovision文件(通过Apple开发者后台) 生成cer文件(通过Apple开发者后台) 生成P12文件(通过OpenSSL命 ...
- 【CodeVS】1293
输入输出样例 思路:看到题目我萌第一眼想到的肯定是求联通快对吧,但是这个联通快有点奇特,因为 这样他也算是一个联通快.解决此题其实有三种解法:1)宽搜(这个符合基本法):2)并查集:3)灌水法 但是蒟 ...
- Android学习笔记(二)Git和Github
一.添加SSH Key ssh-keygen -t rsa -C "email@example.com" 遇到提示只需要一直确认.用户目录(如/root)下会生成一个.ssh文件夹 ...
- 开学&东大一周游记
明天就要离开生活但并没有学到多少东西的东大了,不舍,这是真的,因为真的是没学到多少就要走了.但是终归是有收获的,比如感受到了舍长这样的大牛的学习态度,东大的浴池真的很棒,我很感激吉大的伙食诸如此类.感 ...
- CSS菜单横竖布局要点
菜单纵向:把ul 元素的边框属性去除,li元素用border-top 上边框显示分离,把a 元素用display:block text-decoration:none 去除默认下划线 菜单横向: ...
- 最近一段时间get到的小知识(c++的)
(1)查看一个程序运行的时间 int main() { clock_t start,end; start=clock(); ... end=clock(); cout<<"Run ...