zoukankan      html  css  js  c++  java
  • BZOJ 1606 USACO 2008 Dec. 购买干草

    【题意概述】

    有n件物品,每件物品有体积Vi,背包容量为C,问最多可以装多少体积的物品

    【题解】

    显然是个无限背包嘛。。

    直接做背包DP就好

    注意无限背包的写法和01背包的区别

     1 #include<cstdio>
     2 #include<algorithm>
     3 using namespace std;
     4 const int maxn=100010;
     5 int f[maxn],v[maxn],n,c,ans=0;
     6 void read(int &k){
     7     k=0; int f=1; char c=getchar();
     8     while(c<'0'||c>'9')c=='-'&&(f=-1),c=getchar();
     9     while('0'<=c&&c<='9')k=k*10+c-'0',c=getchar();
    10     k*=f;
    11 }
    12 int main(){
    13     read(c); read(n);
    14     for (int i=1;i<=n;i++) read(v[i]);
    15     for (int i=1;i<=n;i++)
    16         for (int j=v[i];j<=c;j++) 
    17             f[j]=max(f[j],f[j-v[i]]+v[i]),ans=max(ans,f[j]);
    18     return printf("%d
    ",ans),0;
    19 } 
    View Code
  • 相关阅读:
    Js Array 删除
    语音播报功能
    js实现HashTable
    Js 克隆
    获取电脑名和IP地址
    获取电脑名和Ip
    IIS 配置问题
    WCF 服务
    【并查集】wikioi1001舒适的路线
    【实用】读取信息
  • 原文地址:https://www.cnblogs.com/DriverLao/p/7773356.html
Copyright © 2011-2022 走看看