POJ 图论分类 + DP(较全 自己又加了点)

DP

-----------动态规划

状态压缩DP

2411 (棋盘规模较大)状态压缩DP+DFS+滚动数组

2664 (棋盘规模较小)直接递推即可(DP)

2506 (棋盘规模较小)直接递推即可(DP+高精度)

1185 经典状态压缩,炮兵阵地

背包相关问题

3624 01背包

3628 01背包

1837 01背包

2184 dp[i]表示i为s时f的最大值(注意当s的正负不同时循环的方向不同,类似01背包)

1384 完全背包

1742 DP,多重背包

1276 DP,多重背包

3356 LCS

2264 DP(LCS构造解)

1159 DP(回文数+滚动数组)

2955 DP(回文数)

1141 回文数,dp[i][j]表示i,j之间最少的括号添加数,path记录递归情况(可以递归成(A)orA+B两种子问题)

1745 DP

2559 DP(left[i],right[i]表示左右第一个num[i]大的下标,注意输入也要用__int64)

1964 类似最大子矩阵(直接暴力枚举就能过)

3494 同1964(暴力枚举TLE,要用2559的方法过)

2033 递推(注意0的情况)

2704 DP

1992 DP+滚动数组

2385 DP,dp[i][j]表示i时刻移动j次后的可得最大苹果数,移动j次后一定处于第(j%2)+1树下

2738 DP,dp[i][j]表示第i个数到第j个数之间的结果

3014 DP,整数划分

1695 dp[i][j][k]表示第一辆车在i地第二辆车在j地第三辆车在k地的最小值

3230 dp[i][j]表示第i天在城市j的最少费用

2346 dp[i][j]=dp[i-1][j]+dp[i][j-1](j<10)

      dp[i][j]=dp[i-1][j]+dp[i][j-1]-dp[i-1][j-10](j>=10)

1631 二分+DP->最长上升子序列(nlogn的复杂度)

2192 DP

2250 DP

1923 DP(求n条线m个顶点最多可以把平面分成几块)

1126 记忆化DP(备忘录)

2229 简单递推

1952 就最长下降子序列及其条数

2696 简单记忆化DP

 

 

图论

1062* 昂贵的聘礼 枚举等级限制+dijkstra

1087* A Plug for UNIX 2分匹配

1094 Sorting It All Out floyd 或 拓扑

1112* Team Them Up! 2分图染色+DP

1125 Stockbroker Grapevine FLOYD

1135 Domino Effect 最短路

1149* PIGS 网络流

1161* Walls floyd

1201 Intervals 差分约束

1236* Network of Schools 强联通

1251 Jungle Roads MST

1273 Drainage Ditches 最大流

1274 The Perfect Stall 2分匹配

1275* Cashier Employment 差分约束

1325 Machine Schedule 2分匹配(最小点覆盖)

1364 King 差分约束

1422 Air Raid 2分匹配

1459 Power Network 网络流

1466 Girls and Boys 2分图(最大独立团)

1469 COURSES 2分匹配

1502 MPI Maelstrom floyd

1511* Invitation Cards 最短路

1523 SPF tarjan割点

1637* Sightseeing tour 混合图欧拉回路-网络流

1679 The Unique MST 次小生成树

1716 Integer Intervals 差分约束

1724* ROADS 最短路-拆点

1780* Code 欧拉回路

1789 Truck History 最小生成树

1797 Heavy Transportation 最小生成树

1847 Tram 最短路

1904* King's Quest 强联通

1949 Chores 最短路

2060 Taxi Cab Scheme 2分匹配

2075 Tangled in Cables 最小生成树

2112 Optimal Milking 网络流

2125 Destroying The Graph 最小割

2135 Farm Tour 费用流

2139 Six Degrees of Cowvin Bacon floyd

2226 Muddy Fields 2分匹配

2230 Watchcow 欧拉回路

2239 Selecting Courses 2分匹配

2267* From Dusk till Dawn or: Vladimir the Vampire 最短路

2289 Jamie's Contact Groups 网络流

2337 Catenyms 欧拉通路

2349 Arctic Network 最小生成树

2369 Genealogical tree 拓扑序

2387 Til the Cows Come Home 最短路

2391* Ombrophobic Bovines 最大流

2394 Checking an Alibi 最短路

2396* Budget 网络流

2421* Constructing Roads 最小生成树

2446 Chessboard 2分匹配

2455 Secret Milking Machine 网络流

2457 Part Acquisition 最短路

2472 106 miles to Chicago 最短路

2485 Highways 最小生成树

