ACM 百練習題備忘錄

2022-07-03 10:39:06 字數 2230 閱讀 2910

1. 在做百練2807題:兩倍時,錯將判斷語句寫成 a/b ==2,正確寫法是:a == b*2

因為c/c++int型做除法時自動捨入,如:5/2 == 2,但是 5 =/= 2*2。

2. 在做百練2715題:誰拿了最多獎學金時,一直wrong answer,最後才發現真的是自己算錯了,在判斷語句中》85寫成了》80

3. 在做百練2713: 腫瘤面積時,一開始提交顯示 runtime error,一看是陣列開小了,可能的資料是n不大於1000,我定義的時候是105;修改陣列大小後再次提交顯示wrong answer。

4. 百練2798:2進製轉化為16進製制沒做出來。

5. 百練2818:密碼,

1)wrong answer:結果錯誤

2)time limit exceeded:暴力求解,超時

3)presentation error:每乙個塊結束都要輸出換行符'\n'

4)runtime error:陣列越界,陣列開的太小

6. 百練2972:確定進製,注意k進製數n的每一位都比k小。

7. c++呼叫iostream中的ios::sync_with_stdio(false)以提高i/o效率

8. 百練2974:487-3279,runtime error,陣列開小了

9. 百練2798:2進製轉化為16進製制:

int num = len % 4

;int

base=1

;for(int i=num-1;i>=0;i--)

printf("%x

",ch);

當num=0時,按照邏輯,後面的**不應該輸出,因此出錯,解決方法是判斷num不為0即可,或num為整數。

10. 百練題目2705:用算術式子再做一次。

11. 百練2707:別人的**:

#include #include 

intmain()

pd=b*b-4*a*c;

part1 = (0 - b)/ (2 *a);

if(pd>0

)else

if(fabs(pd)<1e-8

)else

}return0;

}

對於以下問題:

實測情況為:

-b/(2*a)即可;

b=0時,若將結果分成real和img,則不存在上述問題;

-0.00000似乎不影響結果正確性。

總上所述,關鍵是用double型別取代float型別和對delta判等用乙個極小值例如1e-8。

12. 百練2724:可以用c++實現,**量更少。

13.百練2856:輸出用

printf("

%g\n

",0.8+0.5*fmax(w-1,0.0)+(exp=='

y'?2:0));

14. 百練2683:該數列一開始看成是fibonacci數列中的後一項/前一項,所以實現時用fibonacci數列進行模擬,發現對於次數99來說,無論是int型還是long型,都有資料溢位。看兩年前的提交記錄,才發現,該數列滿足:a[n] = 1/a[n-1] + 1,於是用此思路迎刃而解。還是感嘆人在不同時候的思路是很不同的。此題給人的警示是:當迴圈有資料溢位時,可以考慮發現數列的通項公式。

15. 百練2697:題目出錯了,x = (x1+x2)/2,而不是x = (x2-x1)/2;是f(0)>0而不是f(a)>0。真想罵人,出題能不能走點心。

16. 百練2868:題目出錯了,輸入不是乙個數,而是若干輸入,需要用 while(eof!=scanf("

%lf",&num)) ,不然會報 wrong answer ,真心覺得出題人謹慎點行不行,poj本來就不給出錯案例,要想accepted,就必須考慮所有邊界條件,就必須嚴格按照題目要求進行輸入輸出,這下好了,輸入條件都不明確,還怎麼做題!

17. 百練2682:迴圈移動這道題很經典,可以用三次reverse操作來實現。 

18. 百練2938:交換兩個整數可以用:

a = a^b;

b = a^b;

a = a^b;

來實現。

19. switch後面只能跟整型變數和字元型變數,不能接字串。 

20. a%b時,b一定非0.

21. 輸出浮點數時,若對精度無要求,建議使用"%g"修飾符。 

ACM 藍橋杯練習題

小a的學校有一些小河和一些湖泊,現在把它們統一看成水池,小a手裡有一張學校某處的地圖,這個地圖上僅標識了此處是否是水池,小a想知道這塊地方有多少個水池,現在,任務交給你了,請編寫程式算出該地圖中有幾個水池 第一行輸入乙個整數n,表示共有n組測試資料 每一組資料都是先輸入該地圖的行數m 輸出該地圖中水...

設計模式練習(16) 備忘錄模式

一 題目 某軟體公司正在開發一款網遊,為了給玩家提供更多方便,在遊戲過程中可以設定乙個恢復點,用於儲存當前的遊戲場景,如果在後續遊戲過程中,玩家角色 不幸犧牲 玩家可以返回到先前儲存的場景,從恢復點開始重新遊戲,試用備忘錄模式實現。1 繪製備忘錄模式結構檢視 2 給出例項類圖並實現 二 所用模式結構...

2005ACM練習題第幾天

problem description 給定乙個日期,輸出這個日期是該年的第幾天。input 輸入資料有多組,每組佔一行,資料格式為yyyy mm dd組成,具體參見sample input 另外,可以向你確保所有的輸入資料是合法的。output 對於每組輸入資料,輸出一行,表示該日期是該年的第幾天...