题面

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. ZOJ - 2423-Fractal

    A fractal is an object or quantity that displays self-similarity, in a somewhat technical sense, on ...

  2. HRBUST - 2347 - 递归画图 - vj大一上寒假训练2.11

    其他题可由本题变形得到. 思路:利用坐标dfs搜索. 注意:1,初始化.2,坐标实时更新(x,y) 代码: #include<iostream> #include<cstdio> ...

  3. SCOI2019d1t1平台跳跃[高精]

    分析 首先考虑相邻柱子之间没有浮台. 记前 \(m-1\) 个盘子为 x, 第 \(m\) 个盘子为 y,有如下过程:\(x\rightarrow C, y\rightarrow B, x\right ...

  4. .Net外包篇:我是如何看待外包的

    前言 从工作至今,我在工作之余大大小小接了六次外包,不多不少,虽然没有为我带来很大收益,但也让我开拓了人脉,接触了不少知识,锻炼了全栈开发能力. 菜鸟时代 第一家客户(成功) 我接的第一个外包是为一家 ...

  5. 在spring中实现quartz2.2.1的动态调度(开始、暂停、停止等)

    参考原文地址: https://blog.csdn.net/fantasic_van/article/details/74942062 一.新建job1 package com.cvicse.ump. ...

  6. Centos7 下SVN迁移

    SVN迁移需要做如下操作: 1. 将原来的Repository导出 . #svnadmin dump 原有repos的目录路径 > dumpfile (不同服务器安装目录不同,根据具体情况调整) ...

  7. mariadb(第五章)视图、事物、索引、外键

    视图 对于复杂的查询,在多个地方被使用,如果需求发生了改变,需要更改sql语句,则需要在多个地方进行修改,维护起来非常麻烦 假如因为某种需求,需要将user拆房表usera和表userb,该两张表的结 ...

  8. XT535

    今天金山误删了一个文件,把手机系统整坏了,故刷了个机,刷机教程: http://bbs.dospy.com/thread-15027415-1-623-1.html 中间安装了个驱动精灵,否则手机开启 ...

  9. Python_数据类型的补充、集合set、深浅copy

    1.数据类型的补充 1.1 元组 当元组里面只有一个元素且没有逗号时,则该数据的数据类型与括号里面的元素相同. tu1 = ('laonanhai') tu2 = ('laonanhai') prin ...

  10. Azure系列2.1.4 —— BlobInputStream

    (小弟自学Azure,文中有不正确之处,请路过各位大神指正.) 网上azure的资料较少,尤其是API,全是英文的,中文资料更是少之又少.这次由于公司项目需要使用Azure,所以对Azure的一些学习 ...