題解
正規解法是 dfs + 並查集,首先用 dfs 將其所有的情況列舉出來,再用並查集來判斷是否在乙個連通塊上。
許多小夥伴計算的答案為76,主要是判斷連通塊這方面有問題,倘若不用並查集,直接列舉一條邊是否和其餘剩下的邊相連,是就成立,不是就可以直接退出了,但是有乙個問題是例如兩個連通塊的時候你上述的判斷也是成立的,但是不處於同乙個連通塊中,所以不應該加上去。
1 #include 2 #include 3using
namespace
std;45
const
int maxn = 25;6
int n = 7, ans = 0
, path[maxn], f[maxn][maxn], father[maxn];78
//查詢 x 的祖先節點
9int find(int
x)10
14return
father[x];15}
1617
void dfs(int u, int p, int
m)18
24//
集合合併
25for (int i = 0; i < m; ++i) 32}
33}34//
查詢最終是否為乙個集合
35bool flag = false;36
for (int i = 0; i < m - 1; ++i) 41}
4243
if (!flag)
46return;47
}48for (int i = p; i <= n; ++i) 52}
5354
intmain()
5570 cout << ans <
71return0;
72 }
但是當時還是沒有做出來/(ㄒoㄒ)/~~哭鼻子。
藍橋杯 七段碼
小藍要用七段碼數碼管來表示一種特殊的文字。上圖給出了七段碼數碼管的乙個圖示,數碼管中一共有 7 段可以發光的二極體,分別標記為 a,b,c,d,e,f,g。小藍要選擇一部分二極體 至少要有乙個 發光來表達字元。在設計字元的表達時,要求所有發光的二極體是連成一片的。例如 b 發光,其他二極體不發光可以...
藍橋杯 七段碼
題目描述 小藍要用七段碼數碼管來表示一種特殊的文字。上圖給出了七段碼數碼管的乙個圖示,數碼管中一共有 7 段可以發光的二 極管,分別標記為 a,b,c,d,e,f,g。小藍要選擇一部分二極體 至少要有乙個 發光來表達字元。在設計字元 的表達時,要求所有發光的二極體是連成一片的。例如 b 發光,其他二...
藍橋杯 七段碼 並查集
今天學到了乙個新的演算法 並查集 不得不說 太好用惹!嗷!所以先來復盤一下並查集的思路 我在網上找了乙個很生動的解釋,講的非常好,又能聽懂知識點,又能記得牢,附上原博連線 這是個鏈結 他是以武林為例講的並查集,並查集的作用呢,就是看乙個圖里的連通分支有幾個,如果是乙個,就代表連通圖 如果是兩個,就要...