﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-ZAKIR</title><link>http://www.cppblog.com/ZAKIR/</link><description>￣=斗Code年华=￣</description><language>zh-cn</language><lastBuildDate>Mon, 13 Apr 2026 09:39:58 GMT</lastBuildDate><pubDate>Mon, 13 Apr 2026 09:39:58 GMT</pubDate><ttl>60</ttl><item><title>本博已停，请绕道http://blog.wamaker.net</title><link>http://www.cppblog.com/ZAKIR/archive/2010/09/21/127235.html</link><dc:creator>ZAKIR</dc:creator><author>ZAKIR</author><pubDate>Tue, 21 Sep 2010 04:59:00 GMT</pubDate><guid>http://www.cppblog.com/ZAKIR/archive/2010/09/21/127235.html</guid><wfw:comment>http://www.cppblog.com/ZAKIR/comments/127235.html</wfw:comment><comments>http://www.cppblog.com/ZAKIR/archive/2010/09/21/127235.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ZAKIR/comments/commentRss/127235.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ZAKIR/services/trackbacks/127235.html</trackback:ping><description><![CDATA[对cpp有点失望，换<a href="http://blog.wamaker.net">http://blog.wamaker.net</a>了<img src ="http://www.cppblog.com/ZAKIR/aggbug/127235.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ZAKIR/" target="_blank">ZAKIR</a> 2010-09-21 12:59 <a href="http://www.cppblog.com/ZAKIR/archive/2010/09/21/127235.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>线段树学习笔记</title><link>http://www.cppblog.com/ZAKIR/archive/2010/09/18/125269.html</link><dc:creator>ZAKIR</dc:creator><author>ZAKIR</author><pubDate>Sat, 18 Sep 2010 03:15:00 GMT</pubDate><guid>http://www.cppblog.com/ZAKIR/archive/2010/09/18/125269.html</guid><wfw:comment>http://www.cppblog.com/ZAKIR/comments/125269.html</wfw:comment><comments>http://www.cppblog.com/ZAKIR/archive/2010/09/18/125269.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ZAKIR/comments/commentRss/125269.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ZAKIR/services/trackbacks/125269.html</trackback:ping><description><![CDATA[
hdu1166敌兵布阵 <br>线段树的入门题,更新结点，查询区间和<a href="http://www.cppblog.com/ZAKIR/articles/125268.html">查看代码</a><br><br>
<p>hdu1754 I Hate It <br></p>
<p>入门题，更新结点，查询区间最大值</p>
<p><br></p>
<p>hdu 1698 <font color="green"><a href="http://acm.hdu.edu.cn/showproblem.php?pid=1698" target="_blank" style="color: #1a5cc8; text-decoration: none;">&nbsp;Just a Hook&nbsp;</a></font></p>
<p>更新一段区间上的颜色，求值。学习了懒操作。</p>
<p><br></p><p>poj 2777<font  face="'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif" size="3"><span  style="font-size: 13px; line-height: 19px;">&nbsp;</span></font><span  style="border-collapse: collapse; "><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2777" style="text-transform: none; text-decoration: none; ">Count Color</a></span></p><p>给区间染色，求一段区间内颜色的种树。学会了线段树的新写法以及位操作。</p><p><br></p><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta http-equiv="content-type" content="text/html; charset=utf-8">
<p><br></p><img src ="http://www.cppblog.com/ZAKIR/aggbug/125269.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ZAKIR/" target="_blank">ZAKIR</a> 2010-09-18 11:15 <a href="http://www.cppblog.com/ZAKIR/archive/2010/09/18/125269.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>网络流题目记录</title><link>http://www.cppblog.com/ZAKIR/archive/2010/09/09/126149.html</link><dc:creator>ZAKIR</dc:creator><author>ZAKIR</author><pubDate>Thu, 09 Sep 2010 09:03:00 GMT</pubDate><guid>http://www.cppblog.com/ZAKIR/archive/2010/09/09/126149.html</guid><wfw:comment>http://www.cppblog.com/ZAKIR/comments/126149.html</wfw:comment><comments>http://www.cppblog.com/ZAKIR/archive/2010/09/09/126149.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ZAKIR/comments/commentRss/126149.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ZAKIR/services/trackbacks/126149.html</trackback:ping><description><![CDATA[<span style="font-family: Tahoma; font-size: 14px;">hdu 3081&nbsp;<a href="http://acm.hdu.edu.cn/showproblem.php?pid=3081">Marriage Match II</a></span><br>
<p>n男n女过家家，女生可以挑没有跟她吵过架的男生匹配，也可与没有跟她朋友吵过架的男生匹配（可以认为是她喜欢的男生）。每轮游戏，每个女生选个她没选过的男生，问游戏最多能进行几轮？</p>
<p>构图：<span style="color: #f0f0f0;">先用并查集处理女生友情的传递。每个女向她喜欢的所有男生以及她朋友喜欢的男生连一条容量为1的边。二分最大能进行的轮数ans，源点向每个女生连一条容量为ans的边，每个男生向汇点连一条容量为ans的边。判断最大流是否等于ans*N;</span></p>
<p><br></p>
<p>hdu 3277&nbsp;<span style="font-family: Tahoma; font-size: 14px;"><a href="http://acm.hdu.edu.cn/showproblem.php?pid=3277">Marriage Match III</a></span></p>
<p>同上，每个女生可以跟最多K个她不喜欢的男生匹配。</p>
<p>构图：<span style="color: #f0f0f0;">每个女生拆为两个点Gi1,Gi2。Gi1连一条容量为K的边到Gi2。每个Gi2连一条容量为1的边到女生i不喜欢的男生，源点连容量为ans的边到每个Gi1。其余同上。</span></p>
<p>一开始用Dinic，无限TLE~~~ T_T 。万般无奈下，只好上<a href="http://qinz.maybe.im/?p=44639">Qinz</a>大牛的博客膜拜了ISAP的模板，再结合网上各路神牛的论文，终于得出了一份自己的ISAP模板～，提交果断AC～</p>
<p><br></p>
<p>hdu 3416&nbsp;<span style="font-family: Tahoma; font-size: 14px;"><a href="http://acm.hdu.edu.cn/showproblem.php?pid=3416">Marriage Match IV</a></span></p>
<p><a href="http://acm.hdu.edu.cn/showproblem.php?pid=3416" style="color: #1a5cc8; text-decoration: none;"></a>有向图，求起点到终点的最短路的条数。</p>
<p>构图：<span style="color: #f0f0f0;">求最短路，起点到所有点的最短路，所有边反向，求终点到所有点的最短路，对于边<u,v>如果起点到u的距离加终点到v的距离加这条边的权值等于最短路长，那么在网络流的图中加一条u指向v，权值为1的边。求起点到终点的最大流。</u,v></span></p>
<p><span style="color: #ffffff;"><u,v><span style="color: #020000;"><br></span></u,v></span></p>
<p><span style="color: #ffffff;"><u,v><span style="color: #020000;">poj 3281 <a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=3281" style="text-transform: none; text-decoration: none;">Dining</a> <br></span></u,v></span></p>
<p><span style="color: #ffffff;"><u,v><span style="color: #020000;">N头牛，D种饮料，F种食物，每天牛吃一种食物一种饮料，食物和饮料都只有一份。问最大满足多少头牛。</span></u,v></span></p>
<p><span style="color: #ffffff;"><u,v><span style="color: #020000;">构图：<span style="color: #f0f0f0;">由于每头牛只需一份饮料和食物，所以每头牛要拆为两点，连容量为1的边。起点到所有食物连容量为1的边，饮料到汇点连容量为1的边。牛再和食物，饮料连。Dinic 0MS毫无压力。</span></span></u,v></span></p>
<p><span style="color: #ffffff;"><u,v><span style="color: #020000;"><span style="color: #f8f8f8;"></span><br></span></u,v></span></p>
<p><span style="color: #ffffff;"><u,v><span style="color: #020000;">poj 2135 <a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2135" style="text-transform: none; text-decoration: none;">Farm Tour</a> <br></span></u,v></span></p>
<p><span style="color: #ffffff;"><u,v><span style="color: #020000;">求起点到终点再回起点的最短路径。不能走重复的路。</span></u,v></span></p>
<p><span style="color: #ffffff;"><u,v><span style="color: #020000;">构图：<span style="color: #f8f0f1;">第一次写费用流。用的是朴素的spfa。费用是距离。源点到1连一条容量为2的边。终点到汇点连容量为2的边。每条路径的容量都为1.直接水过。</span></span></u,v></span></p>
<p><span style="color: #ffffff;"><u,v><span style="color: #020000;"><span style="color: #f8f0f1;"><span style="color: #000000;"><br></span></span></span></u,v></span></p>
<p><span style="color: #ffffff;"><u,v><span style="color: #020000;"><span style="color: #f8f0f1;"><span style="color: #000000;">poj 2711 <a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2711" style="text-transform: none; text-decoration: none;">Leapin' Lizards</a> <br></span></span></span></u,v></span></p>
<p><span style="color: #ffffff;"><u,v><span style="color: #020000;"><span style="color: #f8f0f1;"><span style="color: #000000;">图上有些柱子，开始时，一些蜥蜴在柱子上，当蜥蜴跳离柱子时，柱子高度降1，蜥蜴不能跳到高度为0的柱子上，蜥蜴跳跃的距离为D，求有多少蜥蜴能够跳出来。</span></span></span></u,v></span></p>
<p><span style="color: #ffffff;"><u,v><span style="color: #020000;"><span style="color: #f8f0f1;"><span style="color: #000000;">构图：<span style="color: #f0f0f0;">把每个有高度柱子拆为两点，ai,bi，ai-&gt;bi容量为柱子高度。源点接到有蜥蜴的柱子ai上，能一步跳出去的柱子的bi接到汇点，容量INF，距离为D的任意两格子都连容量INF的边。求解最大流。求曼哈顿距离的时候出了点小问题，无限WA。注意输出，单复数是不同的。</span></span></span></span></u,v></span></p>
<p><span style="color: #ffffff;"><u,v><span style="color: #020000;"><span style="color: #f8f0f1;"><span style="color: #000000;"><br></span></span></span></u,v></span></p>
<p><span style="color: #ffffff;"><u,v><span style="color: #020000;"><span style="color: #f8f0f1;"><span style="color: #000000;">poj 2516 <a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2516" style="text-transform: none; text-decoration: none;">Minimum Cost</a></span></span></span></u,v></span></p>
<p><span style="color: #ffffff;"><u,v><span style="color: #020000;"><span style="color: #f8f0f1;"><span style="color: #000000;">有N个客户订单，M座仓库。给出订单内容和仓库库存，以及仓库到客户的费用。求满足所有客户需求的最小费用。</span></span></span></u,v></span></p>
<p><span style="color: #ffffff;"><u,v><span style="color: #020000;"><span style="color: #f8f0f1;"><span style="color: #000000;">构图：<span style="color: #f0f0f0;">原生态最小费用流。每种商品都是独立的，那么我们可以针对每种商品计算最小费用。从源点连容量为仓库i中k种商品库存费用为0的边到仓库i,仓库i接容量为无限，费用为到客户j的费用。如果最大流等于k的需求总量那么k就满足了。可以记录每种商品需求总量和库存总量。供不应求则输出-1 。</span></span></span></span></u,v></span></p>
<p><span style="color: #ffffff;"><u,v><span style="color: #020000;"><span style="color: #f8f0f1;"><span style="color: #000000;"><span style="color: #f0f0f0;"><span style="color: #020000;"><br></span></span></span></span></span></u,v></span></p>
<p><span style="color: #ffffff;"><u,v><span style="color: #020000;"><span style="color: #f8f0f1;"><span style="color: #000000;"><span style="color: #f0f0f0;"><span style="color: #020000;">poj 3680 <a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=3680">Intervals</a></span></span></span></span></span></u,v></span></p>
<p><span style="color: #ffffff;"><u,v><span style="color: #020000;"><span style="color: #f8f0f1;"><span style="color: #000000;"><span style="color: #f0f0f0;"><span style="color: #020000;"></span></span></span></span>已知N条线段的端点和线段的权值，选一些线段使权值最大，坐标轴上一点最多被覆盖K次。<br></span></u,v></span></p>
<p><span style="color: #ffffff;"><u,v><span style="color: #020000;">构图：<span style="color: #f6eef4;">费用流。原打算拆点连边。感觉复杂度过不了，膜拜了传说中神一般的构图：先把点离散化，起点到第一点连权值为0，容量为K，i到i+1连权值为0容量为K的边，直到汇点。一条线段的起始点连一条容量为1权值为-w的边到结束点。</span><br></span></u,v></span></p>
<p><span style="color: #ffffff;"><u,v><span style="color: #020000;"></span><br></u,v></span></p><img src ="http://www.cppblog.com/ZAKIR/aggbug/126149.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ZAKIR/" target="_blank">ZAKIR</a> 2010-09-09 17:03 <a href="http://www.cppblog.com/ZAKIR/archive/2010/09/09/126149.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>图的割点与割边学习笔记</title><link>http://www.cppblog.com/ZAKIR/archive/2010/08/30/124869.html</link><dc:creator>ZAKIR</dc:creator><author>ZAKIR</author><pubDate>Mon, 30 Aug 2010 06:59:00 GMT</pubDate><guid>http://www.cppblog.com/ZAKIR/archive/2010/08/30/124869.html</guid><wfw:comment>http://www.cppblog.com/ZAKIR/comments/124869.html</wfw:comment><comments>http://www.cppblog.com/ZAKIR/archive/2010/08/30/124869.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ZAKIR/comments/commentRss/124869.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ZAKIR/services/trackbacks/124869.html</trackback:ping><description><![CDATA[



<h1>割点</h1><p><strong>割点</strong>：如果在图G中删去一个结点u后，图G的连通分枝数增加，即W(G-u)&gt;W(G)，则称结点u为G的割点，又称关节点。<br>&nbsp;&nbsp; &nbsp; 直观地说，就是删除了连通图的某点后，图不在连通，而是分为几个连通分量。</p><p><strong>性质</strong>：（1）考虑根节点Root，如果Root有数量多于1的子结点时，Root是割点。</p><p>&nbsp;&nbsp; &nbsp; &nbsp;（2）考虑非根结点u，当且仅当u的某个儿子及儿子的子孙均没有指向u的祖先的后向边时，u是割点。（LOW[v]&gt;=DFN[u],v是u的孩子）</p><p><strong>代码：</strong></p><strong><div style="background-color: rgb(238, 238, 238); font-size: 13px; border-left-color: rgb(204, 204, 204); padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;DFS(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;cur,</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;par)<br></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #000000; ">{<br></span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;dfn[cur]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">low[cur]</span><span style="color: #000000; ">=++</span><span style="color: #000000; ">Index;<br></span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;size</span><span style="color: #000000; ">=</span><span style="color: #000000; ">adj[cur].size();<br></span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;cnt</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;i</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">size;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;v</span><span style="color: #000000; ">=</span><span style="color: #000000; ">adj[cur][i];<br></span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(</span><span style="color: #000000; ">!</span><span style="color: #000000; ">dfn[v])<br></span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cnt</span><span style="color: #000000; ">++</span><span style="color: #000000; ">;<br></span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DFS(v,cur);<br></span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(low[cur]</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">low[v])<br></span><span style="color: #008080; ">15</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;low[cur]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">low[v];<br></span><span style="color: #008080; ">16</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">((cur</span><span style="color: #000000; ">==</span><span style="color: #000000; ">root</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">cnt</span><span style="color: #000000; ">==</span><span style="color: #000000; ">2</span><span style="color: #000000; ">)</span><span style="color: #000000; ">||</span><span style="color: #000000; ">(cur</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">root</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">low[v]</span><span style="color: #000000; ">&gt;=</span><span style="color: #000000; ">dfn[cur]))<br></span><span style="color: #008080; ">17</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag[cur]</span><span style="color: #000000; ">=</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;<br></span><span style="color: #008080; ">18</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080; ">19</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(v</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">par</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">low[cur]</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">dfn[v])<br></span><span style="color: #008080; ">20</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;low[cur]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">dfn[v];<br></span><span style="color: #008080; ">21</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080; ">22</span>&nbsp;<span style="color: #000000; ">}<br></span><span style="color: #008080; ">23</span>&nbsp;</div></strong><p>&nbsp;</p><h1>割边</h1><p><strong>割边：</strong>如果在图G中删去一条边e后，图G的连通分支数增加，即W(G-e)&gt;W(G)，则称边u为G的桥，又称割边或关节边。</p><p>&nbsp;性质: 对于一条边&lt;u,v&gt;，v是u的孩子如果儿子及儿子的子孙均没有指向u的祖先的后向边时，&lt;u,v&gt;是割边。（LOW[v]&gt;DFN[u]）</p><p><strong>代码：</strong></p><strong><div style="background-color: rgb(238, 238, 238); font-size: 13px; border-left-color: rgb(204, 204, 204); padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;CutEdge(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;cur,</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;par)<br></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #000000; ">{&nbsp;&nbsp;&nbsp;&nbsp;dfn[cur]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">low[cur]</span><span style="color: #000000; ">=++</span><span style="color: #000000; ">Index;<br></span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">head[cur];i;i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">buf[i].next)<br></span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;v</span><span style="color: #000000; ">=</span><span style="color: #000000; ">buf[i].v;<br></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(v</span><span style="color: #000000; ">==</span><span style="color: #000000; ">par)</span><span style="color: #0000FF; ">continue</span><span style="color: #000000; ">;<br></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(</span><span style="color: #000000; ">!</span><span style="color: #000000; ">dfn[v])<br></span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CutEdge(v,cur);<br></span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(low[cur]</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">low[v])<br></span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;low[cur]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">low[v];<br></span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(low[v]</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">dfn[cur])<br></span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="color: #008080; ">15</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans[nAns</span><span style="color: #000000; ">++</span><span style="color: #000000; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">buf[i].id;<br></span><span style="color: #008080; ">16</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080; ">17</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080; ">18</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(low[cur]</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">dfn[v])<br></span><span style="color: #008080; ">19</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;low[cur]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">dfn[v];<br></span><span style="color: #008080; ">20</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080; ">21</span>&nbsp;<span style="color: #000000; ">}</span></div></strong><p>&nbsp;</p><p>相关习题：</p><p>POJ 1144 Network 赤果果的求割点的题。</p><p>相关链接:<br><a href="http://www.byvoid.com/blog/biconnect/zh-hans/">Beyond the Void的讲解，很精彩</a></p><p>推荐阅读：</p><p>lrj的黑书P285</p><img src ="http://www.cppblog.com/ZAKIR/aggbug/124869.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ZAKIR/" target="_blank">ZAKIR</a> 2010-08-30 14:59 <a href="http://www.cppblog.com/ZAKIR/archive/2010/08/30/124869.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>新博开通！</title><link>http://www.cppblog.com/ZAKIR/archive/2010/05/26/116344.html</link><dc:creator>ZAKIR</dc:creator><author>ZAKIR</author><pubDate>Wed, 26 May 2010 00:15:00 GMT</pubDate><guid>http://www.cppblog.com/ZAKIR/archive/2010/05/26/116344.html</guid><wfw:comment>http://www.cppblog.com/ZAKIR/comments/116344.html</wfw:comment><comments>http://www.cppblog.com/ZAKIR/archive/2010/05/26/116344.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ZAKIR/comments/commentRss/116344.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ZAKIR/services/trackbacks/116344.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;由于原来的yo2不能用了，只好转战CPP。这个Blog将会用来记录一些胡思乱想的成果，神经质的言语。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;形式主义的来个HelloWorld:<br>&nbsp;&nbsp;&nbsp;
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #008080">1</span><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"><span style="COLOR: #000000">cout</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Hello&nbsp;World</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">endl;</span></div>
<img src ="http://www.cppblog.com/ZAKIR/aggbug/116344.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ZAKIR/" target="_blank">ZAKIR</a> 2010-05-26 08:15 <a href="http://www.cppblog.com/ZAKIR/archive/2010/05/26/116344.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>