UESTC 第12屆 ACM 趣味賽一

2022-09-24 13:45:12 字數 1430 閱讀 4794

略先假設沒有 」知道這 \(n\) 個人中普通市民的人數一定不少於組織中的人「 這個條件,我們考慮為什麼沒有辦法將任何人的身份識別出來。不妨這樣想:每乙個人只有兩種情況,要麼說謊話,要麼說真話,而所有說謊話的人和所有說真話的人給出的答案都會是一樣的。也就是說,我們只可能得到兩種答案,要麼是真實的情況,要麼是真實的情況取反(即,說謊話會被認為是說真話,說真話會被認為是說假話)。很顯然對於這兩種答案我們沒法判斷出那個是正確的,但是我們可以獲得乙個資訊,也就是這群人已經被分為兩群,要麼其中一群是誠實的,另一群是不誠實的;要麼其中一群是不誠實的,另一群是誠實的。現在加上前面提到的那個條件,我們發現當這兩群人人數不等的時候,人數多的一定是普通市民;只有當人數相等的時候,無法將這兩群人歸類,此時總人數為偶數。答案顯然。

設 \(f[i][j]\) 表示前 \(i\) 關 kaiser 玩 \(j\) 局而 fatdog_jo 玩 \(i-j\) 局的最少時間,則轉移方程為 \(f[i][j]=max\\) ,該方法時間複雜度為 \(o(n^2)\)。

先假設所有關都由 fatdog_jo 來玩,則 \(ans=\sum b[i]\)。設 \(c[i]=a[i]-b[i]\),則若第 \(i\) 關由 kaiser 來玩,我們只需將 \(ans+=c[i]\)。現在有 \(n/2\) 關需要 kaiser 來玩,我們只需要從 \(c[i]\) 中選出最小的 \(n/2\) 個加上去即可。該方法時間複雜度為 \(o(n\log n)\) 優於方法一。

暴力列舉旋風斬的回合數即可,顯然最多不超過 \(5000\) 次旋風斬所有隨從會死亡。時間複雜度為 \(o(na)\)。

設 \(t\) 時刻成員 \(0\) 與成員 \(1\) 相遇,列出方程組:

1:\(y_0=ax_0+b\)

2:\(y_1=ax_1+b\)

3:\(x_0+v_t=x_1+v_t\)

4:\(y_0+v_t=y_1+v_t\)

由 3 得 \(x_0-x_1=-t(v_-v_)\)

由 4 得 \(y_0-y_1=-t(v_-v_)\)

兩式相除,整理得 \(v_-v_=a(v_-v_)\)

移項得 \(v_-**_=v_-**_\)

即當上式成立(兩直線平行除外)時兩個成員相遇。特判一下平行的情況以及 \(a=0\) 的情況即可(\(upd\):\(a=0\)不用特判)。

#include #include #include using namespace std;

int n, a, b, x, y;

long long ans;

mapmp;

map, int> mppar;

int main()

}else for(int i = 0; i < n; i++)

printf("%lld", ans << 1);

return 0;

}

UESTC第二屆ACM趣味程式設計競賽第三場

include iostream include string include stdio.h include string h include map include algorithm include vector using namespace std typedef long long in...

第五屆ACM趣味程式設計大賽

a 苗童大作戰之絕地求生 苗苗最近入坑絕地求生了,這一次她終於苟到了決賽圈,她已經把藥都用完了,但馬上又要跑毒了。假設她距離安全區最近的直線距離為 n 公尺,她的移動速度為 2 公尺每秒,她想知道如果按照這個方式跑到安全區最需要多少秒。輸入包含乙個整數 n 0 n 10000 代表她到安全區的距離。...

UESTC第十四屆校賽A題解題報告

太弱,什麼都不會 qrz 給你乙個n,然後你要用乙個序列構成0到n的所有數 構成方法就是從序列中選若干個數加起來 問你有多少種這樣的序列,和是相同的序列 首先,看下n範圍5000,複雜度肯定是n 2打表。然後賽上各種推不出狀態。其實,肯定有一維狀態要表示整個序列的和,那麼就是dp i i為整個序列的...