博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
noip 2014 子矩阵
阅读量:4635 次
发布时间:2019-06-09

本文共 1134 字,大约阅读时间需要 3 分钟。

先枚举行再DP列。好题,详见代码

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 using namespace std; 8 const int N=20; 9 const int inf =0x3f3f3f3f;10 int n,m,r,c,p[N][N],v[N],f[N],res=inf,t[N],t1[N][N];11 12 int DP() {13 memset(t,0,sizeof t);14 memset(t1,0,sizeof t1);15 for (int i=1; i<=m; i++)//预处理同一列相邻行之间的差值16 for (int j=1; j
=i; j--) {23 f[j]=inf;24 for (int k=j-1; k>=i-1; k--) f[j]=min(f[j],f[k]+t1[k][j]);25 f[j]+=t[j];26 }27 int ans=inf;28 for (int i=c; i<=m; i++) ans=min(ans,f[i]);29 return ans;30 }31 32 void DFS(int i,int dep) { //枚举行数33 if (dep==r) {34 res=min(res,DP());35 return;36 }37 for (int j=i; j<=n-r+dep+1; j++) {38 v[++v[0]]=j;39 DFS(j+1,dep+1);40 v[v[0]--]=0;41 }42 }43 44 void work() {45 DFS(1,0);46 printf("%d\n",res);47 }48 49 int main() {50 memset(v,0,sizeof(v));51 scanf("%d%d%d%d",&n,&m,&r,&c);52 for (int i=1; i<=n; i++)53 for (int j=1; j<=m; j++)54 scanf("%d",&p[i][j]);55 work();56 return 0;57 }
View Code

 

转载于:https://www.cnblogs.com/ITUPC/p/5360789.html

你可能感兴趣的文章
sql语句的各种模糊查询语句
查看>>
vlc 学习网
查看>>
Python20-Day05
查看>>
Real World Haskell 第七章 I/O
查看>>
C#操作OFFICE一(EXCEL)
查看>>
【js操作url参数】获取指定url参数值、取指定url参数并转为json对象
查看>>
ABAP 程序间的调用
查看>>
移动端单屏解决方案
查看>>
web渗透测试基本步骤
查看>>
把mysql 中的字符gb2312 改为gbk的方法
查看>>
使用Struts2标签遍历集合
查看>>
angular.isUndefined()
查看>>
第一次软件工程作业(改进版)
查看>>
WPF的图片操作效果(一):RenderTransform
查看>>
网络流24题-飞行员配对方案问题
查看>>
Jenkins 2.16.3默认没有Launch agent via Java Web Start,如何配置使用
查看>>
Excel的数据分析—排位与百分比
查看>>
讯飞语音识别Android-Demo
查看>>
引入css的四种方式
查看>>
Mysql蠕虫复制
查看>>