这个题我大概永远都不会出出来了所以我就把它写在博客里吧
如果有人没题出可以拿走坑害同学

题目大意:给定一个长度为n(n≤400)n(n\leq 400)的0101序列,每次你可以选择一个区间[l,r][l,r],将[l,r][l,r]区间翻转(即,00变成11,11变成00),并支付al,ra_{l,r}的代价。现在给定所有的al,ra_{l,r},求将整个序列变为00的最小代价

题目来源:JOI201X cards

问题转化

首先把序列差分一下,每个值异或一下后面,然后区间翻转就变成了翻转两个点

然后我们就可以建出一张无向图,每个区间变成连接两个点的一条边,边权为这个区间的翻转代价

我们令所有1为关键节点,那么显然关键节点有偶数个,不妨设为kk。

我们选的区间要让所有关键节点被翻转奇数次,所有非关键节点被翻转偶数次。

问题转化成了,给出一张无向图,求这个无向图的边权和最小的生成子图,使得所有kk个关键点度数为奇数,所有非关键点度数为偶数。

问题求解:

我们来证明:最优解的生成子图一定可以表示成k/2k/2条最短路的和

显然这个生成子图里一定没有环,因此它是一座森林。任选一棵树,随便选两个叶节点xx和yy,将xx到yy在树上的路径从树上扒下来,变成xx到yy的最短路,答案不会变大。剩下的部分还是一个森林,我们一条一条扒下去,最后就会得到k/2k/2条最短路。证毕。

然后做法就是,先用FloydFloyd算法跑出任意两点间的最短路,然后带花树跑出最小权匹配,结束

时间复杂度O(n3)O(n^3)

本来想要出这个题的结果带花树太难写找不到地方出题,最后把这个题连算法一通打包丢给TKD让他去出51nod了……结果是啥我自然不知道了

然后我上了大学,学完了中国邮路之后,原来这个IDEA二十万年前就有了啊。。。

无向图中国邮路问题:给定一张带权无向连通图,求从起点出发经过每条边至少一次并回到原点的最短路径

问题等价于让某些边一条变多条使得图存在欧拉回路,而欧拉回路在连通图上存在的充要条件是每个点度数为偶数。于是中国邮路的边减掉原图的边,得到的就是原图的一个生成子图,使得所有原图的奇度点的度数为奇数,原图的偶度点的度数为偶数……

行了,Floyd+带花树可以上了,时间复杂度O(n3)O(n^3)

顺带一提,有向图上怎么做?

有向图上好做多了……

无向图是因为所有奇度点都一样所以必须上带花树这种大杀器,而有向图哪些点该加入度哪些点该加出度是知道的,费用流直接上就行了……

时间复杂度O(O(费用流)<script type="math/tex" id="MathJax-Element-52">)</script>

Cards Ext与中国邮路问题相关推荐

  1. 中国邮路问题编程求解

    中国邮路问题(Chinese Postman Problem)是一个非常经典的图论问题:一个邮递员送信,要走完他负责投递的全部街道(所有街道都是双向通行的且每条街道可以经过不止一次),完成任务后回到邮 ...

  2. Chinese Postman Problem Aizu - DPL_2_B(无向图中国邮路问题)

    题意: 带权无向图上的中国邮路问题:一名邮递员需要经过每条边至少一次,最后回到出发点,一条边多次经过权值要累加,问最小总权值是多少.(2 <= N <= 15, 1 <= M < ...

  3. The Chinese Postman Problem HIT - 2739(有向图中国邮路问题)

    无向图的问题,如果每个点的度数为偶数,则就是欧拉回路,而对于一个点只有两种情况,奇数和偶数,那么就把都为奇数的一对点  连一条  边权为原图中这两点最短路的值  的边  是不是就好了 无向图中国邮路问 ...

  4. HOJ 2739 The Chinese Postman Problem 带权有向图上的中国邮路问题

    [题目大意]  带权有向图上的中国邮路问题:一名邮递员需要经过每条有向边至少一次,最后回到出发点,一条边多次经过权值要累加,问最小总权值是多少.(2 <= N <= 100, 1 < ...

  5. HOJ 2739 网络流【带权有向图上的中国邮路问题】

    [带权有向图上的中国邮路问题] #include<cstring> #include<cstdio> #include<algorithm> #include< ...

  6. 中国邮路问题的解决(数据结构课程设计)

    题目描述: 邮递员的工作是每天在邮局里选出邮件,然后送到他所管辖的客户中,再返回邮局.自然地,若他要完成当天的投递任务,则他必须要走过他所投递邮件的每一条街道至少一次.问怎样的走法使他的投递总行程为最 ...

  7. 数据结构——中国邮路问题

    研究契机 本学期学校开设数据结构课程,研究了一下中国邮路问题,以供自己复习参考. 中国邮路问题 中国邮路问题是中国学者于20世纪50年代提出的一种典型的组合优化问题,后在国际上被称为中国邮路问题(Ch ...

  8. 中国邮路问题邮递员问题欧拉路径图论C++

    下载链接:https://download.csdn.net/download/RONNIE_Zz/13094843 通路:在无向图中由点边交替组成的序列就是通路(如果这个图是简单的,那么也可以使用点 ...

  9. 中国邮路代码实现(纯粹的暴力)

    本代码!!!!纯粹的暴力!!!!复杂度--反正很高--不适用于大数据!!!! 样例1(欧拉图): 7 10 1 2 4 1 3 1 1 4 3 1 7 4 2 4 5 3 4 3 4 7 2 5 6 ...

最新文章

  1. P1197 [JSOI2008]星球大战
  2. 批量关闭公众号推送_微信内测新功能:提醒用户可停止接收长期不阅读公众号推送...
  3. RHEL5.3下手动创建用户
  4. input 单选框ajax提交,input radio单选框绑定change事件
  5. 重磅!李宏毅教授机器学习训练营
  6. 如何在 C# 循环中捕获局部变量?
  7. 普大喜奔 | Azure 免费送网站SSL证书啦!
  8. 初级前端工程师笔试技巧总结,祝你顺利拿高分
  9. Jquery制作另一个炫丽广告栏-(VS2010版本)
  10. SpringBoot+Vue.js实现大文件分片上传、断点续传与极速秒传
  11. Java基础---Java---IO流-----LineNumberReader方法及原理、自定义一个LineNumberReader、字节流、图片复制、mp3复制、
  12. VJC案例-风扇定时
  13. CCS软件安装教程(超级详细)
  14. 二叉树非递归遍历(先序、中序、后序)(C++)
  15. web前端如何才能成为架构师
  16. rsync与cwRsync
  17. hash和history路由的区别
  18. LuoguP2123 皇后游戏
  19. 75岁母亲被6个子女遗弃身亡,“凶手”一句话惹怒全网:当你老了,真相比想象中更残忍
  20. 关于Catalan(卡特兰)数的理解

热门文章

  1. 笔记本使用小技巧两则
  2. 实战Quartz的Scheduler
  3. 微信小程序-多行文本省略号并展示查看更多按钮
  4. 解决win7的远程桌面无法保存凭证,提示“未完全验证其标识”
  5. vol.160 理财课:我们一定对“卖保险的”有啥误解
  6. 干洗店软件,洗衣洗鞋线上下单小程序开发
  7. 损坏音频修复_如何修复损坏或损坏的音频电缆
  8. js 余数 取_js取整数、取余数的方法
  9. Win7下快速搭建hadoopEclipse运行环境--方案
  10. wps下载 如何用WPS文字制作一份简易的菜谱