1 条题解
-
0
#include <bits/stdc++.h> using namespace std; int n,m,k,s,t,f[20005],a[105][105]; int main(){ cin>>s>>n>>m; for (int i=1;i<=s;++i){ for (int j=1;j<=n;++j) cin>>a[j][i]; } for (int i=1;i<=n;++i) sort(a[i]+1,a[i]+s+1); for (int i=1;i<=n;++i){//枚举城堡 for (int j=m;j>=0;--j)//倒序枚举已经使用的士兵数量 for (int k=1;k<=s;++k)//对第k个玩家决策 if (j+a[i][k]*2+1<=m) f[j+a[i][k]*2+1]=max(f[j+a[i][k]*2+1],f[j]+i*k); } int ans=0; for (int i=0;i<=m;++i) ans=max(ans,f[i]); cout<<ans<<endl; }
- 1
信息
- ID
- 499
- 时间
- 1000ms
- 内存
- 500MiB
- 难度
- 1
- 标签
- 递交数
- 25
- 已通过
- 23
- 上传者