SSL_1376【完全背包】进阶

   日期:2020-08-21     浏览:90    评论:0    
核心提示:原版传送门:SSL_1376【完全背包】进阶的根本原因是本题的空间复杂度达到了O(N*M),若是NM皆为10000,极有可能内存不够所以要优化,将二维数组改成一维数组,将空间复杂度优化到O(M)直接上代码:#include#includeusing namespace std;int n,m,a[1001],b[1001],c[1001],t=0;int main(){ cin>>n>>m; for(i

原题传送门:SSL_1376【完全背包】
进阶的根本原因是本题的空间复杂度达到了O(N*M),若是NM皆为10000,极有可能内存不够
所以要优化,将二维数组改成一维数组,将空间复杂度优化到O(M)
直接上代码:

#include<iostream>
#include<cstdio>
using namespace std;
int n,m,a[1001],b[1001],c[1001],t=0;
int main()
{
 cin>>n>>m;
 for(int i=1;i<=m;i++)cin>>a[i]>>b[i];
 for(int i=1;i<=m;i++)
 {
  for(int j=a[i];j<=n;j++)
  {
   c[j]=max(c[j],c[j-a[i]]+b[i]);
   t=max(c[j],t);
  }
 }
 cout<<t;
 return 0;
}
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服