DanielChen
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
      • Invitee
    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Versions and GitHub Sync Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
Invitee
Publish Note

Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

Your note will be visible on your profile and discoverable by anyone.
Your note is now live.
This note is visible on your profile and discoverable online.
Everyone on the web can find and read all notes of this public team.
See published notes
Unpublish note
Please check the box to agree to the Community Guidelines.
View profile
Engagement control
Commenting
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
  • Everyone
Suggest edit
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
Emoji Reply
Enable
Import from Dropbox Google Drive Gist Clipboard
   owned this note    owned this note      
Published Linked with GitHub
Subscribed
  • Any changes
    Be notified of any changes
  • Mention me
    Be notified of mention me
  • Unsubscribe
Subscribe
--- tags: CCNS, programming contest --- CCNS 競技程式設計教材 === 各種競程的基本觀念及演算法教材編輯計劃。 > [name=DanielChen] 預計投稿今年的 [iT邦鐵人賽](https://ithelp.ithome.com.tw/ironman),督促自己把坑填好填滿,各位編輯可以自己選擇要不要一起,今年剛好可以組團(不過各自還是要每天發文,只是團體完賽有額外的獎品) 編輯 --- Yuri DC ian hexrabbit afcidk > 我想不到留什麼名字 留中文怪怪的[name=良] > 隨便, 取個中意的名字就好[name=Uvuvwevwevwe Onyetenyevwe Ugwemubwem Ossas] Gitbook 教學 --- [Gitbook Documentation](https://www.gitbook.com/book/gitbookio/documentation/details) (官方文檔) [Gitbook 中文解說 - 2.4](https://www.gitbook.com/book/wastemobile/gitbook-chinese/details) (中譯版本,更新時間和官方有出入,可能有部分內容未更新) 想一個很帥潮(ㄧㄡˊ)標題 --- とある算法の禁書目録 章節 --- > 順序不見得依照下面的排列,以教材內容為主 > 該教材在 [2019 年](https://hackmd.io/@3xOSPTI6QMGdj6jgMMe08w/HknO-zmQI)、[2020 年](https://hackmd.io/@nckuacm/ryLIV6BYI)被用在成大競程課程的教材 (較完整) * 0x00 [緒論](https://hackmd.io/s/SkYLVwBfG#) * 本書簡介 * 什麼是演算法 * 什麼是算法競賽 * 0x01 [語言 & IO & 數值處理 & 遞迴 (概念性質)](https://hackmd.io/s/rk6moUyQz#) * C/C++ 簡介 * 基本輸入輸出 * 數值系統 * 字串處理 * 流程控制 * 函式遞迴 * 0x02 [基礎算法分析 & 資料結構](https://hackmd.io/s/HJ1hSDSGG#) * 演算法的效率 * 設計演算法的思維 * 枚舉 * 分治法 * 動態規劃 * 貪心法 * 資料結構 * Queue & Stack * Linked list * Graph & Tree * Disjoint sets * 0x03 [搜尋](https://hackmd.io/s/Bke2V2HGM#) * DFS & BFS * 枚舉排列 * Backtracking * 關於左閉右開區間 * 二分搜尋 * 0x04 [排序](https://hackmd.io/s/rklO5mbQz#) * $O(N^2)$ 排序 * $O(N\log_2N)$ 排序 * Counting sort * 箱子排序法 * Heap (Priority queue) * 拓樸排序 * 0x05 [Dynamic Programming (動態規劃)](https://hackmd.io/s/H1oNErB1X#) * 經典 DP 問題 * 無限 & 有限 背包問題 * Longest Increasing Subsequence (LIS) * Longest Common Subsequence (LCS) * 多維度 DP * DP 優化 * Convex Hull Optimization * 單調隊列優化 * 四邊形優化 (Knuth Optimization) * 1D/1D 的凹/凸性優化 * 2D/1D 轉換 1D/1D * 2D/1D 的凸性優化 * 0x06 [圖論](https://hackmd.io/s/SkpjM8qWz#) * 最小生成樹 * Single-Source Shortest Paths * All-Pairs Shortest Paths * A* 搜尋演算法 * 最大流 * Bipartite Matching * Articulation point & Cut edge * Strongly Connected Components (SCC) * 0x07 [String matching](https://hackmd.io/s/rkJSm2nMG#) * KMP algorithm * Z-algorithm * Rabin-Karp algorithm * AC 自動機 * 0x08 [進階資料結構](https://hackmd.io/s/SkryGuCbQ#) * Sparse Table: RMQ * Binary Indexed Tree * 線段樹 * Treap * 持久化 * 0x09 [數學](https://hackmd.io/s/BkwJBTOq7#) * 算術 * Karatsuba algorithm * 快速冪 * 矩陣快速冪 * 線性遞迴 * 數論 * GCD * 質數篩檢 * 質數判斷 * 計算幾何 * 浮點數誤差 * 線段相交 * 凸包 * sweep line & rotating calipers * 0xFF [附錄](https://hackmd.io/s/Sy4qWO10M#) * 常用 STL 函式介紹 * sort (包含使用 cmp 比較方式) * lower_bound & upper_bound * string * map * set * multiset * stack * queue * priority_queue * vector * list * pair > 可能要想一下這幾節的順序要怎安排 * 輸入優化 * 常用黑魔法 (? * 淺談 GNU Debugger (gdb) 寫作規範 --- - 慣例及符號會在`0x00` 緒論中描述,請編輯者看過後再動筆。 - 用句精簡準確,不要太冗。 - 寫作時請假設讀者已經理解此章之前的內容(可以提醒他們該往哪章複習) - 確定的事情,不要用不確定的語氣描述事情 - 在實作中的額外的優化技巧不需先提及,避免太過偏離主題。 - 例如 $a+(b-a)/2$ 會比 $(a+b)/2$ 好,搜尋刻意提早 `break;` 之類的。 - 在文中想偏離主題, 使用引言 (blockquote) `>`, 或是用腳註 (footnote) `[^]` :::info **Wording** 用字,專有名詞,專有名詞翻譯,或某些詞統一使用英文等 **Formatting** 各節段落的安排方式與字級規範,或文字格式,如英文和中文間的空格 **Coding Style** 範例程式的 coding style,沒有要求的就隨意 ::: ### Wording - 盡可能的在第一次出現的英文術語給予**適當**中文註解 (沒有適當的,就別翻譯 - 同一個意思的術語不要出現兩種寫法,盡量以意思容易傳達的術語為主 (e.g. 指派 vs. 賦值,遞迴 vs. 遞歸) >老實說我覺得遞歸這翻譯比較好,不過台灣普遍都用遞迴,那就用遞迴吧([name=yuessiah] 我認為賦值二字較指派更能直接表達行為[name=HexRabbit] - 行與列只用 column 與 row 稱呼 <!-- - 數列不用"頭"和"尾"這易混淆的字,建議用"最左"和"最右" --> > 文中有看到的話,幫忙修正 ### Formatting - 數字與英文與中文間要有空格隔開 - 中文用全形標點符號,英文與數字與符號間用半形 - list 統一用星號 - 練習/範例 的標題格式為 [來源 題號 題目名稱] e.g. [$\text{C}$ODEFORCES$^\beta$ 896D Nephren Runs a Cinema](http://codeforces.com/problemset/problem/896/D) - 練習/範例 一律使用 #### header - 範例後直接上題目 e.g. #### 範例 [GCJ Kickstart Round F 2018 B Specializing Villages](https://code.google.com/codejam/contest/3314486/dashboard#s=p1): > 關於範例和練習的規則,如果看到有沒遵循的,就順手幫改[name=yuessiah] ### Coding Style - 縮排:兩格空白 HackMD Edit 內下方可調: ![](https://i.imgur.com/RLKiBxU.png) Vim 中可 `:setl et sw=2 ts=2` syntax highlight 用 cpp (**別用 clike**) >若 for 迴圈遍歷的是整個 STL 的容器,我建議採用 c++11 的 [Range-based](https://en.cppreference.com/w/cpp/language/range-for) 寫法,這樣可讀性比較高, > `for (auto &it: C) {}` 這跟嚴謹的演算法書籍寫的 $\forall \text{it}\in C:$ 是很相似的[name=yuessiah] --- - 花括弧位置: ```cpp bool foo() { return true; } ``` --- - 保留字與後面括弧要有一格空白: ```cpp if (foo()) return true; ``` --- - 賦值等號旁要有空白: ```cpp a = 7; ``` --- - 逗號後要有空白: ```cpp int a, b, c, d, e; ``` --- - `for` 迴圈的格式: ```cpp for (int i = 0; i < n; i++); ``` --- - 段落中某些程式碼的省略: ```cpp for (int i = 0; i < n; i++) { foo(); : . // Keep Calm and Carry On! printf("bar\n"); } ``` License ---

Import from clipboard

Paste your markdown or webpage here...

Advanced permission required

Your current role can only read. Ask the system administrator to acquire write and comment permission.

This team is disabled

Sorry, this team is disabled. You can't edit this note.

This note is locked

Sorry, only owner can edit this note.

Reach the limit

Sorry, you've reached the max length this note can be.
Please reduce the content or divide it to more notes, thank you!

Import from Gist

Import from Snippet

or

Export to Snippet

Are you sure?

Do you really want to delete this note?
All users will lose their connection.

Create a note from template

Create a note from template

Oops...
This template has been removed or transferred.
Upgrade
All
  • All
  • Team
No template.

Create a template

Upgrade

Delete template

Do you really want to delete this template?
Turn this template into a regular note and keep its content, versions, and comments.

This page need refresh

You have an incompatible client version.
Refresh to update.
New version available!
See releases notes here
Refresh to enjoy new features.
Your user state has changed.
Refresh to load new user state.

Sign in

Forgot password

or

By clicking below, you agree to our terms of service.

Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
Wallet ( )
Connect another wallet

New to HackMD? Sign up

Help

  • English
  • 中文
  • Français
  • Deutsch
  • 日本語
  • Español
  • Català
  • Ελληνικά
  • Português
  • italiano
  • Türkçe
  • Русский
  • Nederlands
  • hrvatski jezik
  • język polski
  • Українська
  • हिन्दी
  • svenska
  • Esperanto
  • dansk

Documents

Help & Tutorial

How to use Book mode

Slide Example

API Docs

Edit in VSCode

Install browser extension

Contacts

Feedback

Discord

Send us email

Resources

Releases

Pricing

Blog

Policy

Terms

Privacy

Cheatsheet

Syntax Example Reference
# Header Header 基本排版
- Unordered List
  • Unordered List
1. Ordered List
  1. Ordered List
- [ ] Todo List
  • Todo List
> Blockquote
Blockquote
**Bold font** Bold font
*Italics font* Italics font
~~Strikethrough~~ Strikethrough
19^th^ 19th
H~2~O H2O
++Inserted text++ Inserted text
==Marked text== Marked text
[link text](https:// "title") Link
![image alt](https:// "title") Image
`Code` Code 在筆記中貼入程式碼
```javascript
var i = 0;
```
var i = 0;
:smile: :smile: Emoji list
{%youtube youtube_id %} Externals
$L^aT_eX$ LaTeX
:::info
This is a alert area.
:::

This is a alert area.

Versions and GitHub Sync
Get Full History Access

  • Edit version name
  • Delete

revision author avatar     named on  

More Less

Note content is identical to the latest version.
Compare
    Choose a version
    No search result
    Version not found
Sign in to link this note to GitHub
Learn more
This note is not linked with GitHub
 

Feedback

Submission failed, please try again

Thanks for your support.

On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

Please give us some advice and help us improve HackMD.

 

Thanks for your feedback

Remove version name

Do you want to remove this version name and description?

Transfer ownership

Transfer to
    Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

      Link with GitHub

      Please authorize HackMD on GitHub
      • Please sign in to GitHub and install the HackMD app on your GitHub repo.
      • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
      Learn more  Sign in to GitHub

      Push the note to GitHub Push to GitHub Pull a file from GitHub

        Authorize again
       

      Choose which file to push to

      Select repo
      Refresh Authorize more repos
      Select branch
      Select file
      Select branch
      Choose version(s) to push
      • Save a new version and push
      • Choose from existing versions
      Include title and tags
      Available push count

      Pull from GitHub

       
      File from GitHub
      File from HackMD

      GitHub Link Settings

      File linked

      Linked by
      File path
      Last synced branch
      Available push count

      Danger Zone

      Unlink
      You will no longer receive notification when GitHub file changes after unlink.

      Syncing

      Push failed

      Push successfully