51NOD 2 3 5 7的倍數(容斥原理)

2022-02-27 20:06:30 字數 2059 閱讀 4257

似乎最近沒怎麼做容斥原理啊,來複習一發概念。

容斥原理公式:

一般做法都是先搞乙個式子出來,再列舉所有子集,用式子來確定符號和子集的關係。小學生容斥。。

1/*2

━━━━━┒ギリギリ♂ eye!

3┓┏┓┏┓┃キリキリ♂ mind!

4┛┗┛┗┛┃\○/

5┓┏┓┏┓┃ /

6┛┗┛┗┛┃ノ)

7┓┏┓┏┓┃

8┛┗┛┗┛┃

9┓┏┓┏┓┃

10┛┗┛┗┛┃

11┓┏┓┏┓┃

12┛┗┛┗┛┃

13┓┏┓┏┓┃

14┃┃┃┃┃┃

15┻┻┻┻┻┻

16*/

17 #include 18 #include 19 #include 20 #include 21 #include 22 #include 23 #include 24 #include 25 #include 26 #include 27 #include 28 #include 29 #include 30 #include 31 #include 32 #include

33 #include 34 #include 35

using

namespace

std;

36#define fr first

37#define sc second

38#define cl clear

39#define bug puts("here!!!")

40#define w(a) while(a--)

41#define pb(a) push_back(a)

42#define rint(a) scanf("%d", &a)

43#define rll(a) scanf("%i64d", &a)

44#define rs(a) scanf("%s", a)

45#define cin(a) cin >> a

46#define fread() freopen("in", "r", stdin)

47#define fwrite() freopen("out", "w", stdout)

48#define rep(i, len) for(int i = 0; i < (len); i++)

49#define for(i, a, len) for(int i = (a); i < (len); i++)

50#define cls(a) memset((a), 0, sizeof(a))

51#define clr(a, x) memset((a), (x), sizeof(a))

52#define full(a) memset((a), 0x7f7f7f, sizeof(a))

53#define lrt rt << 1

54#define rrt rt << 1 | 1

55#define pi 3.14159265359

56#define rt return

57#define lowbit(x) x & (-x)

58#define onecnt(x) __builtin_popcount(x)

59 typedef long

long

ll;60 typedef long

double

ld;61 typedef unsigned long

long

ull;

62 typedef pairpii;

63 typedef pairpsi;

64 typedef pairpll;

65 typedef mapmsi;

66 typedef vectorvi;

67 typedef vectorvl;

68 typedef vectorvvl;

69 typedef vectorvb;

7071

ll ret;

72ll n;

7374

intmain()

99 rt 0

;100 }

51NOD 1103 N的倍數 容斥原理

乙個長度為n的陣列a,從a中選出若干個數,使得這些數的和是n的倍數。例如 n 8,陣列a包括 2 5 6 3 18 7 11 19,可以選2 6,因為2 6 8,是8的倍數。收起第1行 1個數n,n為陣列的長度,同時也是要求的倍數。2 n 50000 第2 n 1行 陣列a的元素。0 a i 10 ...

容斥 51nod 1407 與與與與

這道題的方向不是o n o n o n 而是 o v o v o v 我們發現答案為 全集 an d mathrm and 有至少 1 11 位 0 00 的 an d mathrm and 後有至少 2 22 位 0 00 的 因此我們可以根據乙個數字 and mathrm and 操作後的位數來...

51nod1407 與與與與 容斥 DP

有n個整數,問從他們中取出若干個數字相與之後結果是0的有多少組。答案比較大,輸出對於 1,000,000,007 1e9 7 取模後的結果。n 1 06ai 106 n le10 6 a i le10 6 n 106a i 1 06很容易想到設f i 表示至少i個位置不為0的答案,我們容斥一下就能得...