2516 Minimum Cost 费用流

2536 Gopher II 2分匹配

2553* The Bottom of a Graph 强联通

2570 Fiber Network floyd

2584 T-Shirt Gumbo 网络流

2594* Treasure Exploration 2分匹配

2723 Get Luffy Out 2-sat

2724 Purifying Machine 2分匹配

2728 Desert King 最优比例生成树

2749* Building roads 2-sat

2762 Going from u to v or from v to u? 强联通

2949* Word Rings 差分约束

2983 Is the Information Reliable? 差分约束

2987 Firing 最小割(求解正确性??)

3020 Antenna Placement 2分匹配

3041 Asteroids 2分匹配

3072* Robot 最短路

3160 Father Christmas flymouse 强联通

3164 Command Network 最小树形图

3169 Layout 差分约束

3177 Redundant Paths 双联通分量

3189 Steady Cow Assignment 网络流

3204 Ikki's Story I - Road Reconstruction 最大流

3207 Ikki's Story IV - Panda's Trick 2分图

3216 Repairing Company 2分匹配

3228 Gold Transportation 网络流

3255 Roadblocks 最短路

3259 Wormholes 最短路

3268 Silver Cow Party 最短路

3275 Ranking the Cows floyd

3281 Dining 最大流

3308 Paratroopers 最小割

3310 Caterpillar

3311 Hie with the Pie floyd

3328 Cliff Climbing 最短路

3343 Against Mammoths 2分匹配

3352 Road Construction 桥

3439 Server Relocation 最短路

3463 Sightseeing 最短路

3469 Dual Core CPU 最小割(达哥模板)

3487 The Stable Marriage Problem 稳定婚姻

3522 Slim Span 最小生成树

3594 Escort of Dr. Who How 最短路

3615 Cow Hurdles 最短路

3623 Wedding 2-sat

3653 Here We Go(relians) Again 最短路

3659* Cell Phone Network 最小支配集

3660 Cow Contest 拓扑

3662* Telephone Lines 最短路

3678 Katu Puzzle 2-sat

3683* Priest John's Busiest Day 2-sat求解

3687 Labeling Balls 差分约束 或 拓扑

3692 Kindergarten 2分匹配

3694 Network 无向图缩点

 

 

POJ图论分类【转】

  一个很不错的图论分类,非常感谢原版的作者!!!

  这个分类主要是POJ上面的题目,也包括了zoj、sgu、spoj等oj上的题。寒假的时候已经做的差不多了。现在准备写一些文章,来总结寒假时学的东西。

  另外,这个分类依然欠缺了一些知识点,如欧拉回路、图的可平面化等。我也会尽量的补充。

  这将是图论最后的补完。之后我会开始看《具体数学》了。

 

————————————————————————————

POJ图论分类

2009-07-28 23:13

POJ 2449 Remmarguts’ Date(中等)

http://acm.pku.edu.cn/JudgeOnline/problem?id=2449

题意:经典问题:K短路

解法:dijkstra+A*(rec),方法很多

相关:http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1144

该题亦放在搜索推荐题中

POJ 3013 – Big Christmas Tree(基础)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3013

题意:最简单最短路,但此题要过,需要较好的程序速度和,还要注意精度

解法:Dijkstra

POJ 3463 – Sightseeing(中等)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3463

题意:最短路和比最短路大1的路的数量

解法:需要真正理解dijkstra

POJ 3613 – Cow Relays(较难)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3613

题意:求经过N条边的最短路

解法:floyd + 倍增,贪心

POJ 3621 – Sightseeing Cows(中等)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3621

题意:求一个环路,欢乐值 / 总路径最大

解法:参数搜索 + 最短路(ms 原始的bellman tle, 用spfa才过)

POJ 3635 – full tank?(中等)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3635

题意:最短路变形

解法:广搜

相关:http://hi.baidu.com/hnu_reason/blog/item/086e3dccfc8cb21600e9286b.html

生成树问题

基本的生成树就不放上来了

POJ 1639 – Picnic Planning(较难)

http://acm.pku.edu.cn/JudgeOnline/problem?id=1639

题意:顶点度数有限制的最小生成树

解法:贪心 + prim/kruskal

POJ 1679 – The Unique MST(基础)

http://acm.pku.edu.cn/JudgeOnline/problem?id=1679

题意:判断MST是否唯一

解法:prim就行,不过还是易错的题

POJ 2728 – Desert King(中等)

http://acm.pku.edu.cn/JudgeOnline/problem?id=2728

题意:所谓最优比率生成树

解法:参数搜索 + prim

