+1 ironwood branch 隊員:<br>左起吳哲仰、時丕勳、楊涵傑
球主

楊涵傑 kelvin

ACM-ICPC 2013 World Finals 世界決賽 金牌

ACM-ICPC 2011, 2012 馬來西亞賽區、台灣賽區 冠軍

2008 IOI 國際資訊奧林匹亞 金牌

擅長類型

教學內容

Advanced Topics: The Orange Juice of Dynamic Programming

簡哥

簡伯宇 l521530

ACM-ICPC 2012 日本賽區 第二名

2008 IMO 國際數學奧林匹亞 金牌

擅長類型

教學內容

數論、組合

300x300
300x300
皮皮

時丕勳 peter50216

TopCoder Open 2013 Algorithm 世界決賽 第二名

ACM-ICPC 2013 World Finals 世界決賽 金牌

ACM-ICPC 2009-2012 伊朗賽區、印尼賽區、馬來西亞賽區、台灣賽區 冠軍

2009 IOI 國際資訊奧林匹亞 金牌

2006-2008 IMO 國際數學奧林匹亞 銀牌

擅長類型

教學內容

博弈問題之 Nim Game

海恩

吳哲仰 seanwu

ACM-ICPC 2013 World Finals 世界決賽 金牌

ACM-ICPC 2009-2012 伊朗賽區、印尼賽區、馬來西亞賽區、台灣賽區 冠軍

2008 IOI 國際資訊奧林匹亞 金牌

擅長類型

教學內容

計算幾何

300x300
300x300
神文

蔣盛文 david942j

ACM-ICPC 2013 韓國賽區 第二名

ACM-ICPC 2012 越南賽區 Second Prize

ACM-ICPC 2011 菲律賓賽區 第二名

台大 Coursera-PaGamO 工作團隊

擅長類型

教學內容

圖論

序可

陳庭緯 shik

ACM-ICPC 2012 World Finals 世界決賽

ACM-ICPC 2011, 2012 日本賽區 第三名、第二名

ACM-ICPC 2010, 2011 台灣賽區 第一名

2010 IOI 國際資訊奧林匹亞 金牌

現任台大 ACM-ICPC 程式競賽培訓班課程助教

擅長類型

教學內容

資料結構

300x300
300x300
使改哩

楊鈞百 skyly

ACM-ICPC 2013 印尼賽區 第二名

2010 IOI 國際資訊奧林匹亞 銀牌

擅長類型

教學內容

動態規劃

蚯蚓

李瑞珉 coquelicot

ACM-ICPC 2012 日本賽區 第二名

ACM-ICPC 2011 韓國賽區 第二名

2011 IOI 國際資訊奧林匹亞 金牌

現任台大 ACM-ICPC 程式競賽培訓班課程助教

擅長類型

教學內容

字串處理

300x300
300x300
吉姆

黃以文 dreamoon

ACM-ICPC 2012 World Finals 世界決賽

ACM-ICPC 2011 台灣賽區 第一名

台大 ACM-ICPC 程式競賽培訓班 2011, 2012 課程助教

UVa Online Judge 答對題數 3000+

擅長類型

教學內容

網路流問題

  • 充實的課程

    由講師為各位準備的紮實培訓,除了知識方面收穫以外,更可以從神人等級的選手們獲取寫程式的熱情與身為資工人的生活態度。我們不囫圇吞棗,課程的編排會以深入淺出的方式,引導你從一個階段踏入下一個程式階段。讓你學會的不只是怎麼寫程式,而是為什麼要這樣寫程式。

  • 完整的自我鍛鍊

    我們將會有密集的練習賽,身處刺激緊張的環境之中,有效提升自我能力。在練習賽進行的同時,現場也會有工作人員給予指導,提供最即時的提點與協助。於賽後、甚至是營隊結束後,我們鼓勵同學們相互討論題目與做法,經過切磋與觀摩,更能大幅提升寫程式的風格與穩定度。

    如同 ACM-ICPC 國際大學生城市設計競賽的 Logo 一樣,所有的程式都是經過 Think, Create, Solve 三大步驟走過來的。唯有腳踏實地經歷過每一個階段,才能觸類旁通,達到將理論靈活運用到未來生活的境界。

  • 寫程式的態度

    熱情!

    投入源源不斷的熱情,求知若渴。不只寫得一手好程式,更能夠自由自在地掌控程式的每一部分,才能成為一名真正的程式設計師。

