upc 數學難題 列舉 容斥

2022-06-18 14:24:09 字數 2329 閱讀 7522

時間限制: 1 sec 記憶體限制: 128 mb

題目描述

bemy為了不讓學佛fife過度驕傲,以保證每乙個學水都能不被他影響,自信地不斷地進步,給fife乙個有挑戰性的數學題。

因為fife不想讓妹子maze等得太久,決定把這道題交給你。

題目是這樣的:有乙個表示式(b+e+s+s+i+e)(g+o+e+s)(m+o+o)

其中b,e,s,i,g,o,m為七個變數(注意「o」是變數不是0)。

對於每個變數,bemy會告訴fife這個變數所代表的各個可能值。

bemy想問問fife這樣乙個問題:原表示式有多少種可能的情況,使表示式的值為偶數。(只要有乙個變數的值不同,即為一種情況)

輸入第一行輸入包含乙個整數n。

下乙個n 行每行包含乙個變數名稱和乙個這個變數可以使用的值。

注:每個變數在整張表中不會出現多於20 次。

同乙個變數不存在兩個相同的值。所有給出的值都在-300……300 之間。

輸出列印出乙個整數,表示有多少種方法使表示式的值為乙個偶數。

樣例輸入

10

b 2e 5

s 7i 10

o 16

m 19

b 3g 1

i 9m 2

樣例輸出
6
思路:

題目要求表示式值為偶數,其實我們只要保證有乙個括號內的和是偶數,就能確定整個表示式的值是偶數。

先看第乙個括號內的數,b+i+s+s+e+e,因為偶數 + 偶數 = 偶數,又因為s+s+e+e 是偶數,所以我們只要確定 b + i 是不是偶數,就可以判斷這個括號內的數字之和是不是偶數,也就是說這個括號和的奇偶是由 b + i 決定的,同理,第二個括號由 g + o + e + s 決定,第三個括號由 m 決定。

接下來我們把第乙個括號的和為偶數的情況設為 a 類;

第二個括號的和為偶數的情況設為 b 類;

第三個括號的和為偶數的情況設為 c 類;

根據容斥原理得:

(a∪b∪c = a+b+c - a∩b - b∩c - c∩a + a∩b∩c)

( 文字翻譯為a類和b類和c類元素個數總和= a類元素個數+ b類元素個數+c類元素個數—既是a類又是b類的元素個數—既是a類又是c類的元素個數—既是b類又是c類的元素個數+既是a類又是b類而且是c類的元素個數。)

此式結果就是我們想要的答案

下面是**:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define inf 0x3f3f3f3f

using

namespace std;

typedef

long

long ll;

const

int n=

2e5+10;

char s[7]

=;vector<

int>v[

200]

;int n,m,fa,fb,fc,oa,ob,oc;

//後 6個變數分別代表第

一、二、三個括號內所有的方案數

char ch;

//與第

一、二、三括號內數字和為偶數的方案數

intmain()

fa=v[s[0]

].size()

*v[s[1]

].size()

; fb=v[s[2]

].size()

*v[s[3]

].size()

*v[s[4]

].size()

*v[s[5]

].size()

; fc=v[s[6]

].size()

;for

(int i=

0;i].

size()

;i++)}

for(

int i=

0;i].

size()

;i++)}

}}for(

int i=

0;i].

size()

;i++

) ll ans=oa*fb*fc+ob*fa*fc+oc*fa*fb-oa*ob*fc-oa*oc*fb-ob*oc*fa+oa*ob*oc;

//(a∪b∪c = a+b+c - a∩b - b∩c - c∩a + a∩b∩c)

cout

}

hdu 4135,數學 容斥

題意 求 a,b 區間裡面,與c互質的數的個數。範圍 0分析 先將c分解質因數,根據c的範圍可以判斷質數的範圍不超過x個。x 自己線性篩素數後,從小到大乘一下,看當乘到多少個的時候,積大於10 9,則可以判斷c的最多質因數個數 假設c的質因數有2,3,5 則 a,b 區間裡,包含質因數2的數的個數為...

數學知識 容斥原理

容斥原理 aubuc a b c a b a c b c a b c a 表示集合a中元素的個數 推廣 例題 能被整除的數 給定乙個整數n和m個不同的質數p1,p2,pm。請你求出1 n中能被p1,p2,pm中的至少乙個數整除的整數有多少個。輸入格式 第一行包含整數n和m。第二行包含m個質數。輸出格...

UPC5727小奇遐想 樹狀陣列 容斥

時間限制 1 sec 記憶體限制 128 mb 提交 285 解決 58 提交 狀態 討論版 命題人 admin 題目描述 擷來一縷清風飄渺 方知今日書信未到 窗外三月天霽垂柳新長枝條 風中鳥啼猶帶歡笑 清風醉夢 小奇望著青天中的悠悠白雲,開始了無限的遐想,在它的視野中,恰好有n朵高度不同的白雲排成...