描述
在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輸出樣例 13 4
1輸入樣例 2
3 5輸出樣例 21 2 3 4 5
2輸入樣例 3
2 1輸出樣例 32
1view code整個賽程就像一棵樹 可以模擬樹來做
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;
}
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表示需要向右 ...