题面

sol:先爆搜搜出r行,再在那r行中选c列DP得到最优解

我太菜了,这种题都做了好久,还需锻炼码力啊qwq

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n, m, r, c, Map[][], loc[], ll[], hh[][], f[][], ans;
inline void solve()
{
memset(f, , sizeof f);
memset(ll, , sizeof ll);
memset(hh, , sizeof hh);
for(int i = ; i <= m; i++)
for(int j = ; j <= r; j++)
ll[i] += abs(Map[loc[j]][i] - Map[loc[j - ]][i]);
for(int i = ; i <= m; i++)
for(int j = i + ; j <= m; j++)
for(int k = ; k <= r; k++)
hh[i][j] += abs(Map[loc[k]][i] - Map[loc[k]][j]);
for(int i = ; i <= m; i++)
f[][i] = ll[i];
for(int i = ; i <= c; i++)
for(int j = ; j <= m; j++)
for(int k = j + ; k <= m ; k++)
f[i][k] = min(f[i][k], f[i - ][j] + ll[k] + hh[j][k]);
for(int i = c; i <= m; i++)
ans = min(ans, f[c][i]);
}
inline void dfs(int x, int pre)
{
if (x == r + )
{
solve();
return;
}
for(int i = pre + ; n - i >= r - x; i++)
loc[x] = i,
dfs(x + , i);
}
int main()
{
while(~scanf("%d%d%d%d", &n, &m, &r, &c))
{
ans = 0x3f3f3f3f;
memset(loc, , sizeof loc);
for(int i = ; i <= n; i++)
for(int j = ; j <= m; j++)
scanf("%d", &Map[i][j]);
dfs(, );
printf("%d\n", ans);
}
}

luogu2258的更多相关文章

随机推荐

  1. 4-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案数据篇(云端电脑(Windows)安装配置数据库,使用本地Navicat for MySQL和手机APP 远程连接测试)

    3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案数据篇(安装配置数据库,使用Navicat for MySQL和手机APP 连接测试) 根据前面的教程把软件复制到云 ...

  2. Spring Cloud 分布式链路跟踪 Sleuth + Zipkin + Elasticsearch【Finchley 版】

    随着业务越来越复杂,系统也随之进行各种拆分,特别是随着微服务架构的兴起,看似一个简单的应用,后台可能很多服务在支撑:一个请求可能需要多个服务的调用:当请求迟缓或不可用时,无法得知是哪个微服务引起的,这 ...

  3. Vscode更新之后rg.exe占用cpu过高

    文件->首选项->搜索"search.followSymlinks"改为false https://www.zhihu.com/question/67317040

  4. 重构JS代码 - 让JS代码平面化

    js中的嵌套函数用的很多,很牛叉,那为何要平面化? 易懂(自己及他人) 易修改(自己及他人) 平时Ajax调用写法(基于jQuery) $.post('url', jsonObj, function ...

  5. 撒花!中文翻译仓库链接已加入 ML.NET 官方示例网站首页

    从2018年12月02日决定开始做ML.NET 示例中文版https://github.com/feiyun0112/machinelearning-samples.zh-cn,然后以每天一篇的速度进 ...

  6. disruptor 高性能之道

    disruptor是一个高性能的线程间异步通信的框架,即在同一个JVM进程中的多线程间消息传递.应用disruptor知名项目有如下的一些:Storm, Camel, Log4j2,还有目前的美团点评 ...

  7. 谈谈自己体会到的HTML5

    # 谈谈自己体会到的HTML5 很多介绍HTML5的文章,都是从以下几个方面去介绍的:语义化.丰富的表单.本地存储.多媒体.地理位置等等.纸上得来终觉浅,现在有了一定的实践经验之后,本人对其有了更加深 ...

  8. java OOM还在看log日志,兄弟你错的的很严重,正确方式是分析dump文件

    目录 OOM异常--intsmaze 正确姿势dump文件分析--intsmaze 正确的姿势--intsmaze dump丢失打印--intsmaze 哪些内存溢出会产生dump文件--intsma ...

  9. 移动H5页面微信支付踩坑之旅(微信支付、单页面路由模拟、按钮加锁、轮询等常见功能)

    开发背景: .net混合开发的vue模板语法的单页面应用,所以不存在脚手架以及没有路由可以跳转. 项目描述: 需要写两个页面,在订单详情页需要点击“请输入手机号”进入手机号绑定页面,手机号绑定成功后自 ...

  10. layui轮播中箭头不起作用问题

    layui轮播中箭头不起作用问题 layui轮播插件在使用中发现箭头不起作用其他都合适,是什么原因造成的呢?发现单独提出layui中的demo是合适的,通过仔细慢慢的寻找,发现layui.use('c ...