yts1999 T2 容斥原理

2021-08-28 06:06:57 字數 1906 閱讀 6568

題意:給定 l1,

r1,l

2,r2

,l3,

r3,l

4,r4

l1, r1, l2, r2, l3, r3, l4, r4

l1,r1,

l2,r

2,l3

,r3,

l4,r

4,試求滿足 li≤

xi≤r

il_i ≤ x_i ≤ r_i

li​≤xi

​≤ri

​ 且 x1≠

x2,x

2≠x3

,x3≠

x4,x

4≠x1

x1 \ne x2, x2 \ne x3, x3 \ne x4, x4 \ne x1

x1̸​=x

2,x2

̸​=x

3,x3

̸​=x

4,x4

̸​=x

1的四元組 (x1

,x2,

x3,x

4)

(x1, x2, x3, x4)

(x1,x2

,x3,

x4) 的數量對 109

+7

10^9 + 7

109+

7 取模的結果。

很容易看出是容斥原理,可是該怎麼容斥呢?考場上沒想出來,我還是太弱了。

定義s um

i=ri

−li+

1sum_i=r_i-l_i+1

sumi​=

ri​−

li​+

1,即為每個區間的長度。首先,對於沒有限制的情況,根據乘法原理,顯然有ans

=∏i=

14su

mi

ans=\prod_^4sum_i

ans=∏i

=14​

sumi

​種四元組。

容斥原理奇加偶減,即若為奇數個數相同的就讓ans

ansan

s加,否則減。

比如像1123

1123

1123

這樣有兩個相同的情況,因為是偶數個數相同,所以要讓ans減,我們找第乙個區間和第二個區間的交集,ans

ansan

s就應該減去這個交集的長度∗su

m3和s

um

4*sum_3和sum_4

∗sum3​

和sum

4​。同樣對於第二第三個區間的交,第三第四個區間的交,第四第乙個區間的交也做同樣的操作,對於其他的也如此。

我們發現有特殊情況,像1122

,1221

1122,1221

1122,1

221這樣兩種情況,在之前的一步被減去了兩次,對於類似1122

1122

1122

的這種情況,我們要讓ans

ansan

s加上第一第二個區間交的長度∗

*∗第三第四個區間交的長度。特殊情況特殊考慮,所以即使相同的數為偶數,也是要讓ans

ansan

s加。對於類似1221

1221

1221

的這種情況也類似。

對於1111

1111

1111

這樣的情況,我們發現它在特殊情況中被加了2次,所以應該減去三倍的區間交的長度。

#include

#define ll long long

using namespace std;

const

int mod=

1e9+7;

ll l[5]

,r[5];

ll t,sum[5]

;int

main()

return0;

}

grub1 99 編譯安裝

2 編譯 解壓 grub 1.99.tar.gz 然後進入grub 1.99,配置 configure prefix opt grub2 編譯 make 安裝 make install 3 安裝 進入 opt grub2 sbin,執行下面命令 grub install root directory...

NYOJ199無線網覆蓋

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 我們的樂樂同學對於網路可算得上是情有獨鍾,他有乙個計畫,那就是用無線網覆蓋鄭州大學。現在學校給了他乙個機會,因此他要購買很多的無線路由。現在他正在部署某條大道的網路,而學校只允許把他的無線路由器放在路的正中間。我們預設這條大道是...

新iPhone何以只售199美元

據pcmagzine 報道,蘋果公司在wwdc上發布其3g版iphone的訊息在大多數人的預料之中,但是其低廉的售價卻的確出乎很多人的意料。據悉此次發布的3g版iphone中,8gb版本的售價僅為199美元,而16gb版本的售價也只有299美元。為什麼一部有如此高記憶體,配備有3g gps技術,擁有...