POJ 3164 – Command Network(难)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3164

题意:最小树形图

解法:刘朱算法,这个考到的可能性比较小吧?

POJ 3522 – Slim Span(基础)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3522

题意:求一颗生成树,让最大边最小边差值最小

解法:kruskal活用

连通性,度数,拓扑问题

此类问题主要牵扯到DFS,缩点等技巧

POJ 1236 – Network of Schools(基础)

http://acm.pku.edu.cn/JudgeOnline/problem?id=1236

题意:问添加多少边可成为完全连通图

解法:缩点,看度数

POJ 1659 – Frogs’ Neighborhood(基础)

http://acm.pku.edu.cn/JudgeOnline/problem?id=1659

题意:根据度序列构造图

解法:贪心,详细证明参见havel定理

POJ 2553 – The Bottom of a Graph(基础)

http://acm.pku.edu.cn/JudgeOnline/problem?id=2553

POJ 2186 – Popular Cows(基础)

http://acm.pku.edu.cn/JudgeOnline/problem?id=2186

题意:强连通分量缩点图出度为0的点

POJ 2762 – Going from u to v or from v to u?(中等)

http://acm.pku.edu.cn/JudgeOnline/problem?id=2762

题意:单向连通图判定

解法:缩点 + dp找最长链

POJ 2914 – Minimum Cut(难)

http://acm.pku.edu.cn/JudgeOnline/problem?id=2914

题意:无向图最小割

解法:Stoer-Wagner算法,用网络流加枚举判定会挂

POJ 2942 – Knights of the Round Table(难)

http://acm.pku.edu.cn/JudgeOnline/problem?id=2942

题意:求双联通分量(或称块)中是否含奇圈

解法:求出双连通分量后做黑白染色进行二分图图判定

相关:http://hi.baidu.com/zfy0701/blog/item/57ada7ed104ce9d2b31cb104.html

POJ 3177 – Redundant Paths(中等)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3177

POJ 3352 – Road Construction(中等)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3352

题意:添加多少条边可成为双向连通图

解法:把割边分开的不同分量缩点构树,看入度

建议对比下1236,有向图添加多少条边变成强连通图

POJ 3249 – Test for Job(基础)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3249

解法:bfs / dfs + dp

POJ 3592 – Instantaneous Transference(基础)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3592

解法:缩点,最长路,少人做的水题,注意细节

POJ 3687 – Labeling Balls(中等)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3687

解法:拓扑排序

POJ 3694 – Network(中等)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3694

解法:双连通分量+并查集

2-SAT问题

此类问题理解合取式的含义就不难

POJ 2723 – Get Luffy Out(中等)

http://acm.pku.edu.cn/JudgeOnline/problem?id=2723

POJ 2749 – Building roads(较难)

http://acm.pku.edu.cn/JudgeOnline/problem?id=2749

解法:二分 + 2-SAT判定

POJ 3207 – Ikki’s Story IV – Panda’s Trick(基础)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3207

解法:简单的2-sat,不过其他方法更快

POJ 3648- Wedding(中等)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3648

解法:用2-sat做会比较有意思,但是暴搜照样0ms

POJ 3678 – Katu Puzzle(基础)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3678

解法:直接按合取式构图验证就行了

POJ 3683 – Priest John’s Busiest Day(中等)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3683

解法:n^2枚举点之间的相容性构图,求解2-SAT

最大流问题

变形很多,最小割最大流定理的理解是关键

POJ 1149 – PIGS(较难)

http://acm.pku.edu.cn/JudgeOnline/problem?id=1149

绝对经典的构图题

POJ 1273 – Drainage Ditches(基础)

http://acm.pku.edu.cn/JudgeOnline/problem?id=1273

最大流入门

POJ 1459 – Power Network(基础)

http://acm.pku.edu.cn/JudgeOnline/problem?id=1459

基本构图

POJ 1637 – Sightseeing tour(Crazy)

http://acm.pku.edu.cn/JudgeOnline/problem?id=1637

题意:求混合图的欧拉迹是否存在

解法:无向边任意定向,构图,详建黑书P324

POJ 1815 – Friendship(中等)

http://acm.pku.edu.cn/JudgeOnline/problem?id=1815

题意:求最小点割

解法:拆点转换为边割

相关:http://hi.baidu.com/zfy0701/blog/item/a521f230b06dea9fa9018e0e.html

POJ 1966 – Cable TV Network(中等)

http://acm.pku.edu.cn/JudgeOnline/problem?id=1966

题意:去掉多少点让图不连通

解法:任定一源点,枚举汇点求点割集(转换到求边割),求其中最小的点割

