1. 程式人生 > >【容斥+閾值】CC-SEAARC Sereja and Arcs

【容斥+閾值】CC-SEAARC Sereja and Arcs

【題目】
原題地址
題意:給定數軸上n個點,每個點有一個顏色,任意兩個同色點可以作為直徑畫出一個圓,求圓周相交且異色的圓的個數。

【題目分析】
正難則反,反。。。反怎麼也這麼難。

【解題思路】
以下來自here
可以考慮求補集,因為總數比較容易得到:就是 i = 1

n ( a i 2 )

接下來有兩種情況: A A B B A B B A
前一種情況比較好處理,先求出每種顏色出現了多少次,這樣列舉
B l 時,我們可以很方便統計出前面所有和 B l 異色的圓的個數,再乘上右邊同色點出現次數就是它的貢獻。是 O ( n ) 的。

難點在於 A B B A 的情況,不妨採用閾值的思想,設閾值為 s ,所有出現次數大於等於 s 的數為集合 B i g ,小於的為集合 S m a l l

接下來分類討論,設四點位置為 l , L , R , r ,顏色出現次數為 a i ,顏色 x 在第 i 位的前綴出現次數 p r e x , i

A S m a l l , B S m a l l ,,因為點數出現得很少,如果我們列舉一個 r ,再列舉 l ,由於掃描中已經滿足所有 R < r ,那麼只需要求出 l < L 的方案數,我們用 B I T 維護即可。這部分的複雜度是 O ( n s l o g n ) 的。

A B i g , B S m a l l ,那麼我們列舉 L , R 以及 A 的種類,貢獻實際上就是 i = 2 a B j = 1 i 1 p r e A , j ( a A p r e A , i ) ,等價於 i = 2 a B ( a A p r e A , i ) j = 1 i 1 p r e A , j ,在預處理過 j = 1 i 1 p r e x , j 後我們就不用列舉右端點了,複雜度是 O ( n 2 s ) 的。

剩下兩種情況是 A S m a l l , B B i g A B i g , B B i g ,這兩種情況實際上可以一起考慮。
我們列舉

相關推薦

+CC-SEAARC Sereja and Arcs

【題目】 原題地址 題意:給定數軸上n個點,每個點有一個顏色,任意兩個同色點可以作為直徑畫出一個圓,求圓周相交且異色的圓的個數。 【題目分析】 正難則反,反。。。反怎麼也這麼難。 【解題思路】 以下來自here 可以考慮求補集,因為總數比較容易得到:就是

3198: [Sdoi2013]spring原理+hash

容斥 continue int ash spa ret ont 相等 logs 容斥是ans= 至少k位置相等對數C(k,k)-至少k+1位置相等對數C(k+1,k)+至少k+2位置相等對數*C(k+2,k) …… 然後對數的話2^6枚舉狀態然後用hash表統計即可 至於為

hdu 4135 Co-prime 定理應用

題目連結:http://acm.hdu.edu.cn/showproblem.php?pid=4135 容斥定理求一個區間內與n互素的數有幾個; 和模板差不多,只是區間 [1,R] 變成 [L,R],所以可以求出 [1,L] 和 [1,R] 的互素的數的shu'lian再相減,注意

+組合數Massage @2018acm徐州邀請賽 E

JSZKC  feels  so  bored  in  the  classroom  that  he  wants  to  send  massages  to  his  girl  friend. However, he can’t move to his girl friend by himse

POJ3904 Sky Code原理

define 原理 tail n-1 pop blog soft ace tdi 題目鏈接: http://poj.org/problem?id=3904 題目大意: 給你N個整數。從這N個數中選擇4個數,使得這四個數的公約數為1。求滿足條件的 四元組個數。

POJ2773 Happy 2006原理

sca problem article 容斥原理 lan /tmp .org family pop 題目鏈接: http://poj.org/problem?id=2773 題目大意: 給你兩個整數N和K。找到第k個與N互素的數(互素的數從小到大排

hdu4135 Co-prime原理

for ott lines mod color tro ace co-prime scrip Co-prime Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other

Codeforces 451E Devu and Flowers原理+盧卡斯定理

d+ 題意 while markdown post mark 色相 esp printf 題意:每個箱子裏有\( f[i] \)種顏色相同的花,現在要取出\( s \)朵花,問一共有多少種顏色組合 首先枚舉\( 2^n \)種不滿足條件的情況,對於一個不被滿足的盒子,我們至

