/*此篇適合給有一點水平的孩子,不適合純新手*/
ACM呢,是一個非常適合人們鍛鍊程式技巧的地方
從簡單到難的題目這裡都有
簡單的可以很簡單 程式碼不用寫十行
難的就可以很難 難到你想數個月都想不出來
寫程式的訓練,除了程式技巧
最重要的就是思考
初階的題目思考和程式技巧的比例大致相等
到後來思考會加重
思考加重的時候,穩定的程式技巧就很重要
所以兩者是相輔相成
你多寫,就會多進步
我在升高二暑假沒有朝深入演算法發展
但是做到了解決了被 一個叫做Lucky貓的ACM園地的網站http://luckycat.kshs.kh.edu.tw/
歸類成一星的中譯題目全部OVER掉
這一年來也是斷斷續續練一些沒有太複雜技巧的題目
這個暑假開始學難的東西
上手和撰寫便很快地可以接軌
一個星期多來已經寫了過去一年的分量XD
好 廢話不多說
入手的話
首先就來推薦簡單的題目
- Aug 12 Sun 2007 00:48
ACM 入手第一篇
- Jul 15 Thu 2010 22:52
[ACM] Q10679 - I Love Strings!! [KMP]
/* ACM Q10679 - I Love Strings!! */
/* 559 8100892 2.396 ANSI C 2010-07-15 14:46:26 */
/* KMP */
- Jun 14 Sun 2009 17:30
[C++] BigInt
- Feb 09 Mon 2009 20:56
[C++] 初學筆記 (2)
‧成員函數的定義:
1. 定義在Class中
2. 定義在外部,但是函數名稱前要加上"類別名稱::"
小易說後面的比較好,不然萬一有互相呼叫的就會打架了
‧呼叫同一個物件的成員函數只需要函數名稱
呼叫不同物件的成員函數則需要"物件名稱."
‧存取標籤(Access Label)
public(其他物件可以存取) v.s. private(其他物件不得存取) // 在class中可以寫很多次
class省略存取標籤時,會自動定義成private,struct省略存取標籤則會定義成public
private和public弄錯時會Compile Error
‧建構子(constructor)
產生物件時自動呼叫的特殊成員函數,必須為public,負責成員變數的初始化,宣告時要跟class同名
class ex
{
public:
ex()
private:
int data;
};
ex::ex()
{
data = 0;
}
‧解構子(destructor)
物件結束任務(執行到物件有效範圍結束)時會自動呼叫的特殊成員函數,必須為public,宣告時要跟class同名並在最前面加上"~"
‧C++函數的參數值可以有初始值,但是要從最後一個參數依序開始預設(可以只有後半段有預設值)
‧多載(overload)就是不同的傳入參數型態可以有同樣名字的函數,編譯器會依照傳入值型態對應到對應的函數
只有回傳值型態不同則無法多載
‧若是全域變數、成員變數、成員函數裡的local變數有相同名稱,則函數內函數的local變數有最優先權
Class名稱::變數名稱 則可以對成員變數進行操控
::變數名稱 可以對全域變數進行操控
‧cout.width(4);
cout<<25;
= printf("%4d", 25);
‧cout.fill('0');
cout.width(4);
cout<<25;
= printf("%0d", 25);
‧cin.getline(char[]名稱, size); = gets(char[]); + 長度限制
‧命名空間(namespace)的寫法是在外面加上
namespace 命名空間名稱
{
(...)
}
存取時加上"命名空間名稱::"
在開頭加上using namespace 命名空間名稱則可以直接存取該命名空間裡的函數&變數
‧函數加上inline,會展開到呼叫函數的部份 (其實和C的Macro很像)
例如:
inline int sum(int a, int b)
{
return a + b;
}
int main()
{
sum(10, 20);
return 0;
}
在編譯後會變成
int main()
{
10+20;
return 0;
}
這樣可以減少呼叫函數的時間,但是程式本身大小會變大
‧在成員函數名稱後、大括號前加上const,代表此成員函數是const成員函數,不會變更Class裡成員函數的值
‧指標 = new 資料型態
delete 指標名稱
‧指標名稱 = new 陣列型態[個數]
delete [] 指標名稱
‧建構子也可以多載(可以傳入初始化參數)(使用直接初始化)
複製建構子:用既有物件初始化,可以自己定義(有指標成員的話則定義比較好)
‧在一個class裡用friend class 類別名稱,就可以讓該類別的成員函數存取這個class裡的變數
(但是是單向的,也就是這個class不可以存取他定義成friend類別裡的變數
也可以只針對其他類別的成員函數加上friend宣告,此時那個類別裡就只有該成員函數可以存取它
- Feb 02 Mon 2009 17:04
[C++] 初學筆記 (1)
- Jan 30 Fri 2009 23:21
[筆記] gcc參數指令(轉錄)
轉自 http://www.wretch.cc/blog/Geniusking/7263728
※ 使用方式
gcc [option] filename
※ 選項
-c : 只做編譯(不做連結)
-S : 輸出組譯碼
-E : 將預處理結果顯示
-o filename : 指定輸出檔名
-ansi : 程式要求依據ansi c標準
-Dmacro : 使定義巨集(marco)為有效
-Dmarco=defn : 使定義巨集(marco)為defn
-Wa,option : 將選項(option)傳給組譯器
-wl,option : 將選項(option)傳給連結器
-I : 追加include檔案的搜尋路徑
-L : 追加library檔案的搜尋路徑
-l : 指定連結的函式庫
-Wall : 顯示所有的警告訊息
-g : 編入除錯資訊(要使用GDB除錯一定要加)
-O2 : 做最佳化
※ 使用範例
Example:
gcc -o file a.c b.c c.c
gcc -Wall -g -o test test.c
gcc -Iinclude -Llibrary -lmy_lib -o test1 test1.c
gcc -DDEBUG_ON -o test2 test2.c
gcc -c -o test3 test.c
- Jan 29 Thu 2009 15:53
[筆記] CSS 初學完成(相關書籍 & 網頁)
- Jan 27 Tue 2009 17:34
準備重新開始運作