政史特長生友誼賽Round1題解

2021-08-03 14:52:03 字數 1541 閱讀 6512

problem a

不會排序?對不起,我無可奉告。

problem b

每個人操作的過程可以這麼描述:遇到第乙個0之前,將路上所有的1變成0,並將第乙個0變成1,不難發現這其實相當於二進位制的加一操作。共m次操作則相當於把m轉為二進位制然後輸出末n位。

#include

using

namespace

std;

typedef

long

long ll;

int a[65];

int main()

for (int i=n;i>=1;i--) printf("%d",a[i]);

}

problem c

首先不難設計出平方級的演算法:i列舉n,j列舉t,然後直接累加即可。如果畫個圖就可以發現,j多次掃瞄過了同一點,所以可以將i與j的父子關係轉為兄弟關係,用單調隊優化。

#include

using namespace std;

const int maxn=1000000+5;

intm[maxn],t[maxn],q[maxn];

int main()

printf(" %d",ans);

}}

problem d

裸的威佐夫博弈。

我們用(ak,bk)(ak ≤ bk , k = 0,1,2,…,n)表示兩堆物品的數量並稱其為局勢,如果甲面對(0,0),那麼甲已經輸了,這種局勢我們稱為必敗局勢。前幾個必敗局勢是:(0,0)、(1,2)、(3,5)、(4,7)、(6,10)、(8,13)、(9,15)、(11,18)、(12,20)。可以看出,a0 = b0 = 0,ak是未在前面出現過的最小自然數,而 bk = ak + k。

必敗局勢有3條神奇的性質:

1、任何自然數都包含在乙個且僅有乙個必敗局勢中。

證明:由於ak是未在前面出現過的最小自然數,所以有ak > ak-1 ,而 bk= ak + k > ak-1 + k-1 = bk-1 > ak-1 ,所以性質1成立。

2、任意操作都可以將必敗局勢改為非必敗局勢。

證明:若只改變必敗局勢(ak,bk)的某乙個分量,那麼另乙個分量不可能在其他必敗局勢中,所以必然是非必敗局勢。如果使(ak,bk)的兩個分量同時減少,則由於其差不變,且不可能是其他必敗局勢的差,因此也是非必敗局勢。

3、採用適當的方法,可以將非必敗局勢變為必敗局勢。

可以想到,兩個人如果都採用正確操作,那麼面對非必敗局勢先拿者必勝;反之則後拿者取勝。

如何判斷乙個局勢是否必敗呢?我們有乙個公式:ak =[k(1+√5)/2],bk= ak + k (k=0,1,2,…,n 方括號表示取整函式)。

具體做法:對於局勢(x , y),判斷 x ?= ((y-x)*(sqrt(5)+1)) / 2 向下取整。

#include

#include

using

namespace

std;

int main()

特長生模擬 採藥

題目大意 凡凡要去採藥,他採的藥不僅要求揹包的總空間v能放得下所採的藥,還要求藥草的總質量不能超過凡凡所能承受的範圍m。現在給出n種珍惜的藥材,對於每個藥材凡凡都會精準地目測出其質量a i 體積b i 和價值c i 求凡凡所能採到的藥材的最大價值。注意 每種藥材只有乙個。30 資料,所有藥草質量a ...

5 14特長生模擬 朋友

mxy 即將前往新世界。在前往新世界的過程中,ta 遇見了兩種人。一種是只和lowb 做朋友,即當且僅當自己 的能力值大於對方時他們會成為朋友,另一種是大神我們做朋友,即當且僅當自己的能力 值小於對方時他們會成為朋友。現在告訴你兩種人的能力值。請你計算一共有多少對友好關係。排序 二分,因為排好序了,...

5 14特長生模擬 門票

mxy 正要經過新世界的大門。現在有很多人在門口排隊,每個人將會被發到乙個有效的通行密碼作為門票。乙個有 效的密碼由l 3 l 15 個小寫字母 a z 組成,至少有乙個母音 a e i o 或 u 和兩個子音 除去母音以外的音節 並且是按字母表順序出現的 例如,abc 是有效的,而 bac 不是 ...