站外题
  • 板块灌水区
  • 楼主wangyihan_
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/12/7 21:15
  • 上次更新2024/12/7 21:23:32
查看原帖
站外题
1346507
wangyihan_楼主2024/12/7 21:15

#include<bits/stdc++.h>
using namespace std;
int q,p,W,V,x,n,w[1001],c[1001],s[1001],f[100001],a[101][101];
int main() 
{
	cin>>q>>p>>W>>V;
	W=min(W,V-1);
	for(int i=1;i<=q;i++)
	  for(int j=1;j<=p;j++)
		scanf("%d",&a[i][j]);
	for(int i=1;i<=q;i++)
	  for(int j=1;j<=p;j++) 
	  {
		scanf("%d",&x);
		if(x>0&&a[i][j]>0) 
		{
			n++;
			w[n]=(i+j)*2;
			c[n]=a[i][j];
			s[n]=x;
		}
	  }
	for(int i=1;i<=n;i++)
	  for(int k=1;k<=s[i];k++)
		for(int j=W;j>=w[i];j--)
		  f[j]=max(f[j],f[j-w[i]]+c[i]);
	cout<<f[W]<<endl;
	return 0;
}
2024/12/7 21:15
加载中...