AcWing 487. 金明的预算方案
- #include <cstring>
- #include <iostream>
- #include <algorithm>
- #include <vector>
- #define v first
- #define w second
- using namespace std;
- typedef pair<int, int> PII;
- const int N = , M = ;
- int n, m;
- PII master[N];
- vector<PII> servent[N];
- int f[M];
- int main() {
- cin >> m >> n;//m总钱数 n个数
- for (int i = ; i <= n; i ++ ) {
- int v, p, q;
- cin >> v >> p >> q;
- p *= v;//价值
- if (!q) master[i] = {v, p};//如果是0,表示为主件
- else servent[q].push_back({v, p});//如果不是0,为附件,插入相关主键
- }
- for (int i = ; i <= n; i ++ )//个数
- for (int u = m; u >= ; u -- ) {//总钱数
- for (int j = ; j < << servent[i].size(); j ++ )
- //转换为二进制,对于每个主件,有几种选法
- {
- int v = master[i].v, w = master[i].w;
- for (int k = ; k < servent[i].size(); k ++ )
- if (j >> k & )
- {//如果第k位是1,那就说明选第k个
- v += servent[i][k].v;
- w += servent[i][k].w;
- }
- if (u >= v) f[u] = max(f[u], f[u - v] + w);
- }
- }
- cout << f[m] << endl;
- return ;
- }
- #include<iostream>
- #include<vector>
- #define v first
- #define w second
- using namespace std ;
- typedef pair<int,int>PII;
- const int N=;
- int f[N];
- int n,m;
- vector<PII>servent[N];
- PII master[N];
- int main()
- {
- cin>>m>>n;
- for(int i=;i<=n;i++)
- {
- int v,p,q;
- cin>>v>>p>>q;
- p*=v;
- if(!q)
- master[i]={v,p};
- else
- servent[q].push_back({v,p});
- }
- for(int i=;i<=n;i++)
- for(int j=m;j>=;j--)
- for(int k=;k< <<servent[i].size();k++)
- {
- int w=master[i].w,v=master[i].v;
- for(int u=;u<servent[i].size();u++)
- {
- if(k>>u&)
- {
- w+=servent[i][u].w;
- v+=servent[i][u].v;
- }
- }
- if(j>=v)
- f[j]=max(f[j],f[j-v]+w);
- }
- cout<<f[m]<<endl;
- return ;
- }
AcWing 487. 金明的预算方案的更多相关文章
- [codevs1155][KOJ0558][COJ0178][NOIP2006]金明的预算方案
[codevs1155][KOJ0558][COJ0178][NOIP2006]金明的预算方案 试题描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴 ...
- NOIP2006 金明的预算方案
1. 金明的预算方案 (budget.pas/c/cpp) [问题描述] 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈 ...
- 动态规划(背包问题):HRBUST 1377 金明的预算方案
金明的预算方案 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行 ...
- Luogu 1064 金明的预算方案 / CJOJ 1352 [NOIP2006] 金明的预算方案(动态规划)
Luogu 1064 金明的预算方案 / CJOJ 1352 [NOIP2006] 金明的预算方案(动态规划) Description 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己 ...
- [LuoguP1064][Noip2006]金明的预算方案
金明的预算方案(Link) 题目描述 现在有\(M\)个物品,每一个物品有一个钱数和重要度,并且有一个\(Q\),如果\(Q = 0\),那么该物件可以单独购买,当\(Q != 0\)时,表示若要购买 ...
- 算法笔记_103:蓝桥杯练习 算法提高 金明的预算方案(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些 ...
- tyvj 1057 金明的预算方案 背包dp
P1057 金明的预算方案 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2006 提高组 第二道 描述 金明今天很开心,家里购置的新房就要领钥匙了 ...
- 【洛谷P1064】[NOIP2006] 金明的预算方案
金明的预算方案 显然是个背包问题 把每个主件和它对应的附件放在一组,枚举每一组,有以下几种选法: 1.都不选 2.只选主件 3.一个主件+一个附件 4.一个主件+两个附件 于是就成了01背包.. #i ...
- 「NOIP2006」「LuoguP1064」 金明的预算方案(分组背包
题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过NNN元钱就行” ...
随机推荐
- 00-django | 01-构建博客目录
00-django | 01-构建博客目录 python Django 创建blog 进入到 manage.py 文件所在的目录(即项目根目录)下,运行 pipenv run python manag ...
- P4392 [BOI2007]Sound 静音问题
---------------------- 链接:Miku ----------------------- 这道题本质上还是个st表,只要两个st表,然后对于每一个点,查询他开始的 长度为m的去年的 ...
- 线段树区间染色 ZOJ 1610
Count the Colors ZOJ - 1610 传送门 线段树区间染色求染色的片段数 #include <cstdio> #include <iostream> #in ...
- rsa special
[ReSnAd] -- iqmp ipmq e,c,\(\phi(n)\) 题目: class Key: PRIVATE_INFO = ['P', 'Q', 'D', 'DmP1', 'DmQ1'] ...
- NIO学习笔记,从Linux IO演化模型到Netty—— Java NIO零拷贝
同样只是大致上的认识. 其中,当使用transferFrom,transferTo的时候用的sendfile(). 如果系统内核不支持 sendfile,进一步执行 transferToTrusted ...
- win10 系统到期的解决方案
本人是 win10 教育版,今天多次提醒 windows 要到期了(烦银).所以网上找到了解决方法,记录一下. 废话:win10 与之前的 windows 版本一样,有家庭版.专业版.企业版等各个版本 ...
- Patter discovery VS clustering
“pattern driven” (PD) is based on enumerating candidate patterns in a given solution space and picki ...
- Centos 7 firewall的防火墙的规则
这是官方文档: http://www.firewalld.org/documentation/man-pages/firewall-cmd.html 想使用iptables的规则,firewall也可 ...
- 限定输入框只能输入数字, TextBox的TextChanged事件调用
/// <summary> /// 限定输入框只能输入数字, TextBox的TextChanged事件调用 /// </summary> /// <param name ...
- JavaScript-跨浏览器事件处理程序(EventUtil)
事件操作对象: var EventUtil= { //添加事件 addHandler: function (element, type, handler) { if (element.addEvent ...