开了O2才80,这到底是为什么?
  • 板块P1776 宝物筛选
  • 楼主zzahan
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/7/10 11:04
  • 上次更新2023/11/3 10:48:22
查看原帖
开了O2才80,这到底是为什么?
835728
zzahan楼主2023/7/10 11:04
#include <iostream>
using namespace std;
const int N=1e7+10;
int n,W,idx;
int w[N],v[N],s[N];
int f[N];
int main()
{
	cin>>n>>W;
	for(int i=1; i<=n; i++)
	{
		int vi,wi,si;
		cin>>vi>>wi>>si;
		for(int k=1; k<=si; k<<1)
		{
			++idx;
			v[idx]=k*vi;
			w[idx]=k*wi;
			si-=k;
		}
		v[++idx]=si*vi;
		w[idx]=si*wi;
	}
	for(int i=1; i<=idx; i++)
	{
		for(int j=W; j>=w[i]; j--)
		{
			f[j]=max(f[j],f[j-w[i]]+v[i]);
		}
	}
	cout<<f[W];
	return 0;
}

2023/7/10 11:04
加载中...