描述:给定一个网格图,每个区间可能会有城市,求在边上建墙使无法从外边到达所有城市切所有城市必须联通 n,m<=400

首先对于30%的数据,n,m<=10我们可以考虑用数位dp来解决这个问题

考虑用射线法,如果一个点被包括的话,那么向上做一条射线,我们可以发现如果被包含的话该射线得与奇数条边相交,就可以愉快的用数位dp搞了

正解的话,我们可以先做出从1,1到其他城市的左上角的最短路,可以证明这些最短路必须被包含在这个区间上的

然后我们考虑如何让答案不越过这些最短路(也就是包含这些最短路)

有两种做法(本质上好像一样的应该是的):

1(题解做法):把每个点拆成4个小点,将于把最短路以及所有包含村庄的边经过的点封掉后跑一次最短路即可(如图所示)

别吐槽我的图,毕竟是这个博客的第一张图= =

2(lyy的神做法):把每个点拆成9点,然后把最短路以及所有包含村庄的边的两个端点的中心连线经过的点去掉后跑一次最短路即可(如图所示)

可以跟道路一样理解,如果你不想让人通过横过马路,就得建起一条隔离栏,人们就无法过去但还是能沿着隔离栏行走

还有上面那个结论的证明:

首先是若存在某种选择不包含最短路径,那么我们一定可以把某条边换成最短路径试答案更小(从题解扒了张图)

如图所示,灰色区间是某种选择,绿色边是最短路,那么我们可以考虑多包括那个黄色区间,答案不会更差

第一次写的这么详细= =

考试的时候是想到这方面了,不过想到的是最小生成树,今后还是要多加证明以及多打程序验证(很多东西都是自己想到了但就是没有用实际的去证明结果没打出来= =)还是得认真一点啊

CEOI 2014 wall (最短路)的更多相关文章

  1. [UOJ 25] [IOI 2014] Wall 【线段树】

    题目链接:UOJ - 25 题目分析 每个操作就是将被操作的数限制在一个区间,比如 Set_Max(5) 就是将被操作的数限定在了 [5, INF] 的区间里. 这些操作是可加的,但是必须按照顺序,不 ...

  2. hdu 5137(2014广州—最短路)

    题意:给你一个图,求删除一个点后使1->n的距离最大 思路: 枚举删除点,然后求最短路,取这些最短路的最大值 #include <iostream> #include <cst ...

  3. BZOJ3642 : [CEOI 2014] Cake

    rank[i]表示第i美味的是哪块 left[i]表示在k左边美味度为i的是哪块 right[i]表示在k右边美味度为i的是哪块 用3棵线段树分别维护d序列的区间最大值.left序列的区间最大值.ri ...

  4. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  5. 【题解】LOJ2759. 「JOI 2014 Final」飞天鼠(最短路)

    [题解]LOJ2759. 「JOI 2014 Final」飞天鼠(最短路) 考虑最终答案的构成,一定是由很多飞行+一些上升+一些下降构成. 由于在任何一个点上升或者下降代价是一样的,所以: 对于上升操 ...

  6. 计蒜客 28202. Failing Components-最短路(Dijkstra) (BAPC 2014 Preliminary ACM-ICPC Asia Training League 暑假第一阶段第一场 B)

    B. Failing Components 传送门 题意就是单向图,从起点开始找最短路,然后统计一下个数就可以.方向是从b到a,权值为s. 直接最短路跑迪杰斯特拉,一开始用数组版的没过,换了一个队列版 ...

  7. NOIp 2014 寻找道路【图的遍历/最短路】By cellur925

    题目传送门 比较裸的图论,结果自己还是没做出来,我真菜. 我们根据题意,只要把不能通向终点的点求出,然后再分别以这些点为起点,求出它们能到达的点,这些点也不能在路径上. 之后跑一个最短路即可. 注意以 ...

  8. hdu 5137 去掉一个点 使得最短路最大(2014广州现场赛 K题)

    题意:从2~n-1这几个点中任意去掉一个点,使得从1到n的最短路径最大,如果任意去掉一个点1~n无通路输出Inf. Sample Input4 51 2 31 3 71 4 502 3 43 4 23 ...

  9. BAT及各大互联网公司2014前端笔试面试题--JavaScript篇

    很多面试题是我自己面试BAT亲身经历碰到的.整理分享出来希望更多的前端er共同进步吧,不仅适用于求职者,对于巩固复习js更是大有裨益. 而更多的题目是我一路以来收集的,也有往年的,答案不确保一定正确, ...

随机推荐

  1. 012-ViewState状态保持

    客户端的状态保持方案:ViewState.隐藏域.Cookies.控件状态.URL查询参数服务端的状态保持方案:Session(会话).Application.Caching(缓存).DataBase ...

  2. MyEclipse 修改项目字符集

    项目->右键+properties->Resource->Text file container->others->utf-8

  3. JavaScript定时机制、以及浏览器渲染机制 浅谈

    昨晚,朋友拿了一道题问我: a.onclick = function(){ setTimeout(function() { //do something ... },0); }; JavaScript ...

  4. 遗传算法GA

    遗传算法(Genetic Algorithms,GA)是一种全局优化方法,它借用了生物遗传学的观点,通过自然选择.遗传.变异等作用机制,实现种群中个体适应性的提高,体现了自然界中“物竞天择.适者生存” ...

  5. delphi 获得memo,Richedit焦点所在行

    procedure TForm1.Button1Click(Sender: TObject); var i:Integer; begin i:=SendMessage(Richedit1.handle ...

  6. jquery动态加载 去除js

    !-- 这里为你提供了三种动态加载js的jquery实例代码哦,由于jquery是为用户提供方便的,所以利用jquery动态加载文件只要一句话$.getscript("test.js&quo ...

  7. js判断浏览器在PC中打开还是移动设备中打开

    var browser = {                            versions: function () {                                va ...

  8. jQuery 学习总结(上)

    第二章:基础选择器 第三章:过滤性选择器 第四章:表单选择器 第五章:jQuery  操作DOM 第六章:jQuery 事件与应用 第七章:jQuery 实现ajax应用

  9. 快速排序时间复杂度为O(n×log(n))的证明

    快速排序时间复杂度为O(n×log(n))的证明 之前只知道快速排序的平均时间复杂度为O(n×log(n)),最糟糕时复杂度为O(n^2),但却不知道具体原因,今天好好证明一下,最后部分摘自<算 ...

  10. java实现简单的单点登录_转

    摘要:单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统当中.本文从业务的角度分析了单点登录的需求和应用领域:从技术本身的角度分析了单点登录技术的内部机制和实现手段,并且给出Web-SSO ...