五校聯考模擬賽Day2T2矩陣 容斥原理

2022-04-30 04:30:07 字數 1297 閱讀 2300

$n * m$的網格,對其進行黑白染色,問每一行每一列至少有乙個黑格仔的方案數。

考場上只會$n^3$的dp,還和指數級列舉乙個分qwq

設$f[i][j]$表示到了第$i$行,已經有$j$列被染黑,然後暴力轉移上一行有幾個黑格仔

正解是容斥

首先固定好列,也就是保證每一列都有乙個黑格仔

這樣的方案是$(2^n - 1) ^m$

然後容斥行

組合數暴力算即可

#include#include

#include

#include

#include

#include

#include

#include

#include

#define pair pair#define mp(x, y) make_pair(x, y)

#define fi first

#define se second

#define int long long

#define ll long long

//#define getchar() (p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1<<22, stdin), p1 == p2) ? eof : *p1++)

//char buf[(1 << 22)], *p1 = buf, *p2 = buf;

using

namespace

std;

const

int maxn = 1e6 + 10, inf = 1e9 + 10, mod = 1e9 + 7

;const

double eps = 1e-9

;inline

intread()

while(c >= '

0' && c <= '

9') x = x * 10 + c - '

0', c =getchar();

return x *f;

}int

n, m;

ll fac[maxn], ifac[maxn], po2[maxn];

ll fastpow(

int a, int

p)

return

base %mod;

}ll c(

int n, int

m) main()

嵊州普及Day2T2

題意 對於n個數的數列,進行排列,求第m個大於此數列的數列。思路 查詢後2個是否逆序,若是,將後3個遞迴。如此運算,找後面大於此數中最小數交換,然後將後面數列順序排列。相對簡單。見 include include include include include using namespace std...

九校聯考DAY2T2 中國剩餘定理,積性篩

整除符號為 d n 在計算機語言中可被描述為 n d 0。現有一算式 n xm x m x,給定 n,m,求 1,n 以內 x 解的個數。解可能很大,輸出取模 998244353。其中 n 的給定方式是由 c 個不超過 t 的質數的乘積給出的,c 和 t 的範圍會在資料範圍中給出。第一行乙個 id ...

五校聯考3day2 A

這題考場考慮不太全 但相比於60,其它90分的人,還是很全的 long long我是開了的,然後後面的特判我也是加了的,可是竟然打錯了?其實這題不需要打的像我這樣麻煩 設a i 表示i點還需連線的邊數 ans表示sigma a i max表示max a i 如果max ans 2,就說明全部連項那個...