備戰藍橋杯決賽 堅持第六天!!!

2021-08-20 02:18:08 字數 2151 閱讀 5966

今天的學習時間是從晚6點開始,一道簡單的題目,消耗了我三個半小時,其實是先看了一道關於hash的題目,沒有看懂,就用看了一道題目,正好碰到了簡單的並查集。雖然今天也是很苦逼,但是心情似乎沒有那麼差了,也許是我來學習之前就想明白了,不想說自己生活上的事情,我們單單對於演算法來講,千萬不要因為你沒有ac一道題目,沒有看懂一道題目的解析而感到沮喪,傷心。。更不能把這種情緒帶到生活的其他方面。反而我們可以通過其他事情,來緩和我們對於沒有ac的沮喪心情。

題目:問題描述

w星球的乙個種植園,被分成 m * n 個小格仔(東西方向m行,南北方向n列)。每個格仔裡種了一株合根植物。

這種植物有個特點,它的根可能會沿著南北或東西方向伸展,從而與另乙個格仔的植物合成為一體。

如果我們告訴你哪些小格仔間出現了連根現象,你能說出這個園中一共有多少株合根植物嗎?

輸入格式

第一行,兩個整數m,n,用空格分開,表示格仔的行數、列數(1樣例輸入

5 4 16

2 3

1 5

5 9

4 8

7 8

9 10

10 11

11 12

10 14

12 16

14 18

17 18

15 19

19 20

9 13

13 17

樣例輸出

5樣例說明

其合根情況參考下圖

const int max=1000001;//陣列範圍一定要明確

int parent[max];

int rank[max];

int find(int p)

return p;

}void uniono(int p,int q)

if(rank[pid]>rank[qid])else if(rank[pid]>m>>n;

int k=m*n;

for(int i=1;i<=k;i++)

int x,y,l;

cin>>l;

for(int i=0;i>x>>y;

uniono(x,y);

} int *p = new int[k+1];

for(int i=1;i<=k;i++)

int s=0;

for(int i=1;i<=k;i++)

} cout並查集的構建,關鍵在於需要設定兩個方法:uniono(合併)與find(查詢)

原始的簡單方法:

int id[10];//構建乙個id陣列,用於表示節點間的關係。如:陣列奇數元素定義為0,偶數元素定義為1,則表示奇數元素節點互相相連,偶數元素節點互相相連

int find(int p)

void uniono(int p,int q)else

}採用父節點的思想,所有連線節點屬於乙個父節點

int parent[10];

int find(int p)

return p;

}void uniono(int p,int q)

parent[pid]=qid;

}

基於rank的優化

int parent[10];

int rank[10];

int find(int p)

return p;

}void uniono(int p,int q)

if(rank[pid]>rank[qid])else if(rank[pid]

parent[pid]=qid;

}else

}

路徑壓縮:

int parent[10];

int rank[10];

int find(int p)

return p;

}void uniono(int p,int q)

if(rank[pid]>rank[qid])else if(rank[pid]

}

備戰藍橋杯決賽 堅持第七天!!!

今天的目標是刷真題,看看國賽題目的難度。四道題目,其中三道根本看不懂,就算是看其他人寫的 也不是很明白,而且這四道題目是b組題,想想我那國賽a組題,那難度比這還要高乙個檔次啊!內心是崩潰的,也許我這兩周小突破,不足以讓我提公升很多,還剩最後七天,我更應該在基礎的知識點還有心態上下功夫,如果像現在這個...

第六天 風氣

第六天 風氣 答 人有了,就得定規矩,否則就是一幫烏合之眾,而不是團隊。1必須朝九晚五。嚴格控制員工手裡有辦公室鑰匙。下班必須準時鎖門,員工準時離開。斷公司外網。要加班必須上級主管簽字,更不准在辦公室留宿,洗澡。這一條很重要,不要讓程式設計師活得像個浪子,精神恍惚,口中神叨,鬍子拉碴,這都是浮動工作...

開課第六天

今天是開課第六天,老師上午沒有講課,講了一上午的題,下午又講了新知識,如下 1 順序結構 從上到下順序進行。2 分支結構 if boolean表示式 else switch 值 case 值 break case 值 break switch 執行流程,switch的值和case的值一一比較,如果一...