第八屆ACM趣味程式設計競賽第一場(熱身賽)題解

2021-07-24 22:40:44 字數 1443 閱讀 7767

b - 中庸之道(一)

本題的題意十分清晰,很容易就可以想明白這就是乙個簡單的分類討論。如題中所言,分兩種情況,即3數不相等的情況和有2個數相等的情況。本題的坑點在於對於每組輸入都需要輸出一行答案,即\n,很多人因此pe。標準**如下

#include#includeint main()

; for(int i=0;i<3;i++) scanf("%d",&a[i]);

std::sort(a,a+3);

int flag = 0;

if(a[0]==a[1] || a[1]==a[2]) flag = a[2];

else flag = a[1];

printf("%d\n",flag);

}return 0;

}

c-校門外的樹

本題是乙個模擬題,可以使用乙個陣列全部賦值為1表示現有的樹,然後對於每一次操作,列舉區間內的所有樹,將其賦值為0,最後統計陣列中1的數量即可。

#include#includeint main()

; memset(a,'0',10002);

memset(a,'1',l+1);

while(m--)

int count=0;

for(int i=0;i<=l;i++)

if(a[i]=='1')

count++;

printf("%d\n",count);

return 0;

}

d-the king and king boss

本題可以分為兩種情況討論,將n個整數做如下處理,令b[i] = a[1] + a[2] + a[3] + .. + a[i],這樣的b[i] 有 n 個根據抽屜原理如果n個都不相同,則至少有乙個是 n的倍數,否則存在b[j] % n == b[i] % n (i < j)則 b[j] - b[i] = a[i + 1] + a[i  + 2] + … + a[j]是n的倍數。因此,本題無論輸入什麼數,結果都為yes.

#include

#include

#include

intmain

()

e-鐵路

此處需要分類討論,我們容易想到兩種為0的情況,一種是當k=0時,答案一定為0,另一種是當k=1且n>2時,結果一定為0。然後再分類討論其他狀況,如果k>=n-1,即可修建的鐵路數已經超過了城市數量,則答案是在沒兩個城市之間就修建一條鐵路,即(n-1)*n/2,另一種情況是當kint main()

{ int t;

scanf("%d",&t);

while(t--)

{int n,k;

scanf("%d%d",&n,&k);

if(k == 0 || (k == 1 && n>2)) printf("0\n");

else if(k

第八屆ACM校賽 魔戒

problem description 藍色空間號和萬有引力號進入了四維水窪,發現了四維物體 魔戒。這裡我們把飛船和魔戒都抽象為四維空間中的乙個點,分別標為 s 和 e 空間中可能存在障礙物,標為 其他為可以通過的位置。現在他們想要盡快到達魔戒進行探索,你能幫他們算出最小時間是最少嗎?我們認為飛船每...

第八屆acm省賽 A挑戰密室(模擬)

time limit 1 sec memory limit 128 mb submit 29 solved 10 submit status web board r組織的 dr.kong 為了尋找丟失的超體元素,不幸陷入 wto密室。dr.kong 必須盡快找到解鎖密碼逃離,否則幾分鐘之後,wto密...

第八屆 藍橋 A組C

第一題 數的時候先數第一行u的 再數能到達u的 再數最後一行帶d的 能到達d的 第一列帶l的 能到達l的 最後一列帶r的 能到達r的 實現還是很麻煩啊 能數就認真數吧 爭取半小時完成。思路 1 暴力遞迴 宣告二維陣列 寫進去 int sum記錄走出來的人數。定義乙個bool陣列,初始為false 定...