POJ 2112 – Optimal Milking(基础)

http://acm.pku.edu.cn/JudgeOnline/problem?id=2112

二分枚举,最大流

POJ 2391 – Ombrophobic Bovines(中等)

http://acm.pku.edu.cn/JudgeOnline/problem?id=2391

题意:floyd, 拆点,二分枚举

相关:http://hi.baidu.com/zfy0701/blog/item/3e0006c4f73f0eaf8226acff.html

POJ 2396 – Budget(中等)

http://acm.pku.edu.cn/JudgeOnline/problem?id=2396

题意:有源汇的上下界可行流

解法:用矩阵-网络流模型构图,然后拆边

相关:http://hi.baidu.com/zfy0701/blog/item/6449d82a64e15e3e5343c1ba.html

,最小割模型在竞赛中的应用

POJ 2455 – Secret Milking Machine(基础)

http://acm.pku.edu.cn/JudgeOnline/problem?id=2455

二分枚举,一般来说需要写对边容量的更新操作而不是每次全部重新构图

POJ 2699 – The Maximum Number of Strong Kings(较难)

http://acm.pku.edu.cn/JudgeOnline/problem?id=2699

解法:枚举人数 + 最大流(感谢xpcnq_71大牛的建图的提示)

POJ 2987 – Firing(较难)

http://acm.pku.edu.cn/JudgeOnline/problem?id=2987

题意:最大权闭包

解法:先边权放大,第一问总量-最大流,第二问求最小割

相关:http://wywcgs.spaces.live.com/blog/cns!4D861A02A3382142!1109.entry?&_c02_owner=1

Profit(中等)

http://www.vijos.cn/Problem_Show.asp?id=1352

最大权闭包图的特殊情况

ZOJ 2071 – Technology Trader 也是此类型,懒了没做

http://acm.zju.edu.cn/show_problem.php?pid=2071

POJ 3084 – Panic Room(中等,好题)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3084

题意:略

解法:根据最小割建模

POJ 3155 – Hard Life(很挑战一题)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3155

题意:最大密度子图

解法:参数搜索 + 最大权闭合图,A.V.Goldberg的论文(nb解法)

最小割模型在信息学竞赛中的应用 一文中也有讲

POJ 3189 – Steady Cow Assignment(中等)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3189

题意:寻找最小的区间完成匹配

解法:这题充分说明SAP的强大,纯暴力可过。更好的方法是在枚举区间的过程中不断删边和加边继续网络流过程

POJ 3204 – Ikki’s Story I – Road Reconstruction(基础)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3204

ZOJ 2532 – Internship(基础)

http://acm.zju.edu.cn/show_problem.php?pid=2532

题意:确定边是否是某个割中的边

解法:两边dfs求割, 或暴力枚举(需要写取消某条增广路的操作(但数据弱,也许不取消也能混过))

POJ 3308 – Paratroopers(较难)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3308

POJ 2125 – Destroying The Graph(难)

http://acm.pku.edu.cn/JudgeOnline/problem?id=2125

题意:最小点权覆盖

POJ 3469 – Dual Core CPU(中等)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3469

题意:最小割

POJ 3498 – March of the Penguins(中等)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3498

题意:满足点容量限制的网络流

解法:拆点把点容量转换为边容量,枚举汇点

ZOJ 2587 – Unique Attack(较难)

http://acm.zju.edu.cn/show_problem.php?pid=2587

题意:确定最小割是否是唯一的

解法:得理解dfs求最小割算法的本质

SPOJ 839 – Optimal Marks(难)

http://www.spoj.pl/problems/OPTM/

题意:略

解法:很经典哦,见amber的集训队论文,根据标号的每一位求最小割

SGU 326 – Perspective(中等)

http://acm.sgu.ru/problem.php?c0&problem=326

比较经典的构图法

费用流问题

可以KM解的就不放在这里,另外,感觉除非很特殊的图,一般用连续增广路的算法就够了

POJ 2175 – Evacuation Plan(中等)

http://acm.pku.edu.cn/JudgeOnline/problem?id=2175

题意:判断是否给定解是最优解,比较阴的一题

解法:根据给出的计划构造流,然后消且只消一次负圈

POJ 3422 – Kaka’s Matrix Travels(中等)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3422

题意:略

解法:拆点

POJ 3680 – Intervals(较难)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3680

题意:略,这题还是蛮经典

解法:discuss中比较详细

SPOJ 371 – Boxes(简单)

http://www.spoj.pl/problems/BOXES/

题意:略

