首页 > 代码库 > 笔直的水管 usaco 背包
笔直的水管 usaco 背包
背包dp入门,需要滚动数组;
1 #include<iostream> 2 #include<cstdio> 3 #include<string> 4 #include<cstring> 5 #include<algorithm> 6 #include<iomanip> 7 #include<cstdlib> 8 using namespace std; 9 const int maxn=101000;10 const int inf=100000000;11 int L,n;12 int w[maxn],v[maxn],c[maxn];13 void init(){14 scanf("%d%d",&L,&n);15 for(int i=1;i<=n;i++)scanf("%d%d",&w[i],&v[i]);16 }17 void work(){18 memset(c,-10,sizeof(c));19 c[0]=inf;20 for(int i=1;i<=n;i++)21 for(int j=L;j>=0;j--){22 if(j<w[i])break;23 c[j]=max(c[j],min(c[j-w[i]],v[i]));24 }25 cout<<c[L]<<endl;26 }27 int main(){28 init();29 work();30 }
笔直的水管 usaco 背包
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。