Codeforces 152 E

题意:给你一个\(n\times m\)的格子,每个格子里面有一个值\(a_{i,j}\)表示如果要将这个格子变成路的话需要花费这么多代价。现在有\(k\)个特殊格子\((x_1,y_1)..(x_k,y_k)\)。求将这些格子联通的最小代价。

思路:看\(k\)这么小(\(k\leq7\))肯定是状压\(dp\)。那么就要想状态是什么。

首先我们知道如果我们现在有两个特殊点的连通分量\(mask0\)和\(mask1\),并且它们没有交集,如果我们想要将它们合并成同一个联通分量,我们需要找到一个连接点\(P(x,y)\)使得\(mask0\)和\(mask1\)都包含它,那么我们就可以不花费任何代价将这两个合并。但是这样不一定总是最优的。比如我们可能找到了一个点\(P_0(x_1,y_1)\)使得\(mask0\)包含它,而另一个点\(P_1(x_2,y_2)\)使得\(mask1\)包含它,将\(P_0\)和\(P_1\)通过它们的最短路连接起来,相当于加了一条边。这样也是一种转移的方式。

那么状态就是\(dp(P,mask)\)表示必须包含\(P\)这个点和\(mask\)中的特殊点的联通块需要花费的最小代价。转移如上所述。

然后考虑求答案的时候顺着\(dp\)的结果倒推到只有一个的情况,每次将\(P_0\)和\(P_1\)之间的最短路连起来就行辣。

【Codeforces 152E】Garden的更多相关文章

  1. 【codeforces 415D】Mashmokh and ACM(普通dp)

    [codeforces 415D]Mashmokh and ACM 题意:美丽数列定义:对于数列中的每一个i都满足:arr[i+1]%arr[i]==0 输入n,k(1<=n,k<=200 ...

  2. 【27.91%】【codeforces 734E】Anton and Tree

    time limit per test3 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  3. 【codeforces 707E】Garlands

    [题目链接]:http://codeforces.com/contest/707/problem/E [题意] 给你一个n*m的方阵; 里面有k个联通块; 这k个联通块,每个连通块里面都是灯; 给你q ...

  4. 【codeforces 707C】Pythagorean Triples

    [题目链接]:http://codeforces.com/contest/707/problem/C [题意] 给你一个数字n; 问你这个数字是不是某个三角形的一条边; 如果是让你输出另外两条边的大小 ...

  5. 【codeforces 709D】Recover the String

    [题目链接]:http://codeforces.com/problemset/problem/709/D [题意] 给你一个序列; 给出01子列和10子列和00子列以及11子列的个数; 然后让你输出 ...

  6. 【codeforces 709B】Checkpoints

    [题目链接]:http://codeforces.com/contest/709/problem/B [题意] 让你从起点开始走过n-1个点(至少n-1个) 问你最少走多远; [题解] 肯定不多走啊; ...

  7. 【codeforces 709C】Letters Cyclic Shift

    [题目链接]:http://codeforces.com/contest/709/problem/C [题意] 让你改变一个字符串的子集(连续的一段); ->这一段的每个字符的字母都变成之前的一 ...

  8. 【Codeforces 429D】 Tricky Function

    [题目链接] http://codeforces.com/problemset/problem/429/D [算法] 令Si = A1 + A2 + ... + Ai(A的前缀和) 则g(i,j) = ...

  9. 【Codeforces 670C】 Cinema

    [题目链接] http://codeforces.com/contest/670/problem/C [算法] 离散化 [代码] #include<bits/stdc++.h> using ...

随机推荐

  1. DOM.getBoundingClientRect()

  2. python字典按照value进行排序

    先说几个解决的方法,具体的有时间再细说 d = {'a':1,'b':4,'c':2} 字典是这个,然后要对字典按照value进行排序 方法一: sorted(d.items(),key = lamb ...

  3. Python十讲 - 第二讲:变量和基础数据类型

    本讲主要内容 变量 字符串 数字和运算符 数据类型转换 2.1 变量 1. 变量是什么? 变量,是指把程序运行的中间结果临时的存在内存里,以便后续的代码调用,其值可以修改. 在python中,当变量被 ...

  4. Vue遇到的一些小坑

    1.在使用v-html指令时,发现添加的元素不能设置样式 解决方案:在添加样式时使用>>>就可以添加成功 例如:<div v-html="<img src=&q ...

  5. linux上部署engineercms、docker和onlyoffice实现文档协作

    等了好久,这次终于下决心在局域网部署了linux系统,并安装docker和load了onlyoffice,利用engineercms进行资料管理和文档协作. 我整理了完整文档,见我的网盘. engin ...

  6. 国网SGCC_UAP 反编译.class文件源代码

    SGCC_UAP和eclipse操作方式差不多,对于用惯了IDEA和Android Studio的人来说非常不方便,按住Ctrl点击类名不能查看源码. 因为jar包下都是.class文件,所以需要安装 ...

  7. python变量的命名空间

    首先必须要提一下python程序执行过程中变量的查找规则 较官方的查找机制是: 局部作用域--外部函数作用域--全局作用域--内建函数作用域 其实一般内建函数中的作用域很少会涉及到,因为内建函数其实是 ...

  8. (后台)org.apache.catalina.connector.ClientAbortException: null

    比如错误日志是这样的: org.apache.catalina.connector.ClientAbortException: null 那么问题基本上就是服务器准备进行response的时候,发现连 ...

  9. [IDEA] IntelliJ IDEA 安装教程

    原文地址:https://www.cnblogs.com/memento/p/9147477.html 下载地址:https://www.jetbrains.com/idea/ 本文以 64 位的 U ...

  10. 使用NPOI导入导出Excel(xls/xlsx)数据到DataTable中

    using System; using System.Collections.Generic; using System.Text; using System.IO; using NPOI.SS.Us ...