不开O2 AC,开O2 全TLE
#include <iostream>
using namespace std;
#define int long long
int n,m,a[100][100],w[1000],v[1000],zu[1000],s,dp[15][20],tmp;
int shuchu(int i,int j){
if(i==0){
return 0;
}
for(int k=0;k<=j;k++){
if(tmp==dp[i-1][k]+a[i][j-k]){
tmp=dp[i-1][k];
shuchu(i-1,k);
cout<<i<<" "<<j-k<<endl;
break;
}
}
}
signed main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
s++;
zu[s]=i;
w[s]=j;
v[s]=a[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=m;j>=0;j--){
dp[i][j]=dp[i-1][j];
for(int k=1;k<=s;k++){
if(zu[k]==i){
if(j-w[k]>=0){
if(dp[i-1][j-w[k]]+v[k]>=dp[i][j]){
dp[i][j]=dp[i-1][j-w[k]]+v[k];
}
}
}
}
}
}
tmp=dp[n][m];
cout<<dp[n][m]<<endl;
shuchu(n,m);
return 0;
}
/*
┏┓ ┏┓
┏┛┻━━━┛┻┓
┃ ┃
┃ ━ ┃
┃ ┳┛ ┗┳ ┃
┃ ┃
┃ ┻ ┃
┃ ┃
┗━┓ ┏━┛Codes are far away from bugs with the animal protecting
┃ ┃ 神兽保佑,代码无bug
┃ ┃
┃ ┗━━━┓
┃ ┣┓
┃ ┏┛
┗┓┓┏━┳┓┏┛
┃┫┫ ┃┫┫
┗┻┛ ┗┻┛ ○| ̄|_
*/