CodeVS 1155 金明的预算方案 题解
来源:互联网 发布:ne452cha支持什么网络 编辑:程序博客网 时间:2024/06/14 07:27
分组背包问题
时间复杂度:O(M*N/10)
空间复杂度:O(N/10)
#include <cstdio>#include <memory.h>using namespace std;int N, M;int v, p, q;int tmp, Sum, Max;struct THING{bool Main;short int num;int Sum[4];int V[4];}thing[60+2];int f[3200+2];int main() {scanf("%d %d", &N, &M);for(int i = 1; i<=M; ++i){scanf("%d %d %d", &v, &p, &q);Sum = v*p;v /= 10;if(q==0){thing[i].Main = true;for(int j = 0; j<4; ++j) thing[i].Sum[j] += Sum;for(int j = 0; j<4; ++j) thing[i].V[j] += v;}else{tmp = ++thing[q].num;thing[q].Sum[tmp] += Sum; thing[q].Sum[3] += Sum;thing[q].V[tmp] += v; thing[q].V[3] += v;}}for(int i = 1; i<=M; ++i){if(!thing[i].Main) continue;for(int j = N/10; j>=1; --j){Max = f[j];for(int k = 0; k<4; ++k){tmp = j-thing[i].V[k];if(tmp<0) continue;if((f[tmp]+thing[i].Sum[k])>Max) Max = f[tmp]+thing[i].Sum[k];}f[j] = Max;}}printf("%d\n", f[N/10]); return 0;}
阅读全文
0 0
- CodeVS 1155 金明的预算方案 题解
- Codevs 1155 金明的预算方案
- Codevs P1155 金明的预算方案
- codevs 1155 金明的预算方案(背包)
- rq06金明的预算方案题解
- codevs动态规划 金明的预算方案
- codevs 1155 金明的预算方案——来自深夜的挫败-
- 【题解】NOIP普及组 金明的预算方案
- wiki 1155 金明的预算方案
- 金明的预算方案
- 金明的预算方案
- 金明的预算方案
- 金明的预算方案
- 金明的预算方案
- 金明的预算方案
- 金明的预算方案
- 金明的预算方案
- 金明的预算方案
- maven
- ubuntu安装VMWare Tools并共享文件夹
- csopes插件笔记
- 日期调用API,查询是否是节假日
- 【internship life】周报1
- CodeVS 1155 金明的预算方案 题解
- Java数据结构及原理实现
- Android_PopupWindow
- java支付宝H5支付及回调
- Andoird Eclipse下增量升级解析
- DMA描述符及映射
- java后台报错总结
- 常见python爬虫框架
- 清除echarts 实例