2018 4 2集訓 b 容斥 計數

2022-08-21 05:42:13 字數 771 閱讀 5872

有乙個長寬均為 n 的網格, 每個格仔的長寬均為 1. 除了最左下角的網

格外, 其他格仔中均有乙個半徑為 $\frac$ 的圓, 圓心在格仔的正中心. 現在你站

在最左下角的格仔的正中心, 求你能夠看到多少個圓, 視線不能夠穿過圓.

$n \leq 10^9,1 \leq r \leq 5*10^5$

加強版的儀仗隊......

首先,顯然座標不互質的一定看不到。

其次,對於乙個圓,如果它遮住了某個圓的一半以上,那麼沿被它遮住的圓與觀察點構成的直線對稱處一定有另乙個圓恰好遮住了被遮住的圓的對稱的另一半。

因此,乙個圓不被遮住的條件是圓心不被遮住。

考慮點到直線的距離公式,假設被擋住的圓是$(x,y)$,擋它的圓是$(a,b)$,那麼有$\frac \geq r^2$。

此處有乙個性質:若$x,y$互質,那麼一定存在$a,b$,滿足$a < x,b < y,|ay-bx|=1$。可以發現,此時一定是最近的。

於是只需要$x2+y2 < \frac$即可不被擋住。

於是,可以爆枚$x,y$的約數$d$,並暴力數出合法的$(x,y)$數目,容斥一下即可。

**:

#includeusing namespace std;

typedef long long ll;

const int n=1e6+9;

int n,r;

inline int read()

return ret;

}int main()

BZOJ 2839 集合計數 廣義容斥

在乙個 n 個元素集合中的所有子集中選擇若干個,且交集大小為 k 的方案數.按照之前的套路,令 f k 表示欽定交集大小為 k 其餘隨便選的方案數.令 g k 表示交集恰好為 k 的方案數.則有 f k sum binomg k 反演得 g k sum 1 binomf i 而 f k binom2...

BZOJ2839 集合計數 容斥 組合

題目描述 乙個有n個元素的集合有2 n個不同子集 包含空集 現在要在這2 n個集合中取出若干集合 至少乙個 使得它們的交集的元素個數為k,求取法的方案數,答案模1e9 7。上式對嗎?顯然是不對的,以為它不僅統計了交集為k的而且統計了交集為k以上的。所以我們要用容斥。設g i 為交集大於等於i的方案數...

bzoj 2839 集合計數 容斥原理

因為要在n個裡面選k個,所以我們先列舉選的是哪 k 個,方案數為 c k 確定選哪k個之後就需要算出集合交集正為好這 k 個的方案數,考慮用容斥原理。我們還剩下 n k 個元素,交集至少為 k 的方案數為 2 相當於在僅有剩下 n k 個元素的集合裡隨便選,最後再往每個集合裡塞進這 k 個元素。然後...