这道题我就想说一点:审题!附件只有2个!钱是10的整数倍,不是100的整数倍!

  1. #include <cstdio>
  2. #include <cstring>
  3. #include <algorithm>
  4. using namespace std;
  5.  
  6. const int MAX_OBJ = 60, MAX_V = 5000, MINF = 0xcfcfcfcf;
  7. int ObjCnt[MAX_OBJ], V[MAX_OBJ][5], W[MAX_OBJ][5];
  8. int F[MAX_V];
  9. int TotV, TotObj;
  10.  
  11. int Dp()
  12. {
  13. memset(F, MINF, sizeof(F));
  14. F[0] = 0;
  15. for (int i = 1; i <= TotObj; i++)
  16. for (int j = TotV; j >= 0; j--)
  17. for (int k = 1; k <= ObjCnt[i]; k++)
  18. if (V[i][k] <= j)
  19. F[j] = max(F[j], F[j - V[i][k]] + W[i][k]);
  20. int ans = 0;
  21. for (int j = 1; j <= TotV; j++)
  22. ans = max(ans, F[j]);
  23. return ans;
  24. }
  25.  
  26. int main()
  27. {
  28. scanf("%d%d", &TotV, &TotObj);
  29. for (int i = 1; i <= TotObj; i++)
  30. ObjCnt[i] = 1;
  31. TotV /= 10;
  32. for (int i = 1; i <= TotObj; i++)
  33. {
  34. int v, w, group;
  35. scanf("%d%d%d", &v, &w, &group);
  36. v /= 10;
  37. if (group == 0)
  38. {
  39. V[i][1] = v;
  40. W[i][1] = w * v;
  41. }
  42. else
  43. {
  44. ObjCnt[group]++;
  45. V[group][ObjCnt[group]] = v;
  46. W[group][ObjCnt[group]] = w * v;
  47. }
  48. }
  49. for (int i = 1; i <= TotObj; i++)
  50. {
  51. if (ObjCnt[i] == 1 && !V[i][1])
  52. ObjCnt[i] = 0;
  53. else if (ObjCnt[i] == 2)
  54. {
  55. V[i][2] += V[i][1];
  56. W[i][2] += W[i][1];
  57. }
  58. else if (ObjCnt[i] == 3)
  59. {
  60. ObjCnt[i]++;
  61. V[i][4] = V[i][1] + V[i][2] + V[i][3];
  62. W[i][4] = W[i][1] + W[i][2] + W[i][3];
  63. V[i][2] += V[i][1];
  64. W[i][2] += W[i][1];
  65. V[i][3] += V[i][1];
  66. W[i][3] += W[i][1];
  67. }
  68. }
  69. printf("%d\n", Dp() * 10);
  70. return 0;
  71. }

  

luogu1064 金明的预算方案的更多相关文章

  1. Luogu1064 金明的预算方案 (有依赖的背包)

    枚举多个状态 #include <iostream> #include <cstdio> #include <cstring> #include <algor ...

  2. [codevs1155][KOJ0558][COJ0178][NOIP2006]金明的预算方案

    [codevs1155][KOJ0558][COJ0178][NOIP2006]金明的预算方案 试题描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴 ...

  3. NOIP2006 金明的预算方案

    1.             金明的预算方案 (budget.pas/c/cpp) [问题描述] 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈 ...

  4. 动态规划(背包问题):HRBUST 1377 金明的预算方案

    金明的预算方案 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行 ...

  5. Luogu 1064 金明的预算方案 / CJOJ 1352 [NOIP2006] 金明的预算方案(动态规划)

    Luogu 1064 金明的预算方案 / CJOJ 1352 [NOIP2006] 金明的预算方案(动态规划) Description 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己 ...

  6. [LuoguP1064][Noip2006]金明的预算方案

    金明的预算方案(Link) 题目描述 现在有\(M\)个物品,每一个物品有一个钱数和重要度,并且有一个\(Q\),如果\(Q = 0\),那么该物件可以单独购买,当\(Q != 0\)时,表示若要购买 ...

  7. 算法笔记_103:蓝桥杯练习 算法提高 金明的预算方案(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些 ...

  8. tyvj 1057 金明的预算方案 背包dp

    P1057 金明的预算方案 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2006 提高组 第二道 描述 金明今天很开心,家里购置的新房就要领钥匙了 ...

  9. 【洛谷P1064】[NOIP2006] 金明的预算方案

    金明的预算方案 显然是个背包问题 把每个主件和它对应的附件放在一组,枚举每一组,有以下几种选法: 1.都不选 2.只选主件 3.一个主件+一个附件 4.一个主件+两个附件 于是就成了01背包.. #i ...

随机推荐

  1. 01--SQLite学习网站参考

    1.   SQLite基本操作 见我的02—SQLite一步到位 sqlite3编程笔记 . http://blog.csdn.net/wl_haanel/article/details/623141 ...

  2. 12、scala函数式编程集合

    1.Scala的集合体系结构 2.List 3.LikedList 4.Set 5.集合的函数式编程 6.函数式编程综合案例:统计单词总数 1.Scala的集合体系结构 Scala中集合体系主要包括: ...

  3. iOS crash log 解析 symbol address = stack address - slide 运行时获取slide的api 利用dwarfdump从dsym文件中得到symbol

    概述: 为什么 crash log 内 Exception Backtrace 部分的地址(stack address)不能从 dsym 文件中查出对应的代码? 因为 ASLR(Address spa ...

  4. C# 处理URL地址

    calendarset.do?start=1548518400&end=1552147200&_=1546421856958calendarset.do?start=155093760 ...

  5. nuxt https

    我用的模板是nxut-express,版本是:1.4.2.服务器:阿里云.一.申请免费证书:网站能通过https访问,首先得申请https证书,付费的阿里云上有售卖的,一年几千块.免费的可以通过cer ...

  6. Nginx反向代理WebSocket(WSS)

    1. WebSocket协议 WebSocket 协议提供了一种创建支持客户端和服务端实时双向通信Web应用程序的方法.作为HTML5规范的一部分,WebSockets简化了开发Web实时通信程序的难 ...

  7. Django REST framework 初识

    一.官网快速实例 quickstart # 安装 RESTful pip install djangorestframework 二.序列化 models.py from django.db impo ...

  8. 68.document增删改原理

    主要知识点 document增的原理 document删的原理 document改的原理 一.document增的原理 一个document存入es大致要分以下几个步骤 (1)数据写入buffer, ...

  9. Linux - centos7 下 MySQL(mariadb) 和 主从复制

    目录 Linux - centos7 下 MySQL(mariadb) 和 主从复制 MySQL(mariadb) 安装MySQL(mariadb) 配置数据库的中文支持 在远程用 mysql客户端去 ...

  10. hdu 5652

    India and China Origins Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/ ...