ความรู้พื้นฐาน¶
- Programming¶
กระบวนการออกแบบและพัฒนาโปรแกรมเพื่อให้ได้ผลลัพธ์ตามวัตถุประสงค์ที่ต้องการ
เทคนิค¶
พิมพ์คำสั่งให้เร็วขึ้น
บอกประเภทปัญหาอย่างไว
วิเคราะห์ algorithms ที่จะใช้ให้ได้
เขียนคำสั่งให้เชี่ยว
ทดสอบให้เซียน
ฝึก ฝึก ฝึกทำโจทย์
ความซับซ้อน¶
ตารางต่อไปนี้เปรียบเทียบขนาดข้อมูลและ algorithms ที่จะสามารถใช้ในการเขียนคำสั่งเพื่อให้ได้คะแนน
\(n\)
Big \(O\)
\(\le 10\)
\(O(n!),O(n^6)\)
\(\le 15\)
\(O(2^n \times n^2)\)
\(\le 18\)
\(O(2^n \times n)\)
\(\le 100\)
\(O(n^4)\)
\(\le 400\)
\(O(n^3)\)
\(\le 2K\)
\(O(n^2 log_2 n)\)
\(\le 10K\)
\(O(n^2)\)
\(\le 1M\)
\(O(n log_2 n)\)
\(\le 100M\)
\(O(n), O(log_2 n), O(1)\)
เทคนิคการแก้ปัญหา¶
ระดับ
Algorithms
1
ไม่ใช้เทคนิคอะไร
2
Brute-force Search
3
Divide and Conquer
4
Greedy
5
Dynamic Programming
6
Graph
7
Mathematics
8
String
9
Geometry
โจทย์ฝึกหัด¶
โจทย์ระดับ 1¶
UVa00272
UVa01124
UVa10550
UVa11044
UVa11172
UVa11361
UVa11498
UVa11547
UVa11727
UVa12250
UVa12279
UVa12289
UVa12372
UVa12403
UVa12577
โจทย์ระดับ 2¶
UVa00621
UVa10114
UVa10300
UVa10963
UVa11332
UVa11559
UVa11679
UVa11764
UVa11799
UVa11942
UVa12015
UVa12157
UVa12468
UVa12503
UVa12554
โจทย์ระดับ 3¶
UVa00119
UVa00573
UVa00661
UVa10141
UVa10324
UVa10424
UVa10919
UVa11507
UVa11586
UVa11661
UVa11683
UVa11687
UVa11956
UVa12478