算法競賽入門經典第2版(劉汝佳 著)學習心得
(將會不定期更新。。。)
1.不要在用戶輸入前打印提示信息,比如:“請輸入n”,這樣不僅不會贏得友好的界面分,還會因此而減分甚至丟掉所有分數,因為這些提示信息會被當作輸出數據的一部分,比標準答案多出一行或多行。注意輸入與輸出都要一模一樣,不能多也不能少。
輸出完畢后應立即終止程序。不要等待用戶按鍵。輸入輸出過程是自動的
在算法中,每行輸出均以回車符結束。包括最后一行,除非特殊說明,每行不應有首行空格。另外,輸出的每兩個數或字符應以單個空格隔開。
2..
【錯誤案例】:

解決辦法:因為我在貼代碼到ACM之前,用VS2010來編寫代碼以及做測試,所以自帶的#include "stdafx.h",所以貼代碼的時候應該刪掉
3.java代碼
如果使用java代碼寫,得注意這個問題

解決方法:
把public去掉或者是寫成public class main(){ }
4.不要讓程序“按任意鍵退出”,例如調用system(“pause”),或者添加一個多余的getchar().一般在程序末尾添加return 0;(不要忘記return 0!!).
5.一般情況下,程序不能直接讀取鍵盤和控制屏幕,即不要在程序中寫getch(),getche(),gotoxy(),clrscr().
6.寫程序算法的時候,應當注意乘法溢出問題,比如第二章的提示2-10。(可以參考一下http://blog.csdn.net/leafinsnowfield/article/details/39900813)這個實例
7.要輸入很大很大的整型時,應該用long long類型,其范圍是-2的63次冪到2的63次冪-1,輸出格式符號(“%lld).如果涉及long long的輸入輸出時,常用C/C++中的輸入輸出流,或自定義的輸入輸出方法.
8.文件輸入輸出:
并不是所有算法,競賽都允許用程序讀寫文件,甚至有的競賽允許訪問文件,但不允許freopen這樣的重定向方式訪問讀寫文件。
在比賽前必須了解文件的讀寫規定,是標準輸入輸出(即直接讀鍵盤、寫屏幕),還是文件輸入輸出,是否禁止用重定向方式訪問文件。
數據要寫到哪里?直接寫題目規定的文件名加擴展名即可,不能加路徑
在算法競賽中,應該嚴格遵守文件名相關規定,包括程序文件名、輸入輸出名,
不要弄錯文件名、大小寫、不要拼錯文件名、不要使用相對或絕對路徑
新聞熱點
疑難解答