社区讨论
求调E
学术版参与者 4已保存回复 6
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 6 条
- 当前快照
- 1 份
- 快照标识符
- @lo18rtiz
- 此快照首次捕获于
- 2023/10/22 17:03 2 年前
- 此快照最后确认于
- 2023/11/02 16:53 2 年前
CPP
#include<bits/stdc++.h>
#define qm(a,b) a=min(a,b)
#define ull unsigned long long
#define int long long
#define fo(i,l,r) for(int i=l;i<=r;i++)
#define fd(i,l,r) for(int i=r+5;i>=l;i--)
using namespace std;
int n,k,p,c[105],a[105][10],dp[11][11][11][11][11],ans=LLONG_MAX;
signed main(){
cin>>n>>k>>p;
fd(j,0,5)fd(pk,0,5)fd(kk,0,5)fd(kkk,0,5)fd(l,0,5)dp[j][pk][kk][kkk][l]=LLONG_MAX-1000000000000ll;
if(k==1)dp[0][p][p][p][p]=0;
if(k==2)dp[0][0][p][p][p]=0;
if(k==3)dp[0][0][0][p][p]=0;
if(k==4)dp[0][0][0][0][p]=0;
if(k==5)dp[0][0][0][0][0]=0;
fo(i,1,n){
cin>>c[i];
fo(j,1,k)cin>>a[i][j];
if(k==1){
fd(i1,a[i][1],p)qm(dp[i1][p][p][p][p],dp[i1-a[i][1]][p][p][p][p]+c[i]);
}
if(k==2){
fd(i1,a[i][1],p)fd(i2,a[i][2],p)
qm(dp[i1][i2][p][p][p],dp[i1-a[i][1]][i2-a[i][2]][p][p][p]+c[i]);
}
if(k==3){
fd(i1,a[i][1],p)fd(i2,a[i][2],p)fd(i3,a[i][3],p)
qm(dp[i1][i2][i3][p][p],
dp[i1-a[i][1]][i2-a[i][2]][i3-a[i][3]][p][p]+c[i]);
}
if(k==4){
fd(i1,a[i][1],p)fd(i2,a[i][2],p)fd(i3,a[i][3],p)fd(i4,a[i][4],p)
qm(dp[i1][i2][i3][i4][p],
dp[i1-a[i][1]][i2-a[i][2]][i3-a[i][3]][i4-a[i][4]][p]+c[i]);
}
if(k==5){
fd(i1,a[i][1],p)fd(i2,a[i][2],p)fd(i3,a[i][3],p)fd(i4,a[i][4],p)fd(i5,a[i][5],p)
qm(dp[i1][i2][i3][i4][i5],
dp[i1-a[i][1]][i2-a[i][2]][i3-a[i][3]][i4-a[i][4]][i5-a[i][5]]+c[i]);
}
}
fd(i1,p,p)fd(i2,p,p)fd(i3,p,p)fd(i4,p,p)fd(i5,p,p)ans=min(ans,dp[i1][i2][i3][i4][i5]);
cout<<(ans!=LLONG_MAX-1000000000000ll?ans:-1);
return 0;
}
回复
共 6 条回复,欢迎继续交流。
正在加载回复...