蓝书图论题

1.uva 10765(写)

2.uva 11294(写)

2-sat输出方案

3.la 3514(写)

关键在于判断仙人掌

之后就是在环上的边个数+1都乘起来就好了

4.uva 10972(写)

经典题目,把边双联通搞出来之后

就是把度为1的点之间连边

5.uva 10603(写)

直接dij就可以了(网上都说是优先队列+bfs其实就是dij啦)

6.uva 11367(写)

f[i][j]在i处有j的油

dij跑就可以了

但我感觉复杂度应该是跑不过去的啊。。。(可能是一些点并没有用到)

最短路跑到这一次用n去更新其他点就可以了

7.la 3887 uva 10600 这两个是最小生成树裸题没什么好说的

8.uva 11183 最小有向生成树

9.uva 10816

感觉这个其实可以改一改来卡掉暴力的二分

首先这个比较容易想到的做法应该是二分问题,然后跑最短路

比较不暴力的就是求出最小生成树然后求最小瓶颈路计算出最高温度

然后把<=最高温度的边都加入跑最短路

由于都要跑最短路,所以方法2就比方法1快了log

但如果只要求最温度的话,方法2每次询问是O(1),预处理是O(n^2)的(或者O(logn)-O(nlogn))

而方法1是nlogn-0的

但是我们可以离线

然后整体二分

这样就是(q+n)logn了

10.la 3353

二分图匹配裸题

拆点 入点,出点 然后跑最大流就可以了

11.uva 10615(问)

比较容易yy的是答案是行和列中车子的最大值

但是匹配就比较困难了

我们利用二分图来匹配

对于i,j 这个点从左边的i向右边的j连边

然后同一次最大流跑出的点一定是可以颜色相同的

我不是很懂为什么要补全图。。。

12.la 4288(hdu 2768)

看错题意想了好久啊。。。

我以为题目限制了养猫狗的个数。。

然后就gg了 直接pass掉了以人作为点的想法

没有这个限制还是很简单的

我们把矛盾的人之间连边,问题变成了最大独立集

注意到这张图是个二分图,所以就等于n-最大流

posted @ 2018-09-27 21:55  尹吴潇  阅读(141)  评论(0编辑  收藏  举报