傳送門
有n
nn個年份,每個年份各有六個資訊,問有多少對年份恰好有k
kk個資訊相同
恰好,很熟悉的容斥字眼
因為我們對於恰好的方案,不好統計,因為我們可以確定的是哪些資訊相同,但對於那些規定不相同的資訊我們無法進行快速的判斷,所以就改為儲存至少有k
kk個相同的資訊
設f
if_i
fi表示恰好有i
ii個資訊相同的方案,g
ig_i
gi表示滿足至少有i
ii個資訊相同的年份
但直接計算g
gg,發現會原地tptp
tp,所以再換一種方式,g
gg裡的年份只要滿足i
ii個資訊相同就可以,這樣就會出現相同年份,但有j
jj個資訊相同(
j>i)
(j>i)
(j>i)
,如此,在g
gg中就會被統計到cji
c_j^i
cji次gi=
∑j=i
6fj∗
cj
ig_i=\sum_^6f_j*c_j^i
gi=j=
i∑6
fj∗
cji
對於哪些資訊相同,我們可以列舉狀態,1
11就表示這個位置的資訊相同,然後用雙雜湊來判斷是否滿足
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ll long long
#define m1 1000000007
#define m2 998244353
#define b1 137
#define b2 131
using
namespace std;
inline ll read()
while
(s>=
'0'&&s<=
'9')
return d*f;
}ll n=
read()
,k=read()
;ll s[
100005][
10],o[10
],p[10]
;ll c
(ll x,ll y)
struct hashh[
100005];
bool cmp (hash a,hash b)
ll hash()
return sum;
}int
main()
cout
}
P3298 SDOI2013 泉 雜湊 容斥
給定n個元素,每個元素有六個屬性,求這n個元素中恰好有k個屬性相同的元素對數 範圍 性質 1 le n le 10 6,1 le k le 6 恰好,說明需要容斥,每個元素有多個屬性,說明需要雜湊判斷 好,此題完結 先考慮如何容斥 按照正常想法,設 g i 表示恰好i個屬性相同的元素對數,設 f i...
洛谷P2434 SDOI 區間
解題思路 這道題就是簡單的模擬啊。不過愣是沒有模擬對,看來還需要加強 實現能力。先按照左端點從小到大排序,每次驗證當前區間左端點是否大於設定的右端點,如果大於,說明不相交,就輸出設定的左右端點,如果小於等於,說明有相交的部分,不斷更新右端點。include include include inclu...
洛谷P2486 SDOI2011 染色
輸入格式 輸出格式 對於每個詢問操作,輸出一行答案。輸入樣例 1 6 5 2 2 1 2 1 1 1 21 3 2 42 5 2 6q 3 5 c 2 1 1 q 3 5 c 5 1 2 q 3 5 輸出樣例 1 典型的樹鏈剖分 線段樹,線段樹維護 區間左右端點顏色 和 區間顏色數。注意 當 上傳或...