一名苦逼的OIer,想成为ACMer

Iowa_Battleship

随笔分类 -  图论

上一页 1 2 3 4 下一页

CH6901 骑士放置
摘要:"原题链接" 和棋盘覆盖( "题解" )差不多.。 同样对格子染色,显然日字的对角格子是不同色,直接在对应节点连边,然后就是二分图最大独立集问题。 cpp include include using namespace std; const int N = 1e4 + 10; const int M 阅读全文

posted @ 2018-09-15 07:35 Iowa_Battleship 阅读(205) 评论(0) 推荐(0) 编辑

POJ2226 Muddy Fields
摘要:"原题链接" 因为每一块泥地要么被横着的木板盖住,要么被竖着的木板盖住,所以可以转换为二分图最小点覆盖问题。 我们可以先标记出所有连续的行泥地和连续的列泥地。 比如对于原题中的样例,标记后是这样的: 行连续泥地:$\begin{pmatrix}1 & 0 & 2 & 0 \\ 0 & 3 & 3 & 阅读全文

posted @ 2018-09-14 16:32 Iowa_Battleship 阅读(85) 评论(0) 推荐(0) 编辑

POJ1325 Machine Schedule
摘要:"原题链接" 对于每个任务,要么选$A$机器的模式,要么选$B$机器的模式,由此想到二分图最小点覆盖。 所以我们可以将任务作为边,将对应的$A$机器模式和$B$机器模式连起来,然后直接求最小覆盖即可。 注意,本题模式从$0$开始编号,而且机器初始是在$0$模式,所以在连边时要忽略含$0$模式的任务。 阅读全文

posted @ 2018-09-14 12:50 Iowa_Battleship 阅读(78) 评论(0) 推荐(0) 编辑

POJ3565 Ants
摘要:"原题链接" 要求所有线段不相交,实际上满足每条线段的长度和最小。 所以我们可以让蚁窝和苹果树连边,边权为两点的距离,然后就是求二分图带权最小匹配了,可以上$KM$算法或是费用流。 这里我使用的是费用流。 阅读全文

posted @ 2018-09-14 12:21 Iowa_Battleship 阅读(82) 评论(0) 推荐(0) 编辑

JoyOI1935 导弹防御塔
摘要:"原题链接" 首先可以二分答案,然后考虑检验答案。 我们可以对炮塔进行拆点,即能发射$x$颗导弹就拆成$n\times x$个点,作为一个集合,另一个集合则是$m$个侵入者,然后对于能在剩余时间攻击到侵入者的炮弹和该侵入者连边,然后跑匈牙利或网络流求二分图最大匹配即可(本质是多重匹配,使用拆点法)。 阅读全文

posted @ 2018-09-13 19:44 Iowa_Battleship 阅读(173) 评论(0) 推荐(0) 编辑

CH6802 車的放置
摘要:"原题链接" 和棋盘覆盖( "题解" )差不多。 将行和列看成$n+m$个节点,且分属两个集合,如果某个节点没有被禁止,则行坐标对应节点向列坐标对应节点连边,然后就是求二分图最大匹配了。 cpp include include using namespace std; const int N = 4 阅读全文

posted @ 2018-09-13 14:26 Iowa_Battleship 阅读(164) 评论(0) 推荐(0) 编辑

JoyOI1035 棋盘覆盖
摘要:"原题链接" 对棋盘染色,坐标和为奇数的染黑,偶数为白。这时会发现对于相同颜色的格子,是无法放置骨牌的,这样我们就将所有格子分成两类,然后根据能否放置骨牌连边,最后就是求二分图最大匹配了。 这里我是用的匈牙利算法。 cpp include include using namespace std; c 阅读全文

posted @ 2018-09-13 13:48 Iowa_Battleship 阅读(200) 评论(0) 推荐(0) 编辑

POJ3683 Priest John's Busiest Day
摘要:"原题链接" $2 SAT$模板题。 对于有时间重叠的婚礼转换成$2 SAT$的命题形式连边,用$tarjan$找强连通分量并判断,确定方案即可。 然而一道模板题,我因为数组开小了调了一晚上。。。 阅读全文

posted @ 2018-09-12 21:13 Iowa_Battleship 阅读(111) 评论(0) 推荐(0) 编辑

POJ3678 Katu Puzzle
摘要:"原题链接" $2 SAT$模板题。 将$AND,OR,XOR$转换成$2 SAT$的命题形式连边,用$tarjan$求强连通分量并检验即可。 cpp include using namespace std; const int N = 2010; const int M = 4e6 + 10; i 阅读全文

posted @ 2018-09-12 13:28 Iowa_Battleship 阅读(131) 评论(0) 推荐(0) 编辑

洛谷4782 【模板】2-SAT 问题
摘要:"原题链接" $2 SAT$模板 阅读全文

posted @ 2018-09-12 12:59 Iowa_Battleship 阅读(115) 评论(0) 推荐(0) 编辑