解法:费用流,但似乎有比网络流更好的做法

SGU 185 – Two shortest(中等)

http://acm.sgu.ru/problem.php?c0&problem=185

题意:求两条不想交的最短路径

解法:费用流,也可以最短路 + 最大流。

匹配问题

正确理解KM算法是很重要的

这里我还要说几句:最正确解最小权匹配的办法是用一个很大的数-当前边权值,而不是直接对边权取反(这样只能处理左右点相等的完全二分图,即K(n, n)

以上有可能还是说的有点问题,以后补充

POJ 1486 – Sorting Slides(中等)

http://acm.pku.edu.cn/JudgeOnline/problem?id=1486

题意:二分图的必须边

解法:需正真理解最大匹配算法,详见http://hi.baidu.com/kevin0602/blog/item/1d5be63b5bec9bec14cecb44.html

POJ 1904 – King’s Quest(中等,好题)

http://acm.pku.edu.cn/JudgeOnline/problem?id=1904

题意:求二分图所有可能的匹配边

解法:虽然最终不是用匹配算法,但需要理解匹配的思想转换成强连通分量问题。

POJ 2060 -Taxi Cab Scheme(基础)

http://acm.pku.edu.cn/JudgeOnline/problem?id=2060

题意:最小路径覆盖

POJ 2594 -Treasure Exploration(中等)

http://acm.pku.edu.cn/JudgeOnline/problem?id=2594

题意:可相交最小路径覆盖

解法:先传递闭包转化下

POJ 3041 – Asteroids(基础)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3041

POJ 2226 – Muddy Fields(基础)

http://acm.pku.edu.cn/JudgeOnline/problem?id=2226

题意:行列的覆盖

解法:最小点集覆盖 = 最大匹配

POJ 2195 – Going Home(基础)

http://acm.pku.edu.cn/JudgeOnline/problem?id=2195

题意:最小权值匹配

解法:KM算法

POJ 2400 – Supervisor, Supervisee(中等)

http://acm.pku.edu.cn/JudgeOnline/problem?id=2400

题意:输出所有最小权匹配

解法:KM, 然后回溯解,汗,输入的两个矩阵居然是反过来的

POJ 2516 -Minimum Cost(中等)

http://acm.pku.edu.cn/JudgeOnline/problem?id=2516

题意:最小权值匹配或最小费用流

解法:拆点 + KM算法(只有正确的才能过),费用流(ms错的可能也能过)

POJ 3686 – The Windy’s(较难)

http://acm.pku.edu.cn/JudgeOnline/problem?id=3686

题意:最小权值匹配

解法:拆点,然后尽管用KM算法去水吧,数据其实弱得不得了 O(50 * 50 * 2500) -> 16ms

相关:http://hi.baidu.com/kevin0602/blog/item/2829dc01d7143b087bec2c97.html

SPOJ 412 – K-path cover(较难)

https://www.spoj.pl/problems/COVER/

题意:略

解法:很牛叉的一道匹配

相关:http://hi.baidu.com/roba/blog/item/c842fdfac10d24dcb48f31d7.html

SGU 206. Roads(较难)

http://acm.sgu.ru/problem.php?c0&problem=206

解法:经典题目,也可以使用spoj 412那题的优化

NP问题

一般是搜索或dp解的

POJ 1419 – Graph Coloring(基础)

http://acm.pku.edu.cn/JudgeOnline/problem?id=1419

题意:图的着色

解法:搜索,可惜题目的数据真是太弱了

POJ 2989 – All Friends(难)

http://acm.pku.edu.cn/JudgeOnline/problem?id=2989

题意:极大团数量

解法:开始狂tle, 后来找了论文:Finding All Cliques of an Undirected Graph(Coen Bron & Joep Kerboscht)

ZOJ 1492 – Maximum Clique(基础)

http://acm.zju.edu.cn/show_problem.php?pid=1492

题意:图的最大团

解法:搜索,如果要求速度,可参考下相应论文

其他

不能成大类的

POJ 1470 – Closest Common Ancestors(基础)

http://acm.pku.edu.cn/JudgeOnline/problem?id=1470

题意:LCA问题

解法:tarjan或RMQ,另外输入很恶心

POJ 1985 – Cow Marathon(基础)

http://acm.pku.edu.cn/JudgeOnline/problem?id=1985

题意:树上的最长路径

解法:dp

POJ 1986 – Distance Queries(中等)

http://acm.pku.edu.cn/JudgeOnline/problem?id=1986

题意:LCA

解法:tarjan或RMQ

你可能感兴趣的:(ACM周边)