zoukankan      html  css  js  c++  java
  • 01背包

    基本概念

        01背包是背包问题中最简单的问题。01背包的约束条件是给定几种物品,每种物品有且只有一个,并且有权值和体积两个属性。在01背包问题中,因为每种物品只有一个,对于每个物品只需要考虑选与不选两种情况。如果不选择将其放入背包中,则不需要处理。如果选择将其放入背包中,由于不清楚之前放入的物品占据了多大的空间,需要枚举将这个物品放入背包后可能占据背包空间的所有情况。
    状态转移方程
    1 f[i, j] = max( f[ i-1 ][  j-W[ i ] ] + P[ i ] , f[ i-1 ][ j ] )//j >= W[ i ]

    已经AC的HDU2602

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <string>
     4 #include <cstring>
     5 #include <algorithm>
     6 using namespace std;
     7 
     8 int v[1005],w[1005];
     9 int dp[1005][1005];
    10 int max(int x,int y)
    11 {
    12     return x>y?x:y;
    13 }
    14 int main()
    15 {
    16     int t,n,V,i,j;
    17     scanf("%d",&t);
    18     while(t--)
    19     {
    20         scanf("%d%d",&n,&V);
    21         for(i=1;i<=n;i++)
    22             scanf("%d",&w[i]);
    23         for(i=1;i<=n;i++)
    24             scanf("%d",&v[i]);
    25         memset(dp,0,sizeof(dp));
    26         for(i=1;i<=n;i++)
    27             for(j=0;j<=V;j++)
    28         {
    29             if(v[i]<=j)
    30                 dp[i][j]=max(dp[i-1][j],dp[i-1][j-v[i]]+w[i]);
    31             else
    32                 dp[i][j]=dp[i-1][j];
    33         }
    34         cout << dp[n][V] << endl;
    35     }
    36 
    37     return 0;
    38 }

     

     1 #include <iostream>
     2 using namespace std;
     3 int main()
     4 {
     5     int t;cin>>t;
     6     while(t--)
     7     {
     8         int n,va,w[10005]={0},v[10005]={0},f[10005]={0};
     9         cin>>n>>va;
    10         for(int i=0;i<n;i++) cin>>w[i];
    11         for(int i=0;i<n;i++) cin>>v[i];
    12         for(int i=0;i<n;i++)
    13         for(int j=va;j>=v[i];j--)
    14         f[j]=max(f[j],f[j-v[i]]+w[i]);
    15         cout<<f[va]<<endl;
    16     }
    17     return 0;
    18 }

  • 相关阅读:
    OpenStack 对接 Ceph
    《Netty权威指南》(二)NIO 入门
    《Netty权威指南》(一)走进 Java NIO
    进程间通信 IPC(Inter-Process Communication)
    CentOS7 下安装 iSCSI Target(tgt) ,使用 Ceph rbd
    CentOS7 下编译安装 Samba,什么是 SMB/CIFS 协议
    《Netty权威指南》目录
    CentOS7 下安装 NFS,Linux/Windows 作为客户端
    数据结构汇总
    Ceph 块设备
  • 原文地址:https://www.cnblogs.com/--lr/p/6780900.html
Copyright © 2011-2022 走看看