luogu1064 金明的预算方案
这道题我就想说一点:审题!附件只有2个!钱是10的整数倍,不是100的整数倍!
- #include <cstdio>
- #include <cstring>
- #include <algorithm>
- using namespace std;
- const int MAX_OBJ = 60, MAX_V = 5000, MINF = 0xcfcfcfcf;
- int ObjCnt[MAX_OBJ], V[MAX_OBJ][5], W[MAX_OBJ][5];
- int F[MAX_V];
- int TotV, TotObj;
- int Dp()
- {
- memset(F, MINF, sizeof(F));
- F[0] = 0;
- for (int i = 1; i <= TotObj; i++)
- for (int j = TotV; j >= 0; j--)
- for (int k = 1; k <= ObjCnt[i]; k++)
- if (V[i][k] <= j)
- F[j] = max(F[j], F[j - V[i][k]] + W[i][k]);
- int ans = 0;
- for (int j = 1; j <= TotV; j++)
- ans = max(ans, F[j]);
- return ans;
- }
- int main()
- {
- scanf("%d%d", &TotV, &TotObj);
- for (int i = 1; i <= TotObj; i++)
- ObjCnt[i] = 1;
- TotV /= 10;
- for (int i = 1; i <= TotObj; i++)
- {
- int v, w, group;
- scanf("%d%d%d", &v, &w, &group);
- v /= 10;
- if (group == 0)
- {
- V[i][1] = v;
- W[i][1] = w * v;
- }
- else
- {
- ObjCnt[group]++;
- V[group][ObjCnt[group]] = v;
- W[group][ObjCnt[group]] = w * v;
- }
- }
- for (int i = 1; i <= TotObj; i++)
- {
- if (ObjCnt[i] == 1 && !V[i][1])
- ObjCnt[i] = 0;
- else if (ObjCnt[i] == 2)
- {
- V[i][2] += V[i][1];
- W[i][2] += W[i][1];
- }
- else if (ObjCnt[i] == 3)
- {
- ObjCnt[i]++;
- V[i][4] = V[i][1] + V[i][2] + V[i][3];
- W[i][4] = W[i][1] + W[i][2] + W[i][3];
- V[i][2] += V[i][1];
- W[i][2] += W[i][1];
- V[i][3] += V[i][1];
- W[i][3] += W[i][1];
- }
- }
- printf("%d\n", Dp() * 10);
- return 0;
- }
luogu1064 金明的预算方案的更多相关文章
- Luogu1064 金明的预算方案 (有依赖的背包)
枚举多个状态 #include <iostream> #include <cstdio> #include <cstring> #include <algor ...
- [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 ...
随机推荐
- 01--SQLite学习网站参考
1. SQLite基本操作 见我的02—SQLite一步到位 sqlite3编程笔记 . http://blog.csdn.net/wl_haanel/article/details/623141 ...
- 12、scala函数式编程集合
1.Scala的集合体系结构 2.List 3.LikedList 4.Set 5.集合的函数式编程 6.函数式编程综合案例:统计单词总数 1.Scala的集合体系结构 Scala中集合体系主要包括: ...
- iOS crash log 解析 symbol address = stack address - slide 运行时获取slide的api 利用dwarfdump从dsym文件中得到symbol
概述: 为什么 crash log 内 Exception Backtrace 部分的地址(stack address)不能从 dsym 文件中查出对应的代码? 因为 ASLR(Address spa ...
- C# 处理URL地址
calendarset.do?start=1548518400&end=1552147200&_=1546421856958calendarset.do?start=155093760 ...
- nuxt https
我用的模板是nxut-express,版本是:1.4.2.服务器:阿里云.一.申请免费证书:网站能通过https访问,首先得申请https证书,付费的阿里云上有售卖的,一年几千块.免费的可以通过cer ...
- Nginx反向代理WebSocket(WSS)
1. WebSocket协议 WebSocket 协议提供了一种创建支持客户端和服务端实时双向通信Web应用程序的方法.作为HTML5规范的一部分,WebSockets简化了开发Web实时通信程序的难 ...
- Django REST framework 初识
一.官网快速实例 quickstart # 安装 RESTful pip install djangorestframework 二.序列化 models.py from django.db impo ...
- 68.document增删改原理
主要知识点 document增的原理 document删的原理 document改的原理 一.document增的原理 一个document存入es大致要分以下几个步骤 (1)数据写入buffer, ...
- Linux - centos7 下 MySQL(mariadb) 和 主从复制
目录 Linux - centos7 下 MySQL(mariadb) 和 主从复制 MySQL(mariadb) 安装MySQL(mariadb) 配置数据库的中文支持 在远程用 mysql客户端去 ...
- hdu 5652
India and China Origins Time Limit: 2000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/ ...