Snake Rana (容斥定理)

2021-09-23 15:29:34 字數 659 閱讀 1061

snake rana     gym - 101350g

題目大意:給定乙個矩陣,和矩陣中的一些點,求矩陣中不包含這些點的子矩陣的數量

容斥原理:並集 =  總情況 - 兩個集合相交的情況情況 + 三個集合相交的情況 - 四個集合相交的情況 +五個集合相交的情況 ……(依次類推)

#include #include using namespace std;

#define inf 1e9

const int maxn = 1e5+100;

struct p

a[maxn];//記錄點的座標

int main()

}long long res=minx*miny*(n-maxx+1)*(m-maxy+1);//求出交集,即橫座標在最小矩陣範圍上(minx)下(n-maxx+1)各取兩條線,有minx*(n-maxx+1)種情況;縱座標在最小矩陣範圍左(miny)右(m-maxy+1)各取兩條線,有miny*(m-maxy+1)種情況,兩者相乘即為總情況

if (cnt&1)//如果點的個數是奇數,就減去

ans-=res;

else//如果點的個數是偶數,就加上

ans+=res;

}printf("%lld\n",ans);

}}

Cheerleaders(容斥定理)

題意 在乙個m行n列的矩陣裡站k個拉拉隊員,問有多少種方法,四周邊界必須有乙個隊員.這裡用到組合數加容斥定理,將重複的刪除,第一行,最後一行,第一列,最後一列.用到位運算來模擬16種情況.這裡要吐槽一下,中英文輸入法,和case中c的大小寫,wrong了無數次,最後才發現,蛋疼.include in...

容斥定理專題

介紹 co prime hdu 4135 用位運算生成所有可能 include include using namespace std typedef long long ll const int n 1e3 5 ll a,b,n int num ll fac n void factor if tn...

士兵殺敵(容斥定理)

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述南將軍手下有n個士兵,分別編號1到n,這些士兵的殺敵數都是已知的。小工是南將軍手下的軍師,南將軍現在想知道第m號到第n號士兵的總殺敵數,請你幫助小工來回答南將軍吧。注意,南將軍可能會問很多次問題。輸入 只有一組測試資料 第一行是兩...