# 資訊選修課 --- ## 程式解題入門評分方式 | 項目 | 佔學期總成績比例 | | ---------------------- | ---------------- | | ZeroJudge/彰中OJ解題數 | 30% | | 平時課堂表現 | 15% | | 上機考試 | 45% | | 校內外程式競賽/APCS | 10% | --- ## 第一次測驗重點: :::warning * 必考題 彰中OJ:a051, a052 TCGS:a021, a028 * 其他 TCGS:a001~a050 * ZeroJudge: 2.算術運算: d053, d073, d489, d461 4.選擇結構: a005, a012, b186, d511, c006 5.迴圈: a147, a215, b150, c005, c022 6.陣列: a058, b138, c067, b139, d212, a015, b130 ::: ---- ## 第二次測驗重點: :::warning * 必考題 choj:a057(仿 ZeroJudge d190,但執行結果採嚴格比對, 不可以有多餘的空格或空白行) choj:a051(上次不及格的同學才考) * 其他 7.字元處理及字元陣列: a009, d235, c054, b187, d086, a020 8.字串處理: a022, a011, d267, c007, d275, d422 9.質數判斷: a121, c033(1視為質數), d117(1視為質數), a007, d709(記得處理1不是質數), d705(記得處理1不是質數) 10.大數加減法: c034, a884, d056, d202 b016,b017,b018(choj) 11.sort d190, d153, d269, a225, b966 b019,b020,b021(choj) 12.字串串流 d392, d430, d018, d098, a158 b014,b015(choj) ::: --- ## ZeroJudge練習題列表 ---- ### 1. 基本輸出/輸入: [a001](https://zerojudge.tw/ShowProblem?problemid=a001),[a002](https://zerojudge.tw/ShowProblem?problemid=a002) ### 2. 算術運算: [d053](https://zerojudge.tw/ShowProblem?problemid=d053), [d073](https://zerojudge.tw/ShowProblem?problemid=d073), [d489](https://zerojudge.tw/ShowProblem?problemid=d489), [d461](https://zerojudge.tw/ShowProblem?problemid=d461) ### 3. 比較、邏輯運算(不用if) [d058](https://zerojudge.tw/ShowProblem?problemid=d058), [d063](https://zerojudge.tw/ShowProblem?problemid=d063), [d068](https://zerojudge.tw/ShowProblem?problemid=d068), [d485](https://zerojudge.tw/ShowProblem?problemid=d485), [d460](https://zerojudge.tw/ShowProblem?problemid=d460) ### 4. 選擇結構: [a003](https://zerojudge.tw/ShowProblem?problemid=a003), [a004](https://zerojudge.tw/ShowProblem?problemid=a004), [a005](https://zerojudge.tw/ShowProblem?problemid=a005), [a012](https://zerojudge.tw/ShowProblem?problemid=a012), [b186](https://zerojudge.tw/ShowProblem?problemid=b186), [d511](https://zerojudge.tw/ShowProblem?problemid=d511), [c006](https://zerojudge.tw/ShowProblem?problemid=c006) ### 5. 迴圈: [a147](https://zerojudge.tw/ShowProblem?problemid=a147), [a215](https://zerojudge.tw/ShowProblem?problemid=a215), [b150](https://zerojudge.tw/ShowProblem?problemid=b150), [c005](https://zerojudge.tw/ShowProblem?problemid=c005), [c022](https://zerojudge.tw/ShowProblem?problemid=c022) ### 6. 陣列: [a058](https://zerojudge.tw/ShowProblem?problemid=a058), [b138](https://zerojudge.tw/ShowProblem?problemid=b138), [c067](https://zerojudge.tw/ShowProblem?problemid=c067), [b139](https://zerojudge.tw/ShowProblem?problemid=b139), [d212](https://zerojudge.tw/ShowProblem?problemid=d212), [a015](https://zerojudge.tw/ShowProblem?problemid=a015), [b130](https://zerojudge.tw/ShowProblem?problemid=b130), ### 7. 字元處理及字元陣列: [a009](https://zerojudge.tw/ShowProblem?problemid=a009), [d235](https://zerojudge.tw/ShowProblem?problemid=d235), [c054](https://zerojudge.tw/ShowProblem?problemid=c054), [b187](https://zerojudge.tw/ShowProblem?problemid=b187), [d086](https://zerojudge.tw/ShowProblem?problemid=d086), [a020](https://zerojudge.tw/ShowProblem?problemid=a020), ### 8. 字串處理: [a022](https://zerojudge.tw/ShowProblem?problemid=a022), [a011](https://zerojudge.tw/ShowProblem?problemid=a011), [d267](https://zerojudge.tw/ShowProblem?problemid=d267), [c007](https://zerojudge.tw/ShowProblem?problemid=c007), [d275](https://zerojudge.tw/ShowProblem?problemid=d275), [d422](https://zerojudge.tw/ShowProblem?problemid=d422), ### 9. 質數判斷: [a121](https://zerojudge.tw/ShowProblem?problemid=a121), [c033](https://zerojudge.tw/ShowProblem?problemid=c033)(1視為質數), [d117](https://zerojudge.tw/ShowProblem?problemid=d117)(1視為質數), [a007](https://zerojudge.tw/ShowProblem?problemid=a007), [d709](https://zerojudge.tw/ShowProblem?problemid=d709)(記得處理1不是質數), [d705](https://zerojudge.tw/ShowProblem?problemid=d705)(記得處理1不是質數), ### 10. 大數加減法: [c034](https://zerojudge.tw/ShowProblem?problemid=c034), [a884](https://zerojudge.tw/ShowProblem?problemid=a884), [d056](https://zerojudge.tw/ShowProblem?problemid=d056), [d202](https://zerojudge.tw/ShowProblem?problemid=d202), [b016](http://choj.me/problem/b016), [b017](http://choj.me/contest/3/problem/b017), [b018](http://choj.me/contest/3/problem/b018)(TCGS) ### 11. sort [d190](https://zerojudge.tw/ShowProblem?problemid=d190), [d153](https://zerojudge.tw/ShowProblem?problemid=d153), [d269](https://zerojudge.tw/ShowProblem?problemid=d269), [a225](https://zerojudge.tw/ShowProblem?problemid=a225), [b966](https://zerojudge.tw/ShowProblem?problemid=b966), [b019](http://choj.me/problem/b019), [b020](http://choj.me/contest/3/problem/b020), [b021](http://choj.me/contest/3/problem/b021)(TCGS) ### 12. 字串串流 [d392](https://zerojudge.tw/ShowProblem?problemid=d392), [d430](https://zerojudge.tw/ShowProblem?problemid=d430), [d018](https://zerojudge.tw/ShowProblem?problemid=d018), [d098](https://zerojudge.tw/ShowProblem?problemid=d098), [a158](https://zerojudge.tw/ShowProblem?problemid=a158), [b014](http://choj.me/contest/3/problem/b014), [b015](http://choj.me/contest/3/problem/b015)(TCGS) ### 13. 數論相關: [a024](https://zerojudge.tw/ShowProblem?problemid=a024), [a010](https://zerojudge.tw/ShowProblem?problemid=a010), [a034](https://zerojudge.tw/ShowProblem?problemid=a034), [b112](https://zerojudge.tw/ShowProblem?problemid=b112), ### 14. 動態規劃(最大連續元素和) d784, a540, a164(LIS) b032(TCGS), d052(LCS) b033(TCGS), d674(找零錢) b028(TCGS), d904(01背包) b030(TCGS), b184 ### 15. 向量vector b001, b002, b003, b005(TCGS), 10763(UVa), c073 ### 16. 雙向鏈結串列list 11988(UVa), c086 ### 17. set c122, d129, d442 ### 18. map a743, b162, 156(UVa) ### 19. stack, queue, priority_queue b304, e155, d221, d750 ### 20. 貪婪法 b034, b035, b036, h007, h070(TCGS), d418, c134 ### 21. 遞迴與分治法 b022, b023(TCGS), d219, d732, 10017(UVa) ### 22. DFS d115, c074 b037, b038, b039, b040(TCGS) ### 23. Floyd-Warshall最短路徑 h019(TCGS), d908 ### 24. Disjoint Sets a445, d813 ## 網站連結 :::info [新竹女中黃惟學習歷程](https://yuihuang.com/) [嘉中APCS題單](https://hackmd.io/@cube/rJc2MfkXF) [埃氏篩法](https://zh.wikipedia.org/wiki/%E5%9F%83%E6%8B%89%E6%89%98%E6%96%AF%E7%89%B9%E5%B0%BC%E7%AD%9B%E6%B3%95) [米勒-拉賓質數判定法](https://zh.wikipedia.org/wiki/%E7%B1%B3%E5%8B%92-%E6%8B%89%E5%AE%BE%E6%A3%80%E9%AA%8C) [cin,cout加速](https://www.itread01.com/content/1549179726.html) [從零開始的演算法競賽入門教學](https://emanlaicepsa.github.io/) ::: ## pointer ```cpp= // *的二種用法 #include <iostream> using namespace std; int main() { int num = 10; //取址(Address-of)運算子 & 用來取得變數的儲存位置 cout<<"變數num的記憶體位址:"<< &num <<endl; cout<<"變數num的值:"<< num <<endl<<endl; int *ptr = &num ; cout<<"指標 ptr 儲存的值:"<< ptr <<endl; //取值(Dereference)運算子 * 用來提取指標指向的資料 cout<<"取出 ptr 指向的記憶體位置之值:"<< *ptr <<endl<<endl; *ptr = 20; cout<<"*ptr = "<< *ptr <<endl; cout<<"num = "<< num <<endl<<endl; // 如果宣告指標但不指定初值,則指標指向的位址是未知的, // 存取未知位址的記憶體內容會造成不可預知的錯誤(通常是記憶體區段錯誤) // 指標的本質是指向某個存在的變數, 如果不想多開一個變數給它命名, 可用new指令 int *ptr2=new int; *ptr2 = 100; cout<<"*ptr2 = "<< *ptr2 <<endl<<endl; int a[5] = {10,20,30,40,50}; ptr=a; cout<<"a :"<< a <<endl; cout<<"ptr :"<< ptr <<endl<<endl; for(int i=0;i<5;i++) { cout<<"&a["<<i<<"]: "<< &a[i]; cout<<"\t ptr+"<<i<<": "<< ptr + i <<endl; } cout<<endl; // 以陣列方式存取資料 for(int i=0;i<5;i++) cout<<"a["<<i<<"]: "<< a[i] <<endl; cout<<endl; // 以指標方式存取資料 for(int i=0;i<5;i++) cout<<"*(ptr+"<<i<<"): "<< (*(ptr + i)) <<endl; return 0; ```