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號士兵的總殺敵數,請你幫助小工來回答南將軍吧。注意,南將軍可能會問很多次問題。輸入 只有一組測試資料 第一行是兩...