noip模擬賽7 足球比賽 樹

2022-05-01 17:15:16 字數 1598 閱讀 2843

描述

在2009的中國城市足球比賽中,在2^n支隊中,有一些隊在開賽前宣布了退出比賽。比賽採取的是淘汰賽。比如有4支隊伍參加,那麼1隊和2隊比賽,3隊和4隊賽,然後1隊和2隊的勝者與3隊和4隊的勝者爭奪冠軍。但是由於某些隊伍退出,那麼如果某個原本存在的比賽只有乙個支隊,那麼這一支隊自動晉級,如果沒有隊伍出現,那麼就跟本沒有比賽。比如,1隊和2隊退出比賽,那麼就只有3隊和4隊的比賽,然後其勝者在原本和1隊和2隊的勝者的決賽中自動晉級,成為冠軍。

給出哪些隊退出的比賽計算會有多少場比賽中隊伍自動晉級。

輸入第一行有兩個數n(1<=n<=10),m。接下來有m個數,表示哪些隊退出了比賽。選手編號從1到2

輸出在第一行輸出有多少場比賽中隊伍自動晉級。

輸入樣例 1 

2 2

3 4

輸出樣例 1

1
輸入樣例 2 

3 5

1 2 3 4 5

輸出樣例 2

2
輸入樣例 3 

2 1

2

輸出樣例 3

1

整個賽程就像一棵樹 可以模擬樹來做

2的n次方樹樹 也就是深度為n的樹

最底層的陣列下標就是 l=1<

#includeusing

namespace

std;

//input by bxd

#define rep(i,a,b) for(int i=(a);i<=(b);i++)

#define repp(i,a,b) for(int i=(a);i>=(b);i--)

#define ri(n) scanf("%d",&(n))

#define rii(n,m) scanf("%d%d",&n,&m)

#define riii(n,m,k) scanf("%d%d%d",&n,&m,&k)

#define rs(s) scanf("%s",s);

#define ll long long

#define pb push_back

#define fi first

#define rep(i,n) for(int i=0;i

#define clr(a,v) memset(a,v,sizeof a)

/////////////////////////////////

//#define inf 0x3f3f3f3f

#define n 10100+5

int vis[1

<<11

];int

main()

int l=1

<

int r=(1

<

; rep(i,l,r)

vis[i]=1-vis[i];

int cnt=0

;

while(l!=r)

l>>=1

; r>>=1

; }

cout

<

return0;

}

view code

Poetize7 足球比賽

描述 description sjzez和tsyz正在進行一輪足球聯誼賽,根據規則,這輪比賽有兩場,一場在sjzez的主場進行,一場在tsyz的主場進行。勝負判斷標準如下 1.在兩場比賽中進球總數較多的一方贏得比賽。2.如果雙方進球總數相同,在對方主場進球更多的一方贏得比賽。3.如果1 2都相同,勝...

NOIP模擬賽 籃球比賽1

籃球比賽1 basketball1.czhou為了提高機房裡各種神牛的身體素質,決定在每次訓練後舉行籃球比賽。為了保持比賽公平,czhou 要將神牛們分成兩隊。首先神牛們賽前都要排成固定的隊伍 然後 czhou 將隊伍分成一半 前一半和後一半隊伍人數可以不等 再分別從兩個隊伍中選出一些人進行籃球比賽...

NOIP提高組模擬賽7

帶取模的運算,除以乙個數一定要乘逆元!不同位置的值對最終答案的貢獻是互不影響的,分開考慮每個值的貢獻 考慮對於位於 x,y 的值對 n,m 的貢獻,無論從哪個路徑走過去,一定是原數 a b 而對答案貢獻多少次即為 x,y n,m 不同的路徑數,這個顯然是個組合數,用l表示需要走幾步,r表示需要向右 ...