BZOJ2330或洛谷3275 [SCOI2011]糖果
摘要:"BZOJ原题链接" "洛谷原题链接" 很明显的差分约束,但数据范围较大,朴素$SPFA$判正环求解会$T$(理论上如此,但我看到有挺多人用朴素的还跑得挺快。。),所以需要优化。 我们所建立的有向图中所有边的权值只有$0$或$1$,而且若图中有环,那么环上所有边的权值必须为$0$,否则无解。 所以我 阅读全文

posted @ 2018-09-12 11:20 Iowa_Battleship 阅读(165) 评论(0) 推荐(0) 编辑

POJ1236或洛谷2746或洛谷2812 Network of Schools
摘要:"POJ原题链接" "洛谷2746原题链接" "洛谷2812(加强版)原题链接" 显然在强连通分量里的所有学校都能通过网络得到软件,所以我们可以用$tarjan$求出强连通分量并缩点,统计缩点后每个点的入度和出度。 对于第一问,因为所有零入度的点无法通过网络得到软件,所以答案就是零入度的点的数量。 阅读全文

posted @ 2018-09-11 20:07 Iowa_Battleship 阅读(99) 评论(0) 推荐(0) 编辑

POJ2230 Watchcow
摘要:"原题链接" 类欧拉回路,要求每条边被正反各经过一次,且从$1$出发并回到$1$。 只需每次搜索该点的边时,将该点的边对应的邻接表头及时修改为下一条即可,因为邻接表恰好储存了正反方向的边,所以及时更新表头就能保证每条边被正反各经过一次。 cpp include using namespace std 阅读全文

posted @ 2018-09-11 14:33 Iowa_Battleship 阅读(89) 评论(0) 推荐(0) 编辑

POJ2942 Knights of the Round Table
摘要:"原题链接" 建补图,这样题目要求的即是求有多少个点没有被任何奇环包含。 这里有两个结论: 1. 若两个骑士属于两个不同的$v DCC$,那么这两个骑士肯定不能一起出席会议。 2. 若在某个$v DCC$中,存在一个奇环,那么该点双连通分量中所有点都被至少一个奇环包含。 所以,我们只需要在用$tar 阅读全文

posted @ 2018-09-11 14:03 Iowa_Battleship 阅读(123) 评论(0) 推荐(0) 编辑

POJ3694 Network
摘要:"原题链接" 先用$tarjan$找出所有$e DCC$,并进行缩点,这时桥的数量即是缩点后树的边数。 然后对于每一个添边$(x,y)$的操作,如果$x,y$属于同一个$e DCC$,那么桥的数量不变。 如果分别属于两个$e DCC$,那么从$x$所在的$e DCC$(设为$e[x]$)到$y$所在 阅读全文

posted @ 2018-09-11 11:31 Iowa_Battleship 阅读(115) 评论(0) 推荐(0) 编辑

BZOJ1123或洛谷3469 [POI2008]BLO-Blockade
摘要:"BZOJ原题链接" "洛谷原题链接" 若第$i$个点不是割点,那么只有这个点单独形成一个连通块,其它点依旧连通,则答案为$2\times (n 1)$。 若第$i$个点是割点,那么去掉这个点相关的边就会形成$3$种构成的连通块: 1. 由点$i$本身构成。 2. 由点$i$的子树(搜索树中)形成若 阅读全文

posted @ 2018-09-10 19:12 Iowa_Battleship 阅读(133) 评论(0) 推荐(0) 编辑

洛谷3388 【模板】割点(割顶)
摘要:一道找割点模板 "原题链接" $tarjan$找割点模板,不解释。 cpp include using namespace std; const int N = 1e5 + 10; int fi[N], di[N '9'; c = getchar()) p |= c == ' '; for (; c 阅读全文

posted @ 2018-09-10 12:56 Iowa_Battleship 阅读(100) 评论(0) 推荐(0) 编辑

POJ1201 Intervals
摘要:一道差分约束 "原题链接" 定义$f[x]$表示$0\sim x$间最少选择几个数,则$f[b_i] f[a_i 1]\geqslant c_i$。 显然的差分约束。 另有条件$f[x] f[x 1]\geqslant 0,f[x] f[x 1]\leqslant 1$。 按上述条件建图跑最长路即可 阅读全文

posted @ 2018-09-10 12:52 Iowa_Battleship 阅读(55) 评论(0) 推荐(0) 编辑

POJ3621或洛谷2868 [USACO07DEC]观光奶牛Sightseeing Cows
摘要:一道$0/1$分数规划+负环 "POJ原题链接" "洛谷原题链接" 显然是$0/1$分数规划问题。 二分答案,设二分值为$mid$。 然后对二分进行判断,我们建立新图,没有点权,设当前有向边为$z=(x,y)$,$time$为原边权,$fun$为原点权,则将该边权换成$mid\times time[ 阅读全文

posted @ 2018-09-09 21:10 Iowa_Battleship 阅读(125) 评论(0) 推荐(0) 编辑

洛谷3385 【模板】负环
摘要:一道负环模板 "原题链接" 负环模板,不解释。 阅读全文

posted @ 2018-09-09 19:51 Iowa_Battleship 阅读(121) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 下一页

导航