问题 D: 七夕模拟赛

时间限制: 1 Sec  内存限制: 128 MB
提交: 60  解决: 23
[提交][状态][讨论版]

题目描述

" 找啊找啊找GF,找到一个好GF,吃顿饭啊拉拉手,你是我的好GF.再见." " 诶,别再见啊..." 七夕...七夕...七夕这个日子,对于sqybi这种单身的菜鸟来说是多么的痛苦...虽然他听着这首叫做" 找啊找啊找GF" 的歌,他还是很痛苦.为了避免这种痛苦,sqybi决定要给自己找点事情干.他去找到了七夕模拟赛的负责人zmc  MM,让她给自己一个出题的任务.经过几天的死缠烂打,zmc  MM终于同意了. 但是,拿到这个任务的sqybi发现,原来出题比单身更让人感到无聊-_-....所以,他决定了,要在出题的同时去办另一件能够使自己不无聊的事情--给自己找GF. sqybi现在看中了n个MM,我们不妨把她们编号1到n.请MM吃饭是要花钱的,我们假设请i号MM吃饭要花rmb[i]块大洋.而希望骗MM当自己GF是要费人品的,我们假设请第i号MM吃饭试图让她当自己GF的行为(不妨称作泡该MM)要耗费rp[i]的人品.而对于每一个MM来说,sqybi都有一个对应的搞定她的时间,对于第i个MM来说叫做time[i].  sqybi保证自己有足够的魅力用time[i]的时间搞定第i个MM^_^. sqybi希望搞到尽量多的MM当自己的GF,这点是毋庸置疑的.但他不希望为此花费太多的时间(毕竟七夕赛的题目还没出),所以他希望在保证搞到MM数量最多的情况下花费的总时间最少. sqybi现在有m块大洋,他也通过一段时间的努力攒到了r的人品(这次为模拟赛出题也攒rp哦~~).他凭借这些大洋和人品可以泡到一些MM.他想知道,自己泡到最多的MM花费的最少时间是多少. 注意sqybi在一个时刻只能去泡一个MM--如果同时泡两个或以上的MM的话,她们会打起来的...

输入

输入的第一行是n,表示sqybi看中的MM数量.接下来有n行,依次表示编号为1,  2,  3,  ...,  n的一个MM的信息.每行表示一个MM的信息,有三个整数:rmb,  rp和time.最后一行有两个整数,分别为m和r.

输出

你只需要输出一行,其中有一个整数,表示sqybi在保证MM数量的情况下花费的最少总时间是多少.

样例输入

4
1 2 5
2 1 6
2 2 2
2 2 3
5 5

样例输出

13

提示

数据规模对于20%数据,1< =n< =10; 对于100%数据,1< =rmb< =100,1< =rp< =100,1< =time< =1000; 对于100%数据,1< =m< =100,1< =r< =100,1< =n< =100. Hint sqybi说:如果题目里说的都是真的就好了... sqybi还说,如果他没有能力泡到任何一个MM,那么他就不消耗时间了(也就是消耗的时间为0),他要用这些时间出七夕比赛的题来攒rp... 出题人 sqybi  GG

#include <iostream>
#include <string>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
int dp[][];//用来存放时间
int s[][];//用来存放人数
int i,j,k;
int n,m,r;
cin>>n;
int rmb[],rp[],tm[];
for(i=;i<=n;i++)
{
cin>>rmb[i]>>rp[i]>>tm[i];
}
cin>>m>>r;
memset(dp,,sizeof(dp));
memset(s,,sizeof(s));
//本质上是01背包问题
for(i=;i<=n;i++)
{
for(j=m;j>=;j--)
{
for(k=r;k>=;k--)
{
if(rmb[i]>j||rp[i]>k) continue;//两个都要比较
//分三种情况
if(s[j][k]>s[j-rmb[i]][k-rp[i]]+) continue;//原人数大时,跳过
else if(s[j][k]==s[j-rmb[i]][k-rp[i]]+)
{//人数相同,取时间少的
dp[j][k]=min(dp[j][k],dp[j-rmb[i]][k-rp[i]]+tm[i]);
}
else
{//后者的人数大时,直接赋值
dp[j][k]=dp[j-rmb[i]][k-rp[i]]+tm[i];
s[j][k]=s[j-rmb[i]][k-rp[i]]+;
}
}
}
}
cout<<dp[m][r]<<endl;
return ;
}

DP 01背包 七夕模拟赛的更多相关文章

  1. USACO Money Systems Dp 01背包

    一道经典的Dp..01背包 定义dp[i] 为需要构造的数字为i 的所有方法数 一开始的时候是这么想的 for(i = 1; i <= N; ++i){ for(j = 1; j <= V ...

  2. HDOJ(HDU).3466 Dividing coins ( DP 01背包 无后效性的理解)

    HDOJ(HDU).3466 Dividing coins ( DP 01背包 无后效性的理解) 题意分析 要先排序,在做01背包,否则不满足无后效性,为什么呢? 等我理解了再补上. 代码总览 #in ...

  3. POJ.3624 Charm Bracelet(DP 01背包)

    POJ.3624 Charm Bracelet(DP 01背包) 题意分析 裸01背包 代码总览 #include <iostream> #include <cstdio> # ...

  4. HDOJ(HDU).2546 饭卡(DP 01背包)

    HDOJ(HDU).2546 饭卡(DP 01背包) 题意分析 首先要对钱数小于5的时候特别处理,直接输出0.若钱数大于5,所有菜按价格排序,背包容量为钱数-5,对除去价格最贵的所有菜做01背包.因为 ...

  5. HDOJ(HDU).2602 Bone Collector (DP 01背包)

    HDOJ(HDU).2602 Bone Collector (DP 01背包) 题意分析 01背包的裸题 #include <iostream> #include <cstdio&g ...

  6. UVA.10130 SuperSale (DP 01背包)

    UVA.10130 SuperSale (DP 01背包) 题意分析 现在有一家人去超市购物.每个人都有所能携带的重量上限.超市中的每个商品有其相应的价值和重量,并且有规定,每人每种商品最多购买一个. ...

  7. dp——01背包

    今天学习了01背包不算是复习吧,发现完全不会状态之间的转移如此让我捉摸不透尽管很简单但本人觉得还是很难,奇怪地拐点也很难被发现.知道01背包二维的话是很慢的,然后就是非得先打二维毕竟一维是根据二维的想 ...

  8. poj 2923 状压dp+01背包

    好牛b的思路 题意:一系列物品,用二辆车运送,求运送完所需的最小次数,两辆车必须一起走 解法为状态压缩DP+背包,本题的解题思路是先枚举选择若干个时的状态,总状态量为1<<n,判断这些状态 ...

  9. DP(01背包) UESTC 1218 Pick The Sticks (15CCPC C)

    题目传送门 题意:长度为L的金条,将n根金棍尽可能放上去,要求重心在L上,使得价值最大,最多有两条可以长度折半的放上去. 分析:首先长度可能为奇数,先*2.然后除了两条特殊的金棍就是01背包,所以dp ...

随机推荐

  1. 2017.4.5 OpenStack简介

    OpenStack 管理的资源不是单机的而是一个分布的系统,把分布的计算.存储.网络.设备.资源组织起来,形成一个完整的云计算系统:OpenStack 也提供一个 UI,这里包括一个图形化的 UI:H ...

  2. 我的TDD实践---TDD概念篇

    “我的TDD实践”系列之TDD概念篇 写在前面: 我的TDD实践这几篇文章主要是围绕测试驱动开发所展开的,其中涵盖了一小部分测试理论,更多的则是关注工具的使用及环境的搭建,做到简单实践先行,后理论专精 ...

  3. LOJ3048 「十二省联考 2019」异或粽子

    题意 题目描述 小粽是一个喜欢吃粽子的好孩子.今天她在家里自己做起了粽子. 小粽面前有 $n$ 种互不相同的粽子馅儿,小粽将它们摆放为了一排,并从左至右编号为 $1$ 到 $n$.第 $i$ 种馅儿具 ...

  4. mysql(mariadb)新建用户及用户授权管理

    仅新建一个newuser用户 方法一: MariaDB [(none)]> create user newuser@localhost identified by '123456'; Query ...

  5. Spring定时器corn表达式详解

    1.结构 Spring定时器corn表达式详解 2.各字段的含义 字段 允许值 允许的特殊字符 秒 0~59 - * / 分 0~59 - * / 小时 0~23 - * / 日期 1~31 - * ...

  6. tile38 server 密码保护

    默认tile38 是没有密码保护的,我们可以通过配置指定密码,类似redis 的,但是redis 的一般我们是配置在 配置文件中的 环境准备 docker-compose 文件   version: ...

  7. 使用ipns 解决ipfs 内容更新的问题

    ipds 可以使用dnslink 解决域名访问的问题,但是内容变更我们就会有新的hashid 解决方法我们可以使用ipns ,同时解决dnslink 解决域名的问题 环境准备 docker-compo ...

  8. [Hi3520DV200]烧录

    setenv ipaddr 192.168.1.11 setenv serverip 192.168.1.139 setenv gatewayip 192.168.1.1 mw.b ff ;sf pr ...

  9. OSGI基础知识整理

    一.             简介: OSGi(Open Service Gateway Initiative)技术是面向Java的动态模型系统. OSGi的主要职责就是为了让开发者能够创建动态化.模 ...

  10. activemq jms使用

    activemq 是 基于 jms 协议的 消息队列 消息 流程: jsm 的 消息流程鼻尖简单  生产者发送消息到目的地,消费者 监听这个目的地,然后收到消息. 相比 amqp 的 消息流程简单很多 ...