从今开始,好好学习一下算法!
?
ACM 進階之路(轉(zhuǎn)) 2007年12月30日 星期日 18:20一般要做到50行以內(nèi)的程序不用調(diào)試、100行以內(nèi)的二分鐘內(nèi)調(diào)試成功.ACM主要是考算法的,主要時間是花在思考算法上,不是花在寫程序與debug上。
下面給個計劃你練練:
第一階段:練經(jīng)典常用算法,下面的每個算法給我打上十到二十遍,同時自己精簡代碼,
因為太常用,所以要練到寫時不用想,10-15分鐘內(nèi)打完,甚至關(guān)掉顯示器都可以把程序打
出來。
1.最短路(Floyd、Dijstra,BellmanFord)
2.最小生成樹(先寫個prim,kruscal要用并查集,不好寫)
3.大數(shù)(高精度)加減乘除
4.二分查找. (代碼可在五行以內(nèi))
5.叉乘、判線段相交、然后寫個凸包.
6.BFS、DFS,同時熟練hash表(要熟,要靈活,代碼要簡)
7.數(shù)學上的有:輾轉(zhuǎn)相除(兩行內(nèi)),線段交點、多角形面積公式.
8. 調(diào)用系統(tǒng)的qsort, 技巧很多,慢慢掌握.
9. 任意進制間的轉(zhuǎn)換
第二階段:練習復雜一點,但也較常用的算法。
如:
1. 二分圖匹配(匈牙利),最小路徑覆蓋
2. 網(wǎng)絡流,最小費用流。
3. 線段樹.
4. 并查集。
5. 熟悉動態(tài)規(guī)劃的各個典型:LCS、最長遞增子串、三角剖分、記憶化dp
6.博弈類算法。博弈樹,二進制法等。
7.最大團,最大獨立集。
8.判斷點在多邊形內(nèi)。
9. 差分約束系統(tǒng).
10. 雙向廣度搜索、A*算法,最小耗散優(yōu)先.
===========================================================
ACMer必備知識(任重而道遠......)
圖論
?? 路徑問題
??????? 0/1邊權(quán)最短路徑
??????? BFS
??????? 非負邊權(quán)最短路徑(Dijkstra)
??????????? 可以用Dijkstra解決問題的特征
??????? 負邊權(quán)最短路徑
??????? Bellman-Ford
??????????? Bellman-Ford的Yen-氏優(yōu)化
??????????? 差分約束系統(tǒng)
??????? Floyd
??????????? 廣義路徑問題
??????????? 傳遞閉包
??????????? 極小極大距離 / 極大極小距離
??????? Euler Path / Tour
??????????? 圈套圈算法
??????????? 混合圖的 Euler Path / Tour
??????? Hamilton Path / Tour
??????????? 特殊圖的Hamilton Path / Tour 構(gòu)造
??? 生成樹問題
??????? 最小生成樹
??????? 第k小生成樹
??????? 最優(yōu)比率生成樹
??????? 0/1分數(shù)規(guī)劃
??????? 度限制生成樹
??? 連通性問題
??????? 強大的DFS算法
??????? 無向圖連通性
??????????? 割點
??????????? 割邊
??????????? 二連通分支
??????????? 有向圖連通性
??????????? 強連通分支
??????????? 2-SAT
??????????? 最小點基
??? 有向無環(huán)圖
??????? 拓撲排序
??????????? 有向無環(huán)圖與動態(tài)規(guī)劃的關(guān)系
??? 二分圖匹配問題
??????? 一般圖問題與二分圖問題的轉(zhuǎn)換思路
??????? 最大匹配
??????????? 有向圖的最小路徑覆蓋
??????????? 0 / 1矩陣的最小覆蓋
??????? 完備匹配
??????? 最優(yōu)匹配
??????? 穩(wěn)定婚姻
??? 網(wǎng)絡流問題
??????? 網(wǎng)絡流模型的簡單特征和與線性規(guī)劃的關(guān)系
??????? 最大流最小割定理
??????? 最大流問題
??????????? 有上下界的最大流問題
??????????????? 循環(huán)流
??????? 最小費用最大流 / 最大費用最大流
??? 弦圖的性質(zhì)和判定
組合數(shù)學
??? 解決組合數(shù)學問題時常用的思想
??????? 逼近
??????? 遞推 / 動態(tài)規(guī)劃
??? 概率問題
??????? Polya定理
計算幾何 / 解析幾何
??? 計算幾何的核心:叉積 / 面積
??? 解析幾何的主力:復數(shù)
??? 基本形
??????? 點
??????? 直線,線段
??????? 多邊形
??? 凸多邊形 / 凸包
??????? 凸包算法的引進,卷包裹法
??? Graham掃描法
??????? 水平序的引進,共線凸包的補丁
http://irw.ncut.edu.tw/peterju/algorithm.html
求多條線段所有交點算法: line segment intersection, plane sweep algorithm掃描算法, sweep line掃描線,掃描線狀態(tài)sweep-line status, 事件點調(diào)度隊列event point queue, findIntersections, handleEventPoint, FindNewEvent
??? 完美凸包算法
??? 相關(guān)判定
??????? 兩直線相交
??????? 兩線段相交
??????? 點在任意多邊形內(nèi)的判定
??????? 點在凸多邊形內(nèi)的判定
??? 經(jīng)典問題
??????? 最小外接圓
??????????? 近似O(n)的最小外接圓算法
??????? 點集直徑
??????????? 旋轉(zhuǎn)卡殼,對踵點
??????? 多邊形的三角剖分
數(shù)學 / 數(shù)論
?? 最大公約數(shù)
??????? Euclid算法
??????????? 擴展的Euclid算法
??????????????? 同余方程 / 二元一次不定方程
??????????????? 同余方程組
??? 線性方程組
??????? 高斯消元法
??????????? 解mod 2域上的線性方程組
??????? 整系數(shù)方程組的精確解法
??? 矩陣
??????? 行列式的計算
??????????? 利用矩陣乘法快速計算遞推關(guān)系
??? 分數(shù)
??????? 分數(shù)樹
??????? 連分數(shù)逼近
??? 數(shù)論計算
??????? 求N的約數(shù)個數(shù)
??????? 求phi(N)
??????? 求約數(shù)和
??????? 快速數(shù)論變換
??????? ……
??? 素數(shù)問題
??????? 概率判素算法
??????? 概率因子分解
數(shù)據(jù)結(jié)構(gòu)
??? 組織結(jié)構(gòu)
??????? 二叉堆
??????? 左偏樹
??????? 二項樹
??????? 勝者樹
??????? 跳躍表
??????? 樣式圖標
??????? 斜堆
??????? reap
??? 統(tǒng)計結(jié)構(gòu)
??????? 樹狀數(shù)組
??????? 虛二叉樹
??????? 線段樹
??????????? 矩形面積并
??????????? 圓形面積并
??? 關(guān)系結(jié)構(gòu)
??????? Hash表
??????? 并查集
??????????? 路徑壓縮思想的應用
??? STL中的數(shù)據(jù)結(jié)構(gòu)
??????? vector
??????? deque
??????? set / map
動態(tài)規(guī)劃 / 記憶化搜索
?? 動態(tài)規(guī)劃和記憶化搜索在思考方式上的區(qū)別
??? 最長子序列系列問題
??????? 最長不下降子序列
??????? 最長公共子序列
??????? 最長公共不下降子序列
??? 一類NP問題的動態(tài)規(guī)劃解法
??? 樹型動態(tài)規(guī)劃
??? 背包問題
??? 動態(tài)規(guī)劃的優(yōu)化
??????? 四邊形不等式
??????? 函數(shù)的凸凹性
??????? 狀態(tài)設計
??????? 規(guī)劃方向
線性規(guī)劃
常用思想
??? 二分
??? 最小表示法
串
??? KMP
??? Trie結(jié)構(gòu)
??? 后綴樹/后綴數(shù)組
??? LCA/RMQ
??? 有限狀態(tài)自動機理論
排序
??? 選擇/冒泡
??? 快速排序
??? 堆排序
??? 歸并排序
??? 基數(shù)排序
??? 拓撲排序
??? 排序網(wǎng)絡
?
Dp狀態(tài)設計與方程總結(jié)
acmer發(fā)表于153天 8小時 39分鐘前
來源:www.608088.com??標簽:總結(jié)交流acm
1.不完全狀態(tài)記錄
<1>青蛙過河問題
<2>利用區(qū)間dp
2.背包類問題
<1> 0-1背包,經(jīng)典問題
<2>無限背包,經(jīng)典問題
<3>判定性背包問題
<4>帶附屬關(guān)系的背包問題
<5> + -1背包問題
<6>雙背包求最優(yōu)值
<7>構(gòu)造三角形問題
<8>帶上下界限制的背包問題(012背包)
3.線性的動態(tài)規(guī)劃問題
<1>積木游戲問題
<2>決斗(判定性問題)
<3>圓的最大多邊形問題
<4>統(tǒng)計單詞個數(shù)問題
<5>棋盤分割
<6>日程安排問題
<7>最小逼近問題(求出兩數(shù)之比最接近某數(shù)/兩數(shù)之和等于某數(shù)等等)
<8>方塊消除游戲(某區(qū)間可以連續(xù)消去求最大效益)
<9>資源分配問題
<10>數(shù)字三角形問題
<11>漂亮的打印
<12>郵局問題與構(gòu)造答案
<13>最高積木問題
<14>兩段連續(xù)和最大
<15>2次冪和問題
<16>N個數(shù)的最大M段子段和
<17>交叉最大數(shù)問題
4.判定性問題的dp(如判定整除、判定可達性等)??
<1>模K問題的dp
<2>特殊的模K問題,求最大(最小)模K的數(shù)
<3>變換數(shù)問題
5.單調(diào)性優(yōu)化的動態(tài)規(guī)劃
<1>1-SUM問題
<2>2-SUM問題
<3>序列劃分問題(單調(diào)隊列優(yōu)化)
6.剖分問題(多邊形剖分/石子合并/圓的剖分/乘積最大)
<1>凸多邊形的三角剖分問題
<2>乘積最大問題
<3>多邊形游戲(多邊形邊上是操作符,頂點有權(quán)值)
<4>石子合并(N^3/N^2/NLogN各種優(yōu)化)
7.貪心的動態(tài)規(guī)劃
<1>最優(yōu)裝載問題
<2>部分背包問題
<3>乘船問題
<4>貪心策略
<5>雙機調(diào)度問題Johnson算法
8.狀態(tài)dp
<1>牛仔射擊問題(博弈類)
<2>哈密頓路徑的狀態(tài)dp
<3>兩支點天平平衡問題
<4>一個有向圖的最接近二部圖
9.樹型dp
<1>完美服務器問題(每個節(jié)點有3種狀態(tài))
<2>小胖守皇宮問題
<3>網(wǎng)絡收費問題
<4>樹中漫游問題
<5>樹上的博弈
<6>樹的最大獨立集問題
<7>樹的最大平衡值問題
<8>構(gòu)造樹的最小環(huán)
?
- machine learning/pattern recognition
- android app to kernel
-
- 潘愛民 Windows內(nèi)核原理與實現(xiàn)
- windows internal
- 單元測試之道 C#版?
- autorelease
CS courses
http://www2.cuhk.edu.hk/gss/timetable_faculty.php#CSC
http://www.cse.ust.hk/pg/programs/pgcore.html
http://ocw.mit.edu/courses/#electrical-engineering-and-computer-science
http://theory.stanford.edu/~rajeev/cs361.html#Schedule
PG Core Courses in PhD Program
CSE PG Core Courses must have a written final examination. Students must obtain a B+ or above to satisfy the area requirement.
Artificial Intelligence
??? * COMP 521: Introduction to Artificial Intelligence
??? * COMP 522: Machine Learning
??? * COMP 537: Knowledge Discovery in Databases (cross listed with Database*)
??? * COMP 538: Introduction to Bayesian Networks
Database
??? * COMP 530: Introduction to Database Management
??? * COMP 537: Knowledge Discovery in Databases (cross listed with Artificial Intelligence*)
Networking
??? * COMP561: Computer Networks
??? * COMP562: Advanced Topics in Networking
Software Technologies
??? * COMP511: Fundamentals of Program Analysis
??? * COMP581: Cryptography and Security
Theoretical Computer Science
??? * COMP 570: Introduction to Advanced Algorithms
??? * COMP 572: Combinatorial Optimization
??? * COMP 573: Computational Geometry
Vision and Graphics
??? * COMP 524: Computer Vision
??? * COMP 541: Advanced Computer Graphics
?
轉(zhuǎn)載于:https://www.cnblogs.com/cutepig/archive/2009/06/26/1511999.html
總結(jié)
以上是生活随笔為你收集整理的从今开始,好好学习一下算法!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 国人常用的APP有哪些?除了微信 这9款
- 下一篇: 谈*静态页*(或网页*静态化*)的时候,