題意:給定 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技術,擁有...