G Snake Rana 容斥原理

2022-08-19 20:21:09 字數 877 閱讀 4338

題意: 統計網格矩形的子矩形數目,其中要求每個格仔不能包含一些特殊格仔(特殊格仔小於20)

思路:統計格仔是個老問題,sum=n*(n+1)/2*m*(m+1)/2 這裡要求一些格仔不合法,顯然用總答案減去非法答案更容易計算。

計算非法答案時k<=20是乙個提示算是,我們可以直接列舉包含的非法格仔數目,然後再容斥就好。

**:#includeusing namespace std;

#define mem(a,b) memset(a,b,sizeof(a))

#define pb push_back

#define mp make_pair

#define x first

#define y second

#define bug puts("bug");

typedef long long ll;

typedef pairpii;

const double pi=acos(-1);

pii p[30];

int tmp[10];

ll sum;

ll t,a,b,n,m,k;

void dfs(int id,int pp,ll lux,ll luy,ll rdx,ll rdy){

if(pp==1) sum-=lux*luy*(n-rdx+1)*(m-rdy+1);

else sum+=lux*luy*(n-rdx+1)*(m-rdy+1);

for(int i=id+1;i>t;

while(t--){

cin>>n>>m>>k;

sum=m*(m+1)/2*n*(n+1)/2;

for(int i=0;i>p[i].x>>p[i].y;

for(int i=0;i

容斥原理 數論

兩個集合的容斥關係公式 a b a b a b a b 重合的部分 三個集合的容斥關係公式 a b c a b c a b b c c a a b c 最後可以推廣到n個集合,集合裡的元素為奇數則加,偶數減 hdu 4135 很簡單,直接求出所有的質因子,然後容斥解決 author crystal ...

容斥原理,反演

大概知道為什麼自己水平比較渣啦。一開始只會反演,然後被容斥驚豔到。然後寫了一段時間容斥,反演忘光光。所以融會貫通真的很難。多校的三道題,當時是用反演做的。事實上以前就知道容斥跟莫比烏斯函式值的關係,然後熟練掌握 然後一段時間沒用就忘了哈。簡單來說就是,求乙個數和乙個集合中的數互質的個數,把集合中乙個...

關於容斥原理

容斥原理大概是這樣的,以長方體體積並為例,我們需要用容斥原理容斥出若干個長方體體積的並.首先,我們將每個長方體標號為1 n,那麼這些長方體的取捨顯然可以表示為乙個二進位制的數字s.設f s 表示長方體取捨狀態為s時,長方體的體積並,於是我們可以知道f 111111 有n個1 就是我們最終的所求.好,...