課前自我鍛鍊

先到各大 Online Judge 申請帳號寫題目吧!

舒適的寫比賽環境

預備的預備知識

  • 網路資源

動態規劃基礎

課程大綱:

  • 什麼是動態規劃 (DP)?
  • 為什麼要使用 DP?
  • 何時可以使用 DP?
  • DP 狀態與轉移方程
  • 狀態設計的切入點
  • Top-down 與 Bottom-up
  • 特殊狀態表示: 狀態壓縮
  • 更多小技巧

賽局與博弈問題

課程大綱:

  • 基本的 Nim 介紹
  • SG value 及其性質
  • 各式各樣的 Nim game

數論與組合

預備知識:

動態規劃基礎

課程大綱:

  • operation under module P
  • basic combination
  • 數位統計問題
  • 排容原理
  • (Polya/Burnside)

資料結構

預備知識:

對於 stack, queue, heap 有基本認知

課程大綱:

  • STL
  • stack
  • queue
  • heap
  • disjoint set
  • copy-on-write technique
  • magical treap

計算幾何導論

課程大綱:

  • An Introduction: Convex Hull
  • Geometric operators & Numerical Methods
  • Sweep Line
  • Rotating Caliper
  • KD-tree
  • Randomized Algorithm

圖論

預備知識:

  • 最短路徑演算法:Floyd-Warshall, Dijkstra, SPFA
  • 最小生成樹演算法:Kruskal's Algorithm, Prim's Algorithm
  • 強連通元件(SCC)與雙連通元件(BCC)的定義與一種演算法

課程大綱:

  • 最短路徑演算法的應用
  • Tree 的性質與常用的技巧
  • 強連通元件(SCC)與雙連通元件(BCC)的應用
  • 圖論中的覆蓋問題:最大獨立集、最大匹配、最小點覆蓋、最小邊覆蓋
  • 最大團(Clique)演算法

網路流問題

預備知識:

  • graph的基本常識,知道graph的相關專有名詞的意思。
  • 認真聽完camp中的圖論的課
  • 知道flow的基本定義
  • 知道flow的基礎演算法如Ford-Fulkerson Algorithm
  • 知道時間複雜度的概念

課程大綱:

  • dinic演算法的介紹
  • 增廣路的應用
  • 常見flow模型
  • min-cost-max-flow
  • 上下界流
  • 匹配與二分圖
  • 最小割問題的應用
  • 程式實作上的疑難解決
  • 介紹advanced topics(匈牙利演算法,一般圖匹配...)

動態規劃進階 -- The Orange Juice of Dynamic Programming

簡介:

動態規劃(DP)可以解決非常多各式各樣的問題,關鍵的"紀錄已計算狀態" 的想法在各式各樣的問題中都適用。如何定義適合且數量有限的狀態、如何進行有效率的狀態轉移通常是設計這類演算法的重點。

然而也因為這樣的關鍵想法──"紀錄已計算狀態",當狀態空間龐大的時候,動態規劃類做法也往往有時間與空間上需求難以壓低的弊病。這部分的課程,就是為了介紹給已經學會動態規劃的大家,實務上各種經典進一步壓縮動態規劃的時間與空間複雜度,把這顆 DP 柳丁再榨出汁來的手段。

預備知識:

Classic xD/yD DP

課程大綱:

  • Rolling Table: Latest States Only
  • Reconstruction of Path information
  • The Art of Amortization
  • Subtree DP
  • DP with Convexity and Concavity
  • Case Analysis

字串處理

預備知識:

希望對hash、樹狀結構、複雜度有點概念

課程大綱:

字串第一主題在介紹 KMP、Z-Value 等 "用到以前成果來加速" 的核心概念。第二主題在介紹 Trie, AC自動機, 以及搭配 fail link 所形成的樹的精妙之處。剩下的時間應該都會拿來講 hash 在字串上的應用。會提及 BM 和 Suffix Array & Depth Array. 但是基本上不會是主題.