LightOJ 1005 Rooks(組合數學)

2021-09-07 23:09:37 字數 425 閱讀 7654

題意:在乙個n*n的棋盤上放m個車,使得各個車之間不相互攻擊。有多少種放法?

思路:先在n行中選出m行,c(n,m),再在n列中選出m列隨便放a(n,m),答案為c(n,m)*a(n,m)。

#include #include #include #define int64 long long

using namespace std;

int n,m,num=0,c;

int64 a(int n,int m)

int64 c(int n,int m)

return ans; }

int main()

{ for(scanf("%d",&c);c--;)

{scanf("%d%d",&n,&m);

int64 ans;

if(n

LightOj 1188 樹狀陣列

題意 給乙個數列 len 1e5 數列裡的數 num 1e5 現有q次詢問 1e5 詢問某個區間的不同的數有多少個。思路 明顯的樹狀陣列統計,自己寫的時候不太清楚那個樹狀陣列到底應該怎麼維護。有點想用掃瞄線類似的思想,然後離線所有詢問這樣去維護,甚至想到了按照右區間排序。但是到底樹狀陣列應該怎樣維護...

題解 LightOJ1067 逆元

題目鏈結 費小馬定理求逆元 a b 1mod m 只要 m 是乙個素數,而且 b 不是 m 的倍數,就可以用乙個逆元整數 b 通過 a b a b mod m 來以乘換除 費馬小定理說,對於素數 m 任意不是 m 的倍數的 b,都有 b m 1 1 mod m 於是可以拆成 b b m 2 1 mo...

LightOJ 1176題目解答

lightoj 1176題目解答 一共有6種碼號的衣服,每個人可以接受2種中的任意乙個,每個衣服有n種顏色 本題與顏色無關,其實告訴你有n種顏色就是告訴你每個尺碼有n件衣服 一共有m個人,問這m個人能否都拿到適合自己的衣服。可用最大流求解,人為左邊的點,衣服為右邊的點,每個人與適合自己的衣服之間建邊...