zoukankan      html  css  js  c++  java
  • P1757 通天之分组背包

    P1757 通天之分组背包
    背包中的经典问题,我竟然不知道。
    分组背包
    就是每个物品有一个所属的小组,小组内的物品会冲突。
    就是把01背包中的两个for换一下位置
    01:
    for(i,1,kind)
    for(j,v,w[i])
    分组背包
    for(j,v,w[i])
    for(i,1,kind)

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<queue>
     4 #include<algorithm>
     5 #include<cmath>
     6 #include<ctime>
     7 #include<cstring>
     8 #define inf 2147483647
     9 #define For(i,a,b) for(register int i=a;i<=b;i++)
    10 #define p(a) putchar(a)
    11 #define g() getchar()
    12 //by war
    13 //2017.10.17
    14 using namespace std;
    15 int n,m,x,y,z;
    16 struct bag
    17 {
    18     int cnt;
    19     int v[1010];
    20     int w[1010];
    21 }a[110];
    22 int f[1010];
    23 bool b[110];
    24 int kind;
    25 int ans;
    26 void in(int &x)
    27 {
    28     int y=1;
    29     char c=g();x=0;
    30     while(c<'0'||c>'9')
    31     {
    32     if(c=='-')
    33     y=-1;
    34     c=g();
    35     }
    36     while(c<='9'&&c>='0')x=x*10+c-'0',c=g();
    37     x*=y;
    38 }
    39 void o(int x)
    40 {
    41     if(x<0)
    42     {
    43         p('-');
    44         x=-x;
    45     }
    46     if(x>9)o(x/10);
    47     p(x%10+'0');
    48 }
    49 int main()
    50 {
    51     in(m),in(n);
    52     For(i,1,n)
    53     {
    54         in(x),in(y),in(z);
    55         if(!b[z])
    56         {
    57             kind++;
    58             b[z]=true;
    59         }
    60         a[z].cnt++;
    61         a[z].v[a[z].cnt]=y;
    62         a[z].w[a[z].cnt]=x;
    63     }
    64     For(i,1,kind)
    65      {
    66           for(int t=m;t>=0;t--)
    67              For(j,1,a[i].cnt)
    68              if(t>=a[i].w[j])
    69               f[t]=max(f[t],f[t-a[i].w[j]]+a[i].v[j]);
    70      } 
    71     o(f[m]);
    72      return 0;
    73 }
    View Code
  • 相关阅读:
    前端学习 -- Css -- 盒子模式
    前端学习 -- Css -- 文本样式
    Shell脚本学习
    前端学习 -- Css -- 行间距
    前端学习 -- Css -- 字体的几个属性学习
    前端学习 -- Css -- 字体分类
    前端学习 -- Css -- 字体
    前端学习 -- 颜色
    前端学习 -- 长度单位
    前端学习 -- Css -- 定义列表
  • 原文地址:https://www.cnblogs.com/war1111/p/7683019.html
Copyright © 2011-2022 走看看