蒟蒻再次求助
查看原帖
蒟蒻再次求助
306233
某个L姓羸弱楼主2020/8/26 10:24
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <ctime>
#include <cstring>
#include <string>
#include <queue>
#include <cstdio>
using namespace std;
int n,m,r,c,a[21][21],f[21][21],w[21],v[21][21],bdfs[21],ans;
void into(){
	for(int i=1;i<=m;i++){
		w[i]=0;
		for(int j=1;j<=r;j++){
			w[i]+=abs(a[bdfs[j]][i]-a[bdfs[j+1]][i]);
		}
	}
	for(int i=2;i<=m;i++){
        for(int j=1;j<i;j++){
            v[i][j]=0;
            for(int k=1;k<=r;k++){
                v[i][j]+=abs(a[bdfs[k]][i]-a[bdfs[k]][j]);
            }
        }
    }
} 
void dp(){
	f[0][0]=0;
    for(int i=1;i<=c;i++)
        for(int j=i;j<=m;j++)
            for(int k=0;k<j;k++)
                f[i][j]=min(f[i][j],f[i-1][k]+w[j]+v[k][j]);
    for(int i=c;i<=m;i++)ans=min(ans,f[c][i]);
}
void dfs(int x,int y){
    if(x>n)return;
	if(y>r){
		into();
        dp();
        return;
    }
    dfs(x+1,y);
    bdfs[y]=x;
    dfs(x+1,y+1);
}
int main(){
    cin>>n>>m>>r>>c;
    for(int i=1;i<=n;i++)
    	for(int j=1;j<=m;j++)
    		cin>>a[i][j];
    dfs(1,1);
    cout<<ans;
	return 0;
}

全WA了是怎么回事啊,有没有大佬帮帮我啊

2020/8/26 10:24
加载中...