本文共 797 字,大约阅读时间需要 2 分钟。
正解:dfs+dp
2月29日普及普及C组第四题答疑(刘子涵).wmv
//刘子涵牛逼!刘子涵万岁!#include#include #include #include using namespace std;int hc[50][50],zc[50],f[50][50],a[50][50],b[50];int m,n,ans=2147483647,x,js,r,c,minn;void dp(){ memset(hc,0,sizeof(hc)); memset(zc,0,sizeof(zc)); memset(f,0,sizeof(f)); b[r+1]=b[r]; for(int i=1; i<=m; i++) for(int j=1; j<=r; j++) zc[i]+=abs(a[b[j]][i]-a[b[j+1]][i]); //列差 for(int i=1; i<=m; i++) for(int j=i+1; j<=m; j++) for(int k=1; k<=r; k++) hc[i][j]+=abs(a[b[k]][i]-a[b[k]][j]); //行差 for(int i=1; i<=m; i++) f[1][i]=zc[i]; for(int i=2; i<=c; i++) for(int j=i; j<=m; j++) { minn=2147483647; for(int k=i-1; k >n>>m>>r>>c; for(int i=1; i<=n; i++) for(int j=1; j<=m; j++) cin>>a[i][j]; dfs(0); cout<
转载地址:http://yjle.baihongyu.com/