lanqiao OJ 金明的预算方案

简介: lanqiao OJ 金明的预算方案

15 届蓝桥杯14天国特冲刺营_蓝桥杯 - 蓝桥云课

分组背包问题

#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
#define v first 
#define w second 
 
using namespace std ; 
const int N = 2e5 +10 ;
int f[N] ;
typedef pair<int,int> PII ;
PII master[N] ;//用于记录主件,如果主件的v等于零,说明这个编号的零件不是主件 
vector<PII> s[N] ;//用于记录附件,对于编号为i的主件的附件 
int n , m ;
int main(){
  cin >> m >> n ;
  for(int i = 1 ; i <= n ;i ++){
    int a , b , c ;
    cin >> a >> b >> c ;
    if(c==0){
      master[i] = {a,a*b} ;//加入主键 
    }else {
      s[c].push_back({a,a*b}) ;//加入附件 
    }
  }
  for(int i = 1 ; i <= n ;i ++){
    if(master[i].v == 0) continue ;//如果不是主件,就直接continue; 
    else{
      for(int j = m ; j >= 0 ; j --){
        PII tmp = master[i];
        for(int k = 0 ; k < 1 << s[i].size() ; k++){
          int  v = tmp.v ; int w = tmp.w ;//如果要选附件,主件必须选 
          for(int u = 0 ; u <= s[i].size() ; u ++  ){//利用二进制的方法来求附件的选择和不选择 
            if((k>>u)&1){
              v += s[i][u].v ;
              w += s[i][u].w ;
            }
          }
          if(j >= v ) f[j] = max(f[j],f[j-v] + w) ;
        }
      }
      
      
    }
  }
  cout << f[m] << endl ;
}
目录
相关文章
|
SQL 缓存 关系型数据库
OBCP题目及解析
OBCP题目及解析
955 0
|
Java C++ Python
快讯:LeetCode中国正式上线《剑指Offer》题目,刷题真方便了!
近日,LeetCode中国[1]上线了一个全新的分类模块 LCOF “剑指 Offer[2]”。
6295 0
快讯:LeetCode中国正式上线《剑指Offer》题目,刷题真方便了!
|
1月前
lanqiao oj 机房
lanqiao oj 机房
15 1
|
1月前
lanqiao OJ 1024 游园安排
lanqiao OJ 1024 游园安排
20 3
|
1月前
|
人工智能
lanqiao OJ 109 分考场
lanqiao OJ 109 分考场
11 0
|
5月前
|
C++
【洛谷 P1047】[NOIP2005 普及组] 校门外的树 题解(位集合)
**NOIP2005普及组问题:**给定长度为$l$的马路,上面等距种植着树,需移除位于建造地铁区域的树。输入包含马路长度和区域数,以及各区域起止点,输出移树后剩余树的数量。样例输入:$l=500$, $m=3$,输出:$298$。$20\%$数据无区域重合,$1 \leq l \leq 10^4$,$1 \leq m \leq 100$。解决方案利用位集合(bitset)表示树的状态,遍历区域将树设为0,最后统计1的数量。AC代码使用C++实现。
30 0
|
算法 测试技术 Android开发
LeetCode 周赛上分之旅 #39 结合中心扩展的单调栈贪心问题
学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越抽象,它能覆盖的问题域就越广,理解难度也更复杂。在这个专栏里,小彭与你分享每场 LeetCode 周赛的解题报告,一起体会上分之旅。
66 1
|
6月前
|
算法
【算法优选】双指针专题——壹
【算法优选】双指针专题——壹
|
6月前
【每日一题Day167】LC1000合并石头的最低成本 | 区间dp
【每日一题Day167】LC1000合并石头的最低成本 | 区间dp
55 1
【每日一题Day167】LC1000合并石头的最低成本 | 区间dp
|
6月前
蓝桥备战--纪念品分组OJ532,贪心证明
蓝桥备战--纪念品分组OJ532,贪心证明
29 0