bzoj 4517: [Sdoi2016]排列計數原理+組合數學

沒有 原理 getchar() display del d+ getchar esp const 第一個一眼就A的容斥題! 這個顯然是容斥的經典問題------錯排,首先考慮沒有固定的情況,設\( D_n \)為\( n \)個數字的錯排方案數。 \[ D_n=n!-\su

BZOJ3930 [CQOI2015]選數

復雜度 pow blog 然而 兩個 小z 很快 一行 lock 題目 我們知道,從區間[L,H](L和H為整數)中選取N個整數,總共有(H-L+1)^N種方案。小z很好奇這樣選出的數的最大公約數的規律,他決定對每種方案選出的N個整數都求一次最大公約數,以便進一步研究。然而

BZOJ4036 [HAOI2015]按位或 minmax + 期望 + FWT

align int 運算 () pre http string inline 幾何 題目鏈接 BZOJ4036 題解 好套路的題啊,,, 我們要求的,實際上是一個集合\(n\)個\(1\)中最晚出現的\(1\)的期望時間 顯然\(minmax\)容斥 \[E(max\{S\

牛客小白月賽5——A

無關(relationship) https://www.nowcoder.com/acm/contest/135/A 題目描述   若一個集合A內所有的元素都不是正整數N的因數,則稱N與集合A無關。   給出一個含有k個元素的集合A={a1,a2,a3,...,

2018.10.18每天認真做一道數學(數論)題之BZOJ 1042 [HAOI2008] 硬幣購物揹包DP原理

對於每個詢問,答案顯然為:S所有超過數量限制的方案數- c [ 1

Cheerleaders

Cheerleaders  UVA - 11806  題目傳送門 題目大意:給你三個整數n,m,k,代表有一個n行m列的場地,共有k個人,需保證在最外圍的一圈的每行每列都必須要有一個人,若這個人在對角上,則可以當做他所在的行列都已經滿足條件,問共有幾種排布方法。

UVA - 11806 Cheerleaders

題目傳送門 題目描述:t組測試資料,每組資料輸入三個數M,N,K;表示有一個大小為M*N的棋盤和k枚棋子,2 ≤ M, N ≤ 20 , K ≤ 500. 將K枚棋子放入棋盤中,每個格子最多隻能放一枚棋子,要求最外面的4條邊每一條邊上至少有一個棋子,若棋子恰巧在兩條邊的拐

hdu 1695 GCD 原理

題目連結:http://acm.hdu.edu.cn/showproblem.php?pid=1695 題目大意:求(1,b)區間和(1,d)區間裡面gcd(x, y) = k的數的對數(1<=x<=b , 1<= y <= d)。 思路:讓x,y都除上k,就是求gc

原理DPAGC004D ~K Perm Counting

分析: 比較簡單(板)的容斥題。 設枚舉出i個非法位置的方案數為fif_ifi​ 答案就是∑i=0i≤n(−1)ifi∗(n−i)!\sum_{i=0}^{i\leq n}(-1)^if_i*(n-i)

bzoj 3365: [Usaco2004 Feb]Distance Statistics 路程統計原理+點分治

const pac con 分治 原理 std usaco while ati 統計在一個root下的兩個子樹,每個子樹都和前面的運算一下再加進去對於這種需要排序的運算很麻煩,所以考慮先不去同子樹內點對的算出合法點對個數,然後減去每一棵子樹內的合法點對(它們實際上是不合法的

初識OpenCV 練習筆記整理--學習九。影象

# 影象閾值 """ 目標: 本節將學習到簡單閾值,自適應閾值,Otsu's二值化等。 將要學習的函式有CV2.threshold, cv2.adaptiveThreshold等。 """ # 第一小節 簡單閾值 2018/11/05 10:

11806 Cheerleaders

題目傳送門 題目描述:t組測試資料,每組資料輸入三個數M,N,K;表示有一個大小為M*N的棋盤和k枚棋子,2 ≤ M, N ≤ 20 , K ≤ 500.將K枚棋子放入棋盤中,每個格子最多隻能放一枚棋子,要求最外面的4條邊每一條邊上至少有一個棋子,若棋子恰巧在兩條邊的拐角處