并查集
概念: 并查集是一種資料結構 一般由兩個函式
F
i
n
d
(
)
Find( )
F i n d ( ) 、
U
n
i
o
n
(
)
Union( )
U n i o n ( ) 和陣列
f
[
]
f[]
f [ ] 構成,
f
[
]
f[]
f [ ] 用來記錄自己的根 函式
f
i
n
d
(
x
)
find(x)
f i n d ( x ) 用于查找
x
x
x 的根 ,函式
U
n
i
o
n
(
x
,
y
)
Union(x, y)
U n i o n ( x , y ) 用于合并兩個集,
例子的引入 :)
背景:
在一個百家爭戰(鳴 )的時代,存在非常多的家派,比如說:武當派, 少林派, 華山派······ 因為當時時代極為不和平,所以不是屬于一個家派的人見到面就會干架(社會不良行為 ) 但是可能會遇到一些問題,(可能會誤傷隊友, 關系網如圖
<style>#mermaid-svg-2iEE2SwnuZp09aaX .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-2iEE2SwnuZp09aaX .label text{fill:#333}#mermaid-svg-2iEE2SwnuZp09aaX .node rect,#mermaid-svg-2iEE2SwnuZp09aaX .node circle,#mermaid-svg-2iEE2SwnuZp09aaX .node ellipse,#mermaid-svg-2iEE2SwnuZp09aaX .node polygon,#mermaid-svg-2iEE2SwnuZp09aaX .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-2iEE2SwnuZp09aaX .node .label{text-align:center;fill:#333}#mermaid-svg-2iEE2SwnuZp09aaX .node.clickable{cursor:pointer}#mermaid-svg-2iEE2SwnuZp09aaX .arrowheadPath{fill:#333}#mermaid-svg-2iEE2SwnuZp09aaX .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-2iEE2SwnuZp09aaX .flowchart-link{stroke:#333;fill:none}#mermaid-svg-2iEE2SwnuZp09aaX .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-2iEE2SwnuZp09aaX .edgeLabel rect{opacity:0.9}#mermaid-svg-2iEE2SwnuZp09aaX .edgeLabel span{color:#333}#mermaid-svg-2iEE2SwnuZp09aaX .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-2iEE2SwnuZp09aaX .cluster text{fill:#333}#mermaid-svg-2iEE2SwnuZp09aaX div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-2iEE2SwnuZp09aaX .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-2iEE2SwnuZp09aaX text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-2iEE2SwnuZp09aaX .actor-line{stroke:grey}#mermaid-svg-2iEE2SwnuZp09aaX .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-2iEE2SwnuZp09aaX .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-2iEE2SwnuZp09aaX #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-2iEE2SwnuZp09aaX .sequenceNumber{fill:#fff}#mermaid-svg-2iEE2SwnuZp09aaX #sequencenumber{fill:#333}#mermaid-svg-2iEE2SwnuZp09aaX #crosshead path{fill:#333;stroke:#333}#mermaid-svg-2iEE2SwnuZp09aaX .messageText{fill:#333;stroke:#333}#mermaid-svg-2iEE2SwnuZp09aaX .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-2iEE2SwnuZp09aaX .labelText,#mermaid-svg-2iEE2SwnuZp09aaX .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-2iEE2SwnuZp09aaX .loopText,#mermaid-svg-2iEE2SwnuZp09aaX .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-2iEE2SwnuZp09aaX .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-2iEE2SwnuZp09aaX .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-2iEE2SwnuZp09aaX .noteText,#mermaid-svg-2iEE2SwnuZp09aaX .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-2iEE2SwnuZp09aaX .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-2iEE2SwnuZp09aaX .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-2iEE2SwnuZp09aaX .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-2iEE2SwnuZp09aaX .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-2iEE2SwnuZp09aaX .section{stroke:none;opacity:0.2}#mermaid-svg-2iEE2SwnuZp09aaX .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-2iEE2SwnuZp09aaX .section2{fill:#fff400}#mermaid-svg-2iEE2SwnuZp09aaX .section1,#mermaid-svg-2iEE2SwnuZp09aaX .section3{fill:#fff;opacity:0.2}#mermaid-svg-2iEE2SwnuZp09aaX .sectionTitle0{fill:#333}#mermaid-svg-2iEE2SwnuZp09aaX .sectionTitle1{fill:#333}#mermaid-svg-2iEE2SwnuZp09aaX .sectionTitle2{fill:#333}#mermaid-svg-2iEE2SwnuZp09aaX .sectionTitle3{fill:#333}#mermaid-svg-2iEE2SwnuZp09aaX .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-2iEE2SwnuZp09aaX .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-2iEE2SwnuZp09aaX .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-2iEE2SwnuZp09aaX .grid path{stroke-width:0}#mermaid-svg-2iEE2SwnuZp09aaX .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-2iEE2SwnuZp09aaX .task{stroke-width:2}#mermaid-svg-2iEE2SwnuZp09aaX .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-2iEE2SwnuZp09aaX .taskText:not([font-size]){font-size:11px}#mermaid-svg-2iEE2SwnuZp09aaX .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-2iEE2SwnuZp09aaX .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-2iEE2SwnuZp09aaX .task.clickable{cursor:pointer}#mermaid-svg-2iEE2SwnuZp09aaX .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-2iEE2SwnuZp09aaX .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-2iEE2SwnuZp09aaX .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-2iEE2SwnuZp09aaX .taskText0,#mermaid-svg-2iEE2SwnuZp09aaX .taskText1,#mermaid-svg-2iEE2SwnuZp09aaX .taskText2,#mermaid-svg-2iEE2SwnuZp09aaX .taskText3{fill:#fff}#mermaid-svg-2iEE2SwnuZp09aaX .task0,#mermaid-svg-2iEE2SwnuZp09aaX .task1,#mermaid-svg-2iEE2SwnuZp09aaX .task2,#mermaid-svg-2iEE2SwnuZp09aaX .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-2iEE2SwnuZp09aaX .taskTextOutside0,#mermaid-svg-2iEE2SwnuZp09aaX .taskTextOutside2{fill:#000}#mermaid-svg-2iEE2SwnuZp09aaX .taskTextOutside1,#mermaid-svg-2iEE2SwnuZp09aaX .taskTextOutside3{fill:#000}#mermaid-svg-2iEE2SwnuZp09aaX .active0,#mermaid-svg-2iEE2SwnuZp09aaX .active1,#mermaid-svg-2iEE2SwnuZp09aaX .active2,#mermaid-svg-2iEE2SwnuZp09aaX .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-2iEE2SwnuZp09aaX .activeText0,#mermaid-svg-2iEE2SwnuZp09aaX .activeText1,#mermaid-svg-2iEE2SwnuZp09aaX .activeText2,#mermaid-svg-2iEE2SwnuZp09aaX .activeText3{fill:#000 !important}#mermaid-svg-2iEE2SwnuZp09aaX .done0,#mermaid-svg-2iEE2SwnuZp09aaX .done1,#mermaid-svg-2iEE2SwnuZp09aaX .done2,#mermaid-svg-2iEE2SwnuZp09aaX .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-2iEE2SwnuZp09aaX .doneText0,#mermaid-svg-2iEE2SwnuZp09aaX .doneText1,#mermaid-svg-2iEE2SwnuZp09aaX .doneText2,#mermaid-svg-2iEE2SwnuZp09aaX .doneText3{fill:#000 !important}#mermaid-svg-2iEE2SwnuZp09aaX .crit0,#mermaid-svg-2iEE2SwnuZp09aaX .crit1,#mermaid-svg-2iEE2SwnuZp09aaX .crit2,#mermaid-svg-2iEE2SwnuZp09aaX .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-2iEE2SwnuZp09aaX .activeCrit0,#mermaid-svg-2iEE2SwnuZp09aaX .activeCrit1,#mermaid-svg-2iEE2SwnuZp09aaX .activeCrit2,#mermaid-svg-2iEE2SwnuZp09aaX .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-2iEE2SwnuZp09aaX .doneCrit0,#mermaid-svg-2iEE2SwnuZp09aaX .doneCrit1,#mermaid-svg-2iEE2SwnuZp09aaX .doneCrit2,#mermaid-svg-2iEE2SwnuZp09aaX .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-2iEE2SwnuZp09aaX .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-2iEE2SwnuZp09aaX .milestoneText{font-style:italic}#mermaid-svg-2iEE2SwnuZp09aaX .doneCritText0,#mermaid-svg-2iEE2SwnuZp09aaX .doneCritText1,#mermaid-svg-2iEE2SwnuZp09aaX .doneCritText2,#mermaid-svg-2iEE2SwnuZp09aaX .doneCritText3{fill:#000 !important}#mermaid-svg-2iEE2SwnuZp09aaX .activeCritText0,#mermaid-svg-2iEE2SwnuZp09aaX .activeCritText1,#mermaid-svg-2iEE2SwnuZp09aaX .activeCritText2,#mermaid-svg-2iEE2SwnuZp09aaX .activeCritText3{fill:#000 !important}#mermaid-svg-2iEE2SwnuZp09aaX .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-2iEE2SwnuZp09aaX g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-2iEE2SwnuZp09aaX g.classGroup text .title{font-weight:bolder}#mermaid-svg-2iEE2SwnuZp09aaX g.clickable{cursor:pointer}#mermaid-svg-2iEE2SwnuZp09aaX g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-2iEE2SwnuZp09aaX g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-2iEE2SwnuZp09aaX .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-2iEE2SwnuZp09aaX .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-2iEE2SwnuZp09aaX .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-2iEE2SwnuZp09aaX .dashed-line{stroke-dasharray:3}#mermaid-svg-2iEE2SwnuZp09aaX #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-2iEE2SwnuZp09aaX #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-2iEE2SwnuZp09aaX #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-2iEE2SwnuZp09aaX #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-2iEE2SwnuZp09aaX #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-2iEE2SwnuZp09aaX #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-2iEE2SwnuZp09aaX #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-2iEE2SwnuZp09aaX #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-2iEE2SwnuZp09aaX .commit-id,#mermaid-svg-2iEE2SwnuZp09aaX .commit-msg,#mermaid-svg-2iEE2SwnuZp09aaX .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-2iEE2SwnuZp09aaX .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-2iEE2SwnuZp09aaX .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-2iEE2SwnuZp09aaX g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-2iEE2SwnuZp09aaX g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-2iEE2SwnuZp09aaX g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-2iEE2SwnuZp09aaX g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-2iEE2SwnuZp09aaX g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-2iEE2SwnuZp09aaX g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-2iEE2SwnuZp09aaX .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-2iEE2SwnuZp09aaX .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-2iEE2SwnuZp09aaX .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-2iEE2SwnuZp09aaX .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-2iEE2SwnuZp09aaX .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-2iEE2SwnuZp09aaX .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-2iEE2SwnuZp09aaX .edgeLabel text{fill:#333}#mermaid-svg-2iEE2SwnuZp09aaX .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-2iEE2SwnuZp09aaX .node circle.state-start{fill:black;stroke:black}#mermaid-svg-2iEE2SwnuZp09aaX .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-2iEE2SwnuZp09aaX #statediagram-barbEnd{fill:#9370db}#mermaid-svg-2iEE2SwnuZp09aaX .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-2iEE2SwnuZp09aaX .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-2iEE2SwnuZp09aaX .statediagram-state .divider{stroke:#9370db}#mermaid-svg-2iEE2SwnuZp09aaX .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-2iEE2SwnuZp09aaX .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-2iEE2SwnuZp09aaX .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-2iEE2SwnuZp09aaX .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-2iEE2SwnuZp09aaX .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-2iEE2SwnuZp09aaX .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-2iEE2SwnuZp09aaX .note-edge{stroke-dasharray:5}#mermaid-svg-2iEE2SwnuZp09aaX .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-2iEE2SwnuZp09aaX .error-icon{fill:#522}#mermaid-svg-2iEE2SwnuZp09aaX .error-text{fill:#522;stroke:#522}#mermaid-svg-2iEE2SwnuZp09aaX .edge-thickness-normal{stroke-width:2px}#mermaid-svg-2iEE2SwnuZp09aaX .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-2iEE2SwnuZp09aaX .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-2iEE2SwnuZp09aaX .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-2iEE2SwnuZp09aaX .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-2iEE2SwnuZp09aaX .marker{fill:#333}#mermaid-svg-2iEE2SwnuZp09aaX .marker.cross{stroke:#333}
:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}</style>
<style>#mermaid-svg-2iEE2SwnuZp09aaX {
color: rgba(0, 0, 0, 0.75);
font: ;
}</style>
武當派
李淵鳴
張三豐
沖虛道長
宋青書
愚茶道長
張無忌
馬真
陸菲青
少林派
達摩祖師
玄苦
掃地僧
玄渡
玄慈
玄寂
玄悲
玄痛
華山派
郝大通
高老者
莫逆
薛仁豪
風清揚
矮老者
白仁甫
黃真
劉培生
關系好復雜······· 這個時候,就可以用并查集來儲存關系, Such as:馬真的師傅是沖虛道長,沖虛道長的師傅是張三豐,··········
F
i
n
d
(
)
Find()
F i n d ( ) 函式的引入
當馬真 遇到陸菲青 , 馬真 問道:“敢問閣下可否與鄙人一戰?” 陸菲青 反問:“敢問閣下是哪個家派的?鄙人所屬武當派,” 為了防止發生誤傷, 馬真使用了
F
i
n
d
(
)
Find( )
F i n d ( ) 函式, 來查詢自己的根 ,
inline int Find ( int x) { //查找x的家派
while ( f[ x] != x) //如果x的師父是x自己, 那么自己就是家派
x = f[ x] ; //x接著找他的上級,直到找到家派為止
return x; //家派駕到~~~
}
但是······,馬真–>沖虛道長–>張三豐–>武當派,問的人也太多了,而且時間也挺慢的··· (說不定還沒問到,已經打完了 ) 于是,便出現了一種更為快捷的
F
i
n
d
(
)
Find()
F i n d ( ) 函式,名為 路徑壓縮 ,
inline int Find ( int x) { //inline進行優化
if ( f[ x] == x) return x; //如果x的師傅是x自己
else return f[ x] = find ( f[ x] ) ; //如果不是,那么繼續自己的師傅
}
經過了路徑壓縮, 關系的儲存就會變成以下形式:
<style>#mermaid-svg-dQaTpNLpKGHIHlcx .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-dQaTpNLpKGHIHlcx .label text{fill:#333}#mermaid-svg-dQaTpNLpKGHIHlcx .node rect,#mermaid-svg-dQaTpNLpKGHIHlcx .node circle,#mermaid-svg-dQaTpNLpKGHIHlcx .node ellipse,#mermaid-svg-dQaTpNLpKGHIHlcx .node polygon,#mermaid-svg-dQaTpNLpKGHIHlcx .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-dQaTpNLpKGHIHlcx .node .label{text-align:center;fill:#333}#mermaid-svg-dQaTpNLpKGHIHlcx .node.clickable{cursor:pointer}#mermaid-svg-dQaTpNLpKGHIHlcx .arrowheadPath{fill:#333}#mermaid-svg-dQaTpNLpKGHIHlcx .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-dQaTpNLpKGHIHlcx .flowchart-link{stroke:#333;fill:none}#mermaid-svg-dQaTpNLpKGHIHlcx .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-dQaTpNLpKGHIHlcx .edgeLabel rect{opacity:0.9}#mermaid-svg-dQaTpNLpKGHIHlcx .edgeLabel span{color:#333}#mermaid-svg-dQaTpNLpKGHIHlcx .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-dQaTpNLpKGHIHlcx .cluster text{fill:#333}#mermaid-svg-dQaTpNLpKGHIHlcx div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-dQaTpNLpKGHIHlcx .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-dQaTpNLpKGHIHlcx text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-dQaTpNLpKGHIHlcx .actor-line{stroke:grey}#mermaid-svg-dQaTpNLpKGHIHlcx .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-dQaTpNLpKGHIHlcx .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-dQaTpNLpKGHIHlcx #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-dQaTpNLpKGHIHlcx .sequenceNumber{fill:#fff}#mermaid-svg-dQaTpNLpKGHIHlcx #sequencenumber{fill:#333}#mermaid-svg-dQaTpNLpKGHIHlcx #crosshead path{fill:#333;stroke:#333}#mermaid-svg-dQaTpNLpKGHIHlcx .messageText{fill:#333;stroke:#333}#mermaid-svg-dQaTpNLpKGHIHlcx .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-dQaTpNLpKGHIHlcx .labelText,#mermaid-svg-dQaTpNLpKGHIHlcx .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-dQaTpNLpKGHIHlcx .loopText,#mermaid-svg-dQaTpNLpKGHIHlcx .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-dQaTpNLpKGHIHlcx .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-dQaTpNLpKGHIHlcx .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-dQaTpNLpKGHIHlcx .noteText,#mermaid-svg-dQaTpNLpKGHIHlcx .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-dQaTpNLpKGHIHlcx .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-dQaTpNLpKGHIHlcx .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-dQaTpNLpKGHIHlcx .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-dQaTpNLpKGHIHlcx .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-dQaTpNLpKGHIHlcx .section{stroke:none;opacity:0.2}#mermaid-svg-dQaTpNLpKGHIHlcx .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-dQaTpNLpKGHIHlcx .section2{fill:#fff400}#mermaid-svg-dQaTpNLpKGHIHlcx .section1,#mermaid-svg-dQaTpNLpKGHIHlcx .section3{fill:#fff;opacity:0.2}#mermaid-svg-dQaTpNLpKGHIHlcx .sectionTitle0{fill:#333}#mermaid-svg-dQaTpNLpKGHIHlcx .sectionTitle1{fill:#333}#mermaid-svg-dQaTpNLpKGHIHlcx .sectionTitle2{fill:#333}#mermaid-svg-dQaTpNLpKGHIHlcx .sectionTitle3{fill:#333}#mermaid-svg-dQaTpNLpKGHIHlcx .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-dQaTpNLpKGHIHlcx .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-dQaTpNLpKGHIHlcx .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-dQaTpNLpKGHIHlcx .grid path{stroke-width:0}#mermaid-svg-dQaTpNLpKGHIHlcx .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-dQaTpNLpKGHIHlcx .task{stroke-width:2}#mermaid-svg-dQaTpNLpKGHIHlcx .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-dQaTpNLpKGHIHlcx .taskText:not([font-size]){font-size:11px}#mermaid-svg-dQaTpNLpKGHIHlcx .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-dQaTpNLpKGHIHlcx .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-dQaTpNLpKGHIHlcx .task.clickable{cursor:pointer}#mermaid-svg-dQaTpNLpKGHIHlcx .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-dQaTpNLpKGHIHlcx .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-dQaTpNLpKGHIHlcx .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-dQaTpNLpKGHIHlcx .taskText0,#mermaid-svg-dQaTpNLpKGHIHlcx .taskText1,#mermaid-svg-dQaTpNLpKGHIHlcx .taskText2,#mermaid-svg-dQaTpNLpKGHIHlcx .taskText3{fill:#fff}#mermaid-svg-dQaTpNLpKGHIHlcx .task0,#mermaid-svg-dQaTpNLpKGHIHlcx .task1,#mermaid-svg-dQaTpNLpKGHIHlcx .task2,#mermaid-svg-dQaTpNLpKGHIHlcx .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-dQaTpNLpKGHIHlcx .taskTextOutside0,#mermaid-svg-dQaTpNLpKGHIHlcx .taskTextOutside2{fill:#000}#mermaid-svg-dQaTpNLpKGHIHlcx .taskTextOutside1,#mermaid-svg-dQaTpNLpKGHIHlcx .taskTextOutside3{fill:#000}#mermaid-svg-dQaTpNLpKGHIHlcx .active0,#mermaid-svg-dQaTpNLpKGHIHlcx .active1,#mermaid-svg-dQaTpNLpKGHIHlcx .active2,#mermaid-svg-dQaTpNLpKGHIHlcx .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-dQaTpNLpKGHIHlcx .activeText0,#mermaid-svg-dQaTpNLpKGHIHlcx .activeText1,#mermaid-svg-dQaTpNLpKGHIHlcx .activeText2,#mermaid-svg-dQaTpNLpKGHIHlcx .activeText3{fill:#000 !important}#mermaid-svg-dQaTpNLpKGHIHlcx .done0,#mermaid-svg-dQaTpNLpKGHIHlcx .done1,#mermaid-svg-dQaTpNLpKGHIHlcx .done2,#mermaid-svg-dQaTpNLpKGHIHlcx .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-dQaTpNLpKGHIHlcx .doneText0,#mermaid-svg-dQaTpNLpKGHIHlcx .doneText1,#mermaid-svg-dQaTpNLpKGHIHlcx .doneText2,#mermaid-svg-dQaTpNLpKGHIHlcx .doneText3{fill:#000 !important}#mermaid-svg-dQaTpNLpKGHIHlcx .crit0,#mermaid-svg-dQaTpNLpKGHIHlcx .crit1,#mermaid-svg-dQaTpNLpKGHIHlcx .crit2,#mermaid-svg-dQaTpNLpKGHIHlcx .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-dQaTpNLpKGHIHlcx .activeCrit0,#mermaid-svg-dQaTpNLpKGHIHlcx .activeCrit1,#mermaid-svg-dQaTpNLpKGHIHlcx .activeCrit2,#mermaid-svg-dQaTpNLpKGHIHlcx .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-dQaTpNLpKGHIHlcx .doneCrit0,#mermaid-svg-dQaTpNLpKGHIHlcx .doneCrit1,#mermaid-svg-dQaTpNLpKGHIHlcx .doneCrit2,#mermaid-svg-dQaTpNLpKGHIHlcx .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-dQaTpNLpKGHIHlcx .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-dQaTpNLpKGHIHlcx .milestoneText{font-style:italic}#mermaid-svg-dQaTpNLpKGHIHlcx .doneCritText0,#mermaid-svg-dQaTpNLpKGHIHlcx .doneCritText1,#mermaid-svg-dQaTpNLpKGHIHlcx .doneCritText2,#mermaid-svg-dQaTpNLpKGHIHlcx .doneCritText3{fill:#000 !important}#mermaid-svg-dQaTpNLpKGHIHlcx .activeCritText0,#mermaid-svg-dQaTpNLpKGHIHlcx .activeCritText1,#mermaid-svg-dQaTpNLpKGHIHlcx .activeCritText2,#mermaid-svg-dQaTpNLpKGHIHlcx .activeCritText3{fill:#000 !important}#mermaid-svg-dQaTpNLpKGHIHlcx .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-dQaTpNLpKGHIHlcx g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-dQaTpNLpKGHIHlcx g.classGroup text .title{font-weight:bolder}#mermaid-svg-dQaTpNLpKGHIHlcx g.clickable{cursor:pointer}#mermaid-svg-dQaTpNLpKGHIHlcx g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-dQaTpNLpKGHIHlcx g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-dQaTpNLpKGHIHlcx .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-dQaTpNLpKGHIHlcx .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-dQaTpNLpKGHIHlcx .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-dQaTpNLpKGHIHlcx .dashed-line{stroke-dasharray:3}#mermaid-svg-dQaTpNLpKGHIHlcx #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-dQaTpNLpKGHIHlcx #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-dQaTpNLpKGHIHlcx #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-dQaTpNLpKGHIHlcx #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-dQaTpNLpKGHIHlcx #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-dQaTpNLpKGHIHlcx #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-dQaTpNLpKGHIHlcx #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-dQaTpNLpKGHIHlcx #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-dQaTpNLpKGHIHlcx .commit-id,#mermaid-svg-dQaTpNLpKGHIHlcx .commit-msg,#mermaid-svg-dQaTpNLpKGHIHlcx .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-dQaTpNLpKGHIHlcx .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-dQaTpNLpKGHIHlcx .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-dQaTpNLpKGHIHlcx g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-dQaTpNLpKGHIHlcx g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-dQaTpNLpKGHIHlcx g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-dQaTpNLpKGHIHlcx g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-dQaTpNLpKGHIHlcx g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-dQaTpNLpKGHIHlcx g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-dQaTpNLpKGHIHlcx .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-dQaTpNLpKGHIHlcx .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-dQaTpNLpKGHIHlcx .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-dQaTpNLpKGHIHlcx .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-dQaTpNLpKGHIHlcx .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-dQaTpNLpKGHIHlcx .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-dQaTpNLpKGHIHlcx .edgeLabel text{fill:#333}#mermaid-svg-dQaTpNLpKGHIHlcx .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-dQaTpNLpKGHIHlcx .node circle.state-start{fill:black;stroke:black}#mermaid-svg-dQaTpNLpKGHIHlcx .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-dQaTpNLpKGHIHlcx #statediagram-barbEnd{fill:#9370db}#mermaid-svg-dQaTpNLpKGHIHlcx .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-dQaTpNLpKGHIHlcx .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-dQaTpNLpKGHIHlcx .statediagram-state .divider{stroke:#9370db}#mermaid-svg-dQaTpNLpKGHIHlcx .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-dQaTpNLpKGHIHlcx .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-dQaTpNLpKGHIHlcx .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-dQaTpNLpKGHIHlcx .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-dQaTpNLpKGHIHlcx .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-dQaTpNLpKGHIHlcx .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-dQaTpNLpKGHIHlcx .note-edge{stroke-dasharray:5}#mermaid-svg-dQaTpNLpKGHIHlcx .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-dQaTpNLpKGHIHlcx .error-icon{fill:#522}#mermaid-svg-dQaTpNLpKGHIHlcx .error-text{fill:#522;stroke:#522}#mermaid-svg-dQaTpNLpKGHIHlcx .edge-thickness-normal{stroke-width:2px}#mermaid-svg-dQaTpNLpKGHIHlcx .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-dQaTpNLpKGHIHlcx .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-dQaTpNLpKGHIHlcx .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-dQaTpNLpKGHIHlcx .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-dQaTpNLpKGHIHlcx .marker{fill:#333}#mermaid-svg-dQaTpNLpKGHIHlcx .marker.cross{stroke:#333}
:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}</style>
<style>#mermaid-svg-dQaTpNLpKGHIHlcx {
color: rgba(0, 0, 0, 0.75);
font: ;
}</style>
武當派
李淵鳴
張三豐
沖虛道長
宋青書
愚茶道長
張無忌
馬真
陸菲青
...
...
可以直接找到自己所屬家派,避免誤傷,挺好的,
U
n
i
o
n
(
)
Union()
U n i o n ( ) 函式的引入
亂世之下,華山派部分弟子的關系變的愈發惡劣,經常出現矛盾, 終于,弟子風清揚忍無可忍, 用
U
n
i
o
n
(
)
Union()
U n i o n ( ) 投靠了武當派, 于是關系:
<style>#mermaid-svg-7diiMHQMsjiWrCQ1 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-7diiMHQMsjiWrCQ1 .label text{fill:#333}#mermaid-svg-7diiMHQMsjiWrCQ1 .node rect,#mermaid-svg-7diiMHQMsjiWrCQ1 .node circle,#mermaid-svg-7diiMHQMsjiWrCQ1 .node ellipse,#mermaid-svg-7diiMHQMsjiWrCQ1 .node polygon,#mermaid-svg-7diiMHQMsjiWrCQ1 .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-7diiMHQMsjiWrCQ1 .node .label{text-align:center;fill:#333}#mermaid-svg-7diiMHQMsjiWrCQ1 .node.clickable{cursor:pointer}#mermaid-svg-7diiMHQMsjiWrCQ1 .arrowheadPath{fill:#333}#mermaid-svg-7diiMHQMsjiWrCQ1 .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-7diiMHQMsjiWrCQ1 .flowchart-link{stroke:#333;fill:none}#mermaid-svg-7diiMHQMsjiWrCQ1 .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-7diiMHQMsjiWrCQ1 .edgeLabel rect{opacity:0.9}#mermaid-svg-7diiMHQMsjiWrCQ1 .edgeLabel span{color:#333}#mermaid-svg-7diiMHQMsjiWrCQ1 .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-7diiMHQMsjiWrCQ1 .cluster text{fill:#333}#mermaid-svg-7diiMHQMsjiWrCQ1 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-7diiMHQMsjiWrCQ1 .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-7diiMHQMsjiWrCQ1 text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-7diiMHQMsjiWrCQ1 .actor-line{stroke:grey}#mermaid-svg-7diiMHQMsjiWrCQ1 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-7diiMHQMsjiWrCQ1 .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-7diiMHQMsjiWrCQ1 #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-7diiMHQMsjiWrCQ1 .sequenceNumber{fill:#fff}#mermaid-svg-7diiMHQMsjiWrCQ1 #sequencenumber{fill:#333}#mermaid-svg-7diiMHQMsjiWrCQ1 #crosshead path{fill:#333;stroke:#333}#mermaid-svg-7diiMHQMsjiWrCQ1 .messageText{fill:#333;stroke:#333}#mermaid-svg-7diiMHQMsjiWrCQ1 .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-7diiMHQMsjiWrCQ1 .labelText,#mermaid-svg-7diiMHQMsjiWrCQ1 .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-7diiMHQMsjiWrCQ1 .loopText,#mermaid-svg-7diiMHQMsjiWrCQ1 .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-7diiMHQMsjiWrCQ1 .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-7diiMHQMsjiWrCQ1 .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-7diiMHQMsjiWrCQ1 .noteText,#mermaid-svg-7diiMHQMsjiWrCQ1 .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-7diiMHQMsjiWrCQ1 .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-7diiMHQMsjiWrCQ1 .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-7diiMHQMsjiWrCQ1 .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-7diiMHQMsjiWrCQ1 .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7diiMHQMsjiWrCQ1 .section{stroke:none;opacity:0.2}#mermaid-svg-7diiMHQMsjiWrCQ1 .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-7diiMHQMsjiWrCQ1 .section2{fill:#fff400}#mermaid-svg-7diiMHQMsjiWrCQ1 .section1,#mermaid-svg-7diiMHQMsjiWrCQ1 .section3{fill:#fff;opacity:0.2}#mermaid-svg-7diiMHQMsjiWrCQ1 .sectionTitle0{fill:#333}#mermaid-svg-7diiMHQMsjiWrCQ1 .sectionTitle1{fill:#333}#mermaid-svg-7diiMHQMsjiWrCQ1 .sectionTitle2{fill:#333}#mermaid-svg-7diiMHQMsjiWrCQ1 .sectionTitle3{fill:#333}#mermaid-svg-7diiMHQMsjiWrCQ1 .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7diiMHQMsjiWrCQ1 .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-7diiMHQMsjiWrCQ1 .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7diiMHQMsjiWrCQ1 .grid path{stroke-width:0}#mermaid-svg-7diiMHQMsjiWrCQ1 .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-7diiMHQMsjiWrCQ1 .task{stroke-width:2}#mermaid-svg-7diiMHQMsjiWrCQ1 .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7diiMHQMsjiWrCQ1 .taskText:not([font-size]){font-size:11px}#mermaid-svg-7diiMHQMsjiWrCQ1 .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7diiMHQMsjiWrCQ1 .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-7diiMHQMsjiWrCQ1 .task.clickable{cursor:pointer}#mermaid-svg-7diiMHQMsjiWrCQ1 .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-7diiMHQMsjiWrCQ1 .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-7diiMHQMsjiWrCQ1 .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-7diiMHQMsjiWrCQ1 .taskText0,#mermaid-svg-7diiMHQMsjiWrCQ1 .taskText1,#mermaid-svg-7diiMHQMsjiWrCQ1 .taskText2,#mermaid-svg-7diiMHQMsjiWrCQ1 .taskText3{fill:#fff}#mermaid-svg-7diiMHQMsjiWrCQ1 .task0,#mermaid-svg-7diiMHQMsjiWrCQ1 .task1,#mermaid-svg-7diiMHQMsjiWrCQ1 .task2,#mermaid-svg-7diiMHQMsjiWrCQ1 .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-7diiMHQMsjiWrCQ1 .taskTextOutside0,#mermaid-svg-7diiMHQMsjiWrCQ1 .taskTextOutside2{fill:#000}#mermaid-svg-7diiMHQMsjiWrCQ1 .taskTextOutside1,#mermaid-svg-7diiMHQMsjiWrCQ1 .taskTextOutside3{fill:#000}#mermaid-svg-7diiMHQMsjiWrCQ1 .active0,#mermaid-svg-7diiMHQMsjiWrCQ1 .active1,#mermaid-svg-7diiMHQMsjiWrCQ1 .active2,#mermaid-svg-7diiMHQMsjiWrCQ1 .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-7diiMHQMsjiWrCQ1 .activeText0,#mermaid-svg-7diiMHQMsjiWrCQ1 .activeText1,#mermaid-svg-7diiMHQMsjiWrCQ1 .activeText2,#mermaid-svg-7diiMHQMsjiWrCQ1 .activeText3{fill:#000 !important}#mermaid-svg-7diiMHQMsjiWrCQ1 .done0,#mermaid-svg-7diiMHQMsjiWrCQ1 .done1,#mermaid-svg-7diiMHQMsjiWrCQ1 .done2,#mermaid-svg-7diiMHQMsjiWrCQ1 .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-7diiMHQMsjiWrCQ1 .doneText0,#mermaid-svg-7diiMHQMsjiWrCQ1 .doneText1,#mermaid-svg-7diiMHQMsjiWrCQ1 .doneText2,#mermaid-svg-7diiMHQMsjiWrCQ1 .doneText3{fill:#000 !important}#mermaid-svg-7diiMHQMsjiWrCQ1 .crit0,#mermaid-svg-7diiMHQMsjiWrCQ1 .crit1,#mermaid-svg-7diiMHQMsjiWrCQ1 .crit2,#mermaid-svg-7diiMHQMsjiWrCQ1 .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-7diiMHQMsjiWrCQ1 .activeCrit0,#mermaid-svg-7diiMHQMsjiWrCQ1 .activeCrit1,#mermaid-svg-7diiMHQMsjiWrCQ1 .activeCrit2,#mermaid-svg-7diiMHQMsjiWrCQ1 .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-7diiMHQMsjiWrCQ1 .doneCrit0,#mermaid-svg-7diiMHQMsjiWrCQ1 .doneCrit1,#mermaid-svg-7diiMHQMsjiWrCQ1 .doneCrit2,#mermaid-svg-7diiMHQMsjiWrCQ1 .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-7diiMHQMsjiWrCQ1 .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-7diiMHQMsjiWrCQ1 .milestoneText{font-style:italic}#mermaid-svg-7diiMHQMsjiWrCQ1 .doneCritText0,#mermaid-svg-7diiMHQMsjiWrCQ1 .doneCritText1,#mermaid-svg-7diiMHQMsjiWrCQ1 .doneCritText2,#mermaid-svg-7diiMHQMsjiWrCQ1 .doneCritText3{fill:#000 !important}#mermaid-svg-7diiMHQMsjiWrCQ1 .activeCritText0,#mermaid-svg-7diiMHQMsjiWrCQ1 .activeCritText1,#mermaid-svg-7diiMHQMsjiWrCQ1 .activeCritText2,#mermaid-svg-7diiMHQMsjiWrCQ1 .activeCritText3{fill:#000 !important}#mermaid-svg-7diiMHQMsjiWrCQ1 .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7diiMHQMsjiWrCQ1 g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-7diiMHQMsjiWrCQ1 g.classGroup text .title{font-weight:bolder}#mermaid-svg-7diiMHQMsjiWrCQ1 g.clickable{cursor:pointer}#mermaid-svg-7diiMHQMsjiWrCQ1 g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-7diiMHQMsjiWrCQ1 g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-7diiMHQMsjiWrCQ1 .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-7diiMHQMsjiWrCQ1 .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-7diiMHQMsjiWrCQ1 .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-7diiMHQMsjiWrCQ1 .dashed-line{stroke-dasharray:3}#mermaid-svg-7diiMHQMsjiWrCQ1 #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-7diiMHQMsjiWrCQ1 #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-7diiMHQMsjiWrCQ1 #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-7diiMHQMsjiWrCQ1 #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-7diiMHQMsjiWrCQ1 #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-7diiMHQMsjiWrCQ1 #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-7diiMHQMsjiWrCQ1 #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-7diiMHQMsjiWrCQ1 #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-7diiMHQMsjiWrCQ1 .commit-id,#mermaid-svg-7diiMHQMsjiWrCQ1 .commit-msg,#mermaid-svg-7diiMHQMsjiWrCQ1 .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7diiMHQMsjiWrCQ1 .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7diiMHQMsjiWrCQ1 .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7diiMHQMsjiWrCQ1 g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7diiMHQMsjiWrCQ1 g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-7diiMHQMsjiWrCQ1 g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-7diiMHQMsjiWrCQ1 g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-7diiMHQMsjiWrCQ1 g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-7diiMHQMsjiWrCQ1 g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-7diiMHQMsjiWrCQ1 .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-7diiMHQMsjiWrCQ1 .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-7diiMHQMsjiWrCQ1 .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-7diiMHQMsjiWrCQ1 .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-7diiMHQMsjiWrCQ1 .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-7diiMHQMsjiWrCQ1 .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-7diiMHQMsjiWrCQ1 .edgeLabel text{fill:#333}#mermaid-svg-7diiMHQMsjiWrCQ1 .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7diiMHQMsjiWrCQ1 .node circle.state-start{fill:black;stroke:black}#mermaid-svg-7diiMHQMsjiWrCQ1 .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-7diiMHQMsjiWrCQ1 #statediagram-barbEnd{fill:#9370db}#mermaid-svg-7diiMHQMsjiWrCQ1 .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-7diiMHQMsjiWrCQ1 .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-7diiMHQMsjiWrCQ1 .statediagram-state .divider{stroke:#9370db}#mermaid-svg-7diiMHQMsjiWrCQ1 .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-7diiMHQMsjiWrCQ1 .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-7diiMHQMsjiWrCQ1 .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-7diiMHQMsjiWrCQ1 .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-7diiMHQMsjiWrCQ1 .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-7diiMHQMsjiWrCQ1 .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-7diiMHQMsjiWrCQ1 .note-edge{stroke-dasharray:5}#mermaid-svg-7diiMHQMsjiWrCQ1 .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-7diiMHQMsjiWrCQ1 .error-icon{fill:#522}#mermaid-svg-7diiMHQMsjiWrCQ1 .error-text{fill:#522;stroke:#522}#mermaid-svg-7diiMHQMsjiWrCQ1 .edge-thickness-normal{stroke-width:2px}#mermaid-svg-7diiMHQMsjiWrCQ1 .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-7diiMHQMsjiWrCQ1 .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-7diiMHQMsjiWrCQ1 .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-7diiMHQMsjiWrCQ1 .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-7diiMHQMsjiWrCQ1 .marker{fill:#333}#mermaid-svg-7diiMHQMsjiWrCQ1 .marker.cross{stroke:#333}
:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}</style>
<style>#mermaid-svg-7diiMHQMsjiWrCQ1 {
color: rgba(0, 0, 0, 0.75);
font: ;
}</style>
武當派
...
風清揚
矮老者
白仁甫
U
n
i
o
n
(
)
函
數
的
模
板
:
Union()函式的模板:
U n i o n ( ) 函 數 的 模 板 :
inline void Union ( int x, int y) { //inline優化
int t1 = Find ( x) , t2 = Find ( y) ; //尋找x的師父和y的師父
if ( t1 != t2) f[ t2] = t1; //y認x做師父,兩個集合合并成一個
return ;
}
關于并查集,還有一個關鍵的地方,就是 初始化
void init ( ) {
for ( int i = 1 ; i <= n; i++ )
f[ i] = i; //在沒有認師之前,都是自學的,自己就是自己的師父,即自己就是自己的根
return ;
}
下面是模板題 的引入:
P3367 【模板】并查集
題目描述
如題,現在有一個并查集,你需要完成合并和查詢操作,
輸入格式
第一行包含兩個整數
N
N
N ,
M
M
M ,表示共有
N
N
N 個元素和
M
M
M 個操作, 接下來
M
M
M 行,每行包含三個整數
Z
i
,
X
i
,
Y
i
Z_i,X_i,Y_i
Z i ? , X i ? , Y i ? , 當
Z
i
=
1
Z_i = 1
Z i ? = 1 時,將
X
i
X_i
X i ? 和
Y
i
Y_i
Y i ? 所在的集合合并, 當
Z
i
=
2
Z_i = 2
Z i ? = 2 時,輸出
X
i
X_i
X i ? 與
Y
i
Y_i
Y i ? 是否在同一個集合內,是的輸出
Y
Y
Y ;否則輸出
N
N
N ,
輸出格式
對于每一個
Z
i
=
2
Z_i = 2
Z i ? = 2 的操作,都有一行輸出,每行包含一個大寫字母,為
Y
Y
Y 或者
N
N
N ,
說明/提示
對于
30
%
30\%
3 0 % 的資料,
N
≤
10
,
M
≤
20
N≤10,M≤20
N ≤ 1 0 , M ≤ 2 0 ., 對于
70
%
70\%
7 0 % 的資料,
N
≤
100
,
M
≤
1
0
3
N≤100,M≤10^3
N ≤ 1 0 0 , M ≤ 1 0 3 , 對于
100
%
100\%
1 0 0 % 的資料,
1
≤
N
≤
1
0
4
,
1
≤
M
≤
2
×
1
0
5
1≤N≤10^4,1≤M≤2×10^5
1 ≤ N ≤ 1 0 4 , 1 ≤ M ≤ 2 × 1 0 5 ,
輸入樣例
4 7
2 1 2
1 1 2
2 1 2
1 3 4
2 1 4
1 2 3
2 1 4
輸出樣例
N
Y
N
Y
題目分析:模板題,套模板
C
o
d
e
Code
C o d e
#include <bits/stdc++.h>
using namespace std;
int n, m;
int f[ 100050 ] ;
void init ( ) { //初始化
for ( int i = 1 ; i <= n; i++ )
f[ i] = i;
}
inline int Find ( int x) { //找“根”
if ( f[ x] == x) return x;
else return f[ x] = Find ( f[ x] ) ;
}
inline void Union ( int x, int y) { //合并集合
int t1 = Find ( x) , t2 = Find ( y) ;
if ( t1 != t2) f[ t1] = t2;
}
inline void Check ( int x, int y) { //檢查條件
int t1 = Find ( x) , t2 = Find ( y) ;
if ( t1 == t2) puts ( "Y" ) ; //比printf還要快的函式,而且還會自動換行,但是只能參考 char 型別的變數
else puts ( "N" ) ; //更快,更靚,更強!!!
}
int main ( ) {
scanf ( "%d%d" , & n, & m) ;
init ( ) ;
while ( m-- ) {
int z, x, y;
scanf ( "%d%d%d" , & z, & x, & y) ;
if ( z == 1 ) Union ( x, y) ;
else Check ( x, y) ;
}
return 0 ; //完美結束
}
并查集的擴展域:
基本概念:
有些情況下,元素不只含有一個屬性,傳遞的關系也不只一種,因此我們可以將每個元素拆成多個元素,在合并的時候維護關系的傳遞性,通過擴展出來的屬性來維護傳遞性, 是不是聽起來很麻煩 ,但說白了就是把原來的集合擴大幾倍,然后在新的集合中建立關系,
P2024 [NOI2001]食物鏈
題目描述:
動物王國中有三類動物
A
,
B
,
C
A,B,C
A , B , C ,這三類動物的食物鏈構成了有趣的環形,
A
A
A 吃
B
B
B ,
B
B
B 吃
C
C
C ,
C
C
C 吃
A
A
A , 現有 N 個動物,以 1 - N 編號,每個動物都是 A,B,C 中的一種,但是我們并不知道它到底是哪一種, 有人用兩種說法對這 N 個動物所構成的食物鏈關系進行描述: ●第一種說法是 1 X Y,表示
X
X
X 和
Y
Y
Y 是同類, ●第二種說法是 2 X Y,表示
X
X
X 吃
Y
Y
Y , 此人對 N 個動物,用上述兩種說法,一句接一句地說出 K 句話,這 K 句話有的是真的,有的是假的, 當一句話滿足下列三條之一時,這句話就是假話,否則就是真話, 判斷假話的條件 ●當前的話與前面的某些真的話沖突,就是假話, ●當前的話中
X
X
X 或
Y
Y
Y 比
N
N
N 大,就是假話, ●當前的話表示
X
X
X 吃
X
X
X ,就是假話, 你的任務是根據給定的 N 和 K 句話,輸出假話 的總數,
輸入格式: 第一行兩個整數
N
,
K
N,K
N , K ,表示有
N
N
N 個動物,
K
K
K 句話, 第二行開始每行一句話(按照題目要求,見樣例),
輸出格式: 一行,一個整數,表示假話的總數,
輸入樣例:
100 7
1 101 1
2 1 2
2 2 3
2 3 3
1 1 3
2 3 1
1 5 5
輸出樣例:
3
提示:
1
≤
N
≤
5
?
1
0
4
1 ≤ N ≤ 5 ? 10^4
1 ≤ N ≤ 5 ? 1 0 4 ,
1
≤
K
≤
1
0
5
1 ≤ K ≤ 10^5
1 ≤ K ≤ 1 0 5 ,
決議: 這道題需要保存三種關系,分別是:同類,獵物,天敵 , 所以可以擴展并查集, 從
n
n
n 變成
3
×
n
3 × n
3 × n , ①用
x
x
x 表示
x
x
x 的同類, ②用
x
+
n
x + n
x + n 表示
x
x
x 的獵物, ③用
x
+
2
×
n
x + 2 × n
x + 2 × n 表示
x
x
x 的天敵, 假話 的判斷如題所示,即為所求 那么, 當
d
=
1
d=1
d = 1 且這句話是真話 時,
d
=
1
時
{
U
n
i
o
n
(
x
,
y
)
(
x
和
y
是
同
類
)
U
n
i
o
n
(
x
+
n
,
y
+
n
)
(
x
的
獵
物
和
y
的
獵
物
是
同
類
)
U
n
i
o
n
(
x
+
2
?
n
,
y
+
2
?
n
)
(
x
的
天
敵
和
y
的
天
敵
是
同
類
)
d = 1 時 \left\{ \begin{matrix} Union(x, y) (x和y是同類) \\ Union(x + n, y + n) (x的獵物和y的獵物是同類)\\ Union(x + 2 * n, y + 2 * n)(x的天敵和y的天敵是同類)\\ \end{matrix} \right.
d = 1 時 ? ? ? ? U n i o n ( x , y ) ( x 和 y 是 同 類 ) U n i o n ( x + n , y + n ) ( x 的 獵 物 和 y 的 獵 物 是 同 類 ) U n i o n ( x + 2 ? n , y + 2 ? n ) ( x 的 天 敵 和 y 的 天 敵 是 同 類 ) ? 當
d
=
2
d=2
d = 2 且這句話時真話 時,
d
=
2
時
{
U
n
i
o
n
(
x
,
y
+
2
?
n
)
(
x
是
y
的
天
敵
)
U
n
i
o
n
(
x
+
n
,
y
)
(
x
的
獵
物
是
y
)
U
n
i
o
n
(
x
+
2
?
n
,
y
+
n
)
(
x
的
天
敵
是
y
的
獵
物
)
d = 2 時 \left\{ \begin{matrix} Union(x, y + 2 * n)(x是y的天敵)\\ Union(x + n, y)(x的獵物是y)\\ Union(x + 2 * n, y + n)(x的天敵是y的獵物)\\ \end{matrix} \right.
d = 2 時 ? ? ? ? U n i o n ( x , y + 2 ? n ) ( x 是 y 的 天 敵 ) U n i o n ( x + n , y ) ( x 的 獵 物 是 y ) U n i o n ( x + 2 ? n , y + n ) ( x 的 天 敵 是 y 的 獵 物 ) ?
C
o
d
e
:
Code:
C o d e :
#include <bits/stdc++.h>
using namespace std;
int ans;
int n, k;
int f[ 150005 ] ;
void init ( ) { //擴展域的初始化
for ( int i = 1 ; i <= 3 * n; i++ ) {
f[ i] = i;
}
}
inline int Find ( int x) { //找根
if ( f[ x] == x) return x;
else return f[ x] = Find ( f[ x] ) ;
}
inline void Union ( int x, int y) { //合并集合
int t1 = Find ( x) , t2 = Find ( y) ;
if ( t1 != t2) f[ t2] = t1;
}
inline bool check1 ( int x, int y) { //判斷是否為同類
if ( Find ( x + n) == Find ( y) || Find ( x + 2 * n) == Find ( y) )
return true ;
else
return false ;
}
inline bool check2 ( int x, int y) { //判斷是否為獵物
if ( Find ( x) == Find ( y) || Find ( x + 2 * n) == Find ( y) )
return true ;
else
return false ;
}
int main ( ) {
scanf ( "%d%d" , & n, & k) ;
init ( ) ;
while ( k-- ) {
int d, x, y;
scanf ( "%d%d%d" , & d, & x, & y) ;
if ( x > n || y > n) { ans++ ; continue ; }
switch ( d) { //聽說比if快一點
case 1 :
if ( check1 ( x, y) ) { ans++ ; continue ; }
else {
Union ( x, y) ;
Union ( x + n, y + n) ;
Union ( x + 2 * n, y + 2 * n) ;
}
break ;
case 2 :
if ( check2 ( x, y) ) { ans++ ; continue ; }
else {
Union ( x, y + 2 * n) ;
Union ( x + n, y) ;
Union ( x + 2 * n, y + n) ;
}
break ;
}
}
return ! printf ( "%d" , ans) ; //又省了一行
}
完結 (本篇博客將會持續更新)