原題傳送門
寫在題前:
剛開始怎麼看也不像是並差集,以為就是單純的邏輯題(萬物皆邏輯。嗯,真香),後來做不出來,仔細想想才發現這是並差集,隱藏的好深啊,其實理解之後就是乙個簡單的並差集,看**就知道。
解題思路:
前面(1 2、3 4)和1 4其實是重合的,有沒有這個資料都一樣,因此,1 4並不用計算在裡面。
換句話說,就是用並差集判斷有多少個不重合的區間就行了。
注意使用先開後閉區間。
寫在題後:
ac**:
# include
# include
# include
# include
# include
# include
# include
# include
using namespace std;
const
int maxn =
1e7+10;
const
int mod =
1e9+7;
typedef
long
long ll;
int id[maxn]
;int
fin(
int x)
void
meg(
int x,
int y)
bool same
(int x,
int y)
ll pow
(ll a, ll b)
b = b /2;
a =(a * a)
% mod;
}return sum % mod;
}int
main()
int num =0;
while
(m--)}
cout <<
pow(
26, n - num)
% mod << endl;
}return0;
}
杭電1272 並差集
原題傳送門,並差集模板詳解鏈結,大佬並差集詳解鏈結。解題思路 1 判斷是否有環 2 判斷所有的房子是否連在一起。第一點可以通過same函式判斷,在輸入的時候就可以判斷 第二點可以先通過vis陣列標記,然後遍歷vis陣列,當vis i 1並且id i i的時候,說明i是最上面的父親。再符合條件的情況下...
杭電1198 並差集
原題傳送門,並差集模板函式簡單介紹,大佬的並差集詳解。寫在題前 因為最近學的並差集,因此專門搜的杭電並差集,也就是說,在看這個題之前我已經知道他是用並差集來做的。之前我碰到的題沒有涉及到二維這種情況,其實了解了思路還是很好做的,就是過程有點繁瑣,細節要注意。解題步驟 1 遍歷每個田地,對於每個田地,...
杭電1598 並差集
寫在題前 解題思路 將輸入的資料,按照速度的大小 從小到大 排序 依次將資料用meg函式建立關係,判斷查詢的資料是否符合 第一次符合條件的速度減去剛開始的速度就是答案。具體見 寫在題後 ac include include include include include include includ...