Red Huang

Red Huang

ACM ICPC 育成プログラム

ACM 大量習題題庫

ACM 大量習題題庫
現在網上有許多題庫,大多是可以在線評測,所以叫做 Online Judge。除了 USACO 是為 IOI 準備外,其餘幾乎全部是大學的 ACM 競賽題庫。

USACO

http://ace.delos.com/usacogate

美國著名在線題庫,專門為信息學競賽選手準備
TJU

http://acm.tongji.edu.cn/

同濟大學在線題庫,唯一的中文題庫,適合 NOIP 選手
ZJU

http://acm.zju.edu.cn/

浙江大學在線題庫
JLU

http://acm.jlu.edu.cn/

吉林大學在線題庫(一直上不去)
PKU

http://acm.pku.edu.cn

北京大學在線題庫
URAL

http://acm.timus.ru

俄羅斯烏拉爾大學在線題庫
SGU

http://acm.sgu.ru/

俄羅斯聖薩拉托夫州大學在線題庫
ELJ

http://acm.mipt.ru/judge/bin/problems.pl?lang=en

俄羅斯莫斯科物理技術學院
SPOJ

https://spoj.sphere.pl/

波蘭格但斯克理工大學
UVA

http://acm.uva.es/

西班牙的 Universidad de Valladolid 在線題
ACM 聯繫建議

一位高手對我的建議:

一般要做到 50 行以內的程序不用調試、100 行以內的二分鐘內調試成功.acm 主要是考算法的,主要時間是花在思考算法上,不是花在寫程序與 debug 上。
下面給個計劃你練練:

第一階段:
練經典常用算法,下面的每個算法給我打上十到二十遍,同時自己精簡代碼,
因為太常用,所以要練到寫時不用想,10-15 分鐘內打完,甚至關掉顯示器都可以把程序打出來.
1. 最短路 (Floyd、Dijstra,BellmanFord)
2. 最小生成樹 (先寫個 prim,kruscal 要用並查集,不好寫)
3. 大數(高精度)加減乘除
4. 二分查找. (代碼可在五行以內)
5. 叉乘、判線段相交、然後寫個凸包.
6.BFS、DFS, 同時熟練 hash 表 (要熟,要靈活,代碼要簡)
7. 數學上的有:輾轉相除(兩行內),線段交點、多角形面積公式.
8. 調用系統的 qsort, 技巧很多,慢慢掌握.
9. 任意進制間的轉換
第二階段:
練習複雜一點,但也較常用的算法。
如:
1. 二分圖匹配(匈牙利),最小路徑覆蓋
2. 網絡流,最小費用流。
3. 線段樹.
4. 並查集。
5. 熟悉動態規劃的各個典型:LCS、最長遞增子串、三角剖分、記憶化 dp
6. 博弈類算法。博弈樹,二進制法等。
7. 最大團,最大獨立集。
8. 判斷點在多邊形內。
9. 差分約束系統.
10. 雙向廣度搜索、A * 算法,最小耗散優先.
第三階段:
前兩個階段是打基礎,第三階段是鍛煉在比賽中可以快速建立模型、想新算法。這就要平時多做做綜合的題型了。
1. 把 oibh 上的論文看看(大概幾百篇的,我只看了一點點,呵呵)。
2. 平時掃掃 zoj 上的難題啦,別老做那些不用想的題.(中大 acm 的版主經常說我挑簡單的來:-P)
3. 多參加網上的比賽,感受一下比賽的氣氛,評估自己的實力.
4. 一道題不要過了就算,問一下人,有更好的算法也打一下。
5. 做過的題要記好 :-)
ACM ICPC 學習計劃

大牛給的計劃 ——
一般要做到 50 行以內的程序不用調試、100 行以內的二分鐘內調試成功.acm 主要是考算法的,主要時間是花在思考算法上,不是花在寫程序與 debug 上。
下面給個計劃你練練:
第一階段:練經典常用算法,下面的每個算法給我打上十到二十遍,同時自己精簡代碼,
因為太常用,所以要練到寫時不用想,10-15 分鐘內打完,甚至關掉顯示器都可以把程序打出來.
1. 最短路 (Floyd、Dijstra,BellmanFord)
2. 最小生成樹 (先寫個 prim,kruscal 要用並查集,不好寫)
3. 大數(高精度)加減乘除
4. 二分查找. (代碼可在五行以內)
5. 叉乘、判線段相交、然後寫個凸包.
6.BFS、DFS, 同時熟練 hash 表 (要熟,要靈活,代碼要簡)
7. 數學上的有:輾轉相除(兩行內),線段交點、多角形面積公式.
8. 調用系統的 qsort, 技巧很多,慢慢掌握.
9. 任意進制間的轉換

第二階段:練習複雜一點,但也較常用的算法。
如:
1. 二分圖匹配(匈牙利),最小路徑覆蓋
2. 網絡流,最小費用流。
3. 線段樹.
4. 並查集。
5. 熟悉動態規劃的各個典型:LCS、最長遞增子串、三角剖分、記憶化 dp
6. 博弈類算法。博弈樹,二進制法等。
7. 最大團,最大獨立集。
8. 判斷點在多邊形內。
9. 差分約束系統.
10. 雙向廣度搜索、A * 算法,最小耗散優先.
相關的知識

圖論

路徑問題
0/1 邊權最短路徑
BFS
非負邊權最短路徑(Dijkstra)
可以用 Dijkstra 解決問題的特徵
負邊權最短路徑
Bellman-Ford
Bellman-Ford 的 Yen - 氏優化
差分約束系統
Floyd
廣義路徑問題
傳遞閉包
極小極大距離 / 極大極小距離
Euler Path / Tour
圈套圈算法
混合圖的 Euler Path / Tour
Hamilton Path / Tour
特殊圖的 Hamilton Path / Tour 構造

生成樹問題
最小生成樹
第 k 小生成樹
最優比率生成樹
0/1 分數規劃
度限制生成樹

連通性問題
強大的 DFS 算法
無向圖連通性
割點
割邊
二連通分支
有向圖連通性
強連通分支
2-SAT
最小點基

有向無環圖
拓撲排序
有向無環圖與動態規劃的關系

二分圖匹配問題
一般圖問題與二分圖問題的轉換思路
最大匹配
有向圖的最小路徑覆蓋
0 / 1 矩陣的最小覆蓋
完備匹配
最優匹配
穩定婚姻

網絡流問題
網絡流模型的簡單特征和與線性規劃的關系
最大流最小割定理
最大流問題
有上下界的最大流問題
循環流
最小費用最大流 / 最大費用最大流

弦圖的性質和判定
組合數學

解決組合數學問題時常用的思想
逼近
遞推 / 動態規劃
概率問題
Polya 定理
計算幾何 / 解析幾何

計算幾何的核心:叉積 / 面積
解析幾何的主力:複數

基本形

直線,線段
多邊形

凸多邊形 / 凸包
凸包算法的引進,卷包裹法

Graham 掃描法
水平序的引進,共線凸包的補丁

完美凸包算法

相關判定
兩直線相交
兩線段相交
點在任意多邊形內的判定
點在凸多邊形內的判定

經典問題
最小外接圓
近似 O (n) 的最小外接圓算法
點集直徑
旋轉卡殼,對踵點
多邊形的三角剖分
數學 / 數論

最大公約數
Euclid 算法
擴展的 Euclid 算法
同餘方程 / 二元一次不定方程
同餘方程組

線性方程組
高斯消元法
解 mod 2 域上的線性方程組
整系數方程組的精確解法

矩陣
行列式的計算
利用矩陣乘法快速計算遞推關系

分數
分數樹
連分數逼近

數論計算
求 N 的約數個數
求 phi (N)
求約數和
快速數論變換
……

素數問題
概率判素算法
概率因子分解
數據結構

組織結構
二叉堆
左偏樹
二項樹
勝者樹
跳躍表
樣式圖標
斜堆
reap

統計結構
樹狀數組
虛二叉樹
線段樹
矩形面積並
圓形面積並

關系結構
Hash 表
並查集
路徑壓縮思想的應用

STL 中的數據結構
vector
deque
set / map
動態規劃 / 記憶化搜索

動態規劃和記憶化搜索在思考方式上的區別

最長子序列系列問題
最長不下降子序列
最長公共子序列
最長公共不下降子序列

一類 NP 問題的動態規劃解法

樹型動態規劃

背包問題

動態規劃的優化
四邊形不等式
函數的凸凹性
狀態設計
規劃方向
線性規劃

常用思想

二分
最小表示法

KMP
Trie 結構
後綴樹 / 後綴數組
LCA/RMQ
有限狀態自動機理論

排序
選擇 / 冒泡
快速排序
堆排序
歸並排序
基數排序
拓撲排序
排序網絡
熟練掌握數據結構、常用算法匯聚

(一)

不可能都完全記住那麼多的算法.
常用算法,拿過來就可以寫出來
不常用的,拿起書來,看 10 分鐘,就能理解算法 (因為以前記過).
對以前沒有記過的算法,就不好說了,難的可能要研究好幾天.
這樣就可以了.

應該熟練掌握的常用的算法應該有:
各種排序算法(插入排序、冒泡排序、選擇排序,快速排序,堆排序,歸並排序)
線性表 (一般的線性表,棧,隊列) 的插入和刪除
二叉樹的遍歷(前序,中序,後序)
圖的遍歷(深度優先,廣度優先)
二分法查找,排序二叉樹,Hash 查找(處理沖突的方法)。
(二)

分析一個東西,你可以用不同的眼光去看待,有很多時候,就跟自己生活一樣,覺得小時候看待問題很幼稚,現在看問題全面了,而且方式不一樣了,為什麼,就是成長吧,就跟這個一樣的,你對算法,比如寫一個程序,可能直接寫很簡單,可是可以有一些有趣的方式,比如通過什麼樣來表達,怎麼樣更高效.. 等等吧

(三)

於大學裏把基本的專業課學紮實就 ok,如:數據結構,離散,操作系統等。碰到一些基本的數據結構和算法,如查找排序要根據原理馬上能寫出相應的代碼就行了,我個人是這樣理解的,對於更深層次的東西,也是建立在自己熟練的基礎之上的吧

(四)

算法與數據結構考驗試題精析》第 2 版 機械工業出版社
如果你想練習的話,這裏有 N 多的題可以來練習,但實際中能用到的比較少,除非搞一些高端的玩意,不過平時也可以在自己的項目中結合使用

(五)

數據結構在平時可能用不上,但數據結構可以培養你程序時如果注意效率的意識,一個學過數據結構的人和一個沒有學過數據結構的人寫出來的程序可能在效率上有差別。

(六)

搞 ACM 需要的掌握的算法.
要注意,ACM 的競賽性強,因此自己應該和自己的實際應用聯系起來.
適合自己的才是好的,有的人不適合搞算法,喜歡系統架構,因此不要看到別人什麼就眼紅,
發揮自己的長處,這才是重要的.
第一階段:練經典常用算法,下面的每個算法給我打上十到二十遍,同時自己精簡代碼,
因為太常用,所以要練到寫時不用想,10-15 分鐘內打完,甚至關掉顯示器都可以把程序打出來.
1. 最短路 (Floyd、Dijstra,BellmanFord)
2. 最小生成樹 (先寫個 prim,kruscal 要用並查集,不好寫)
3. 大數(高精度)加減乘除
4. 二分查找. (代碼可在五行以內)
5. 叉乘、判線段相交、然後寫個凸包.
6.BFS、DFS, 同時熟練 hash 表 (要熟,要靈活,代碼要簡)
7. 數學上的有:輾轉相除(兩行內),線段交點、多角形面積公式.
8. 調用系統的 qsort, 技巧很多,慢慢掌握.
9. 任意進制間的轉換

第二階段:練習複雜一點,但也較常用的算法。
如:
1. 二分圖匹配(匈牙利),最小路徑覆蓋
2. 網絡流,最小費用流。
3. 線段樹.
4. 並查集。
5. 熟悉動態規劃的各個典型:LCS、最長遞增子串、三角剖分、記憶化 dp
6. 博弈類算法。博弈樹,二進制法等。
7. 最大團,最大獨立集。
8. 判斷點在多邊形內。
9. 差分約束系統.
10. 雙向廣度搜索、A * 算法,最小耗散優先.

相關的知識

圖論

路徑問題
0/1 邊權最短路徑
BFS
非負邊權最短路徑(Dijkstra)
可以用 Dijkstra 解決問題的特徵
負邊權最短路徑
Bellman-Ford
Bellman-Ford 的 Yen - 氏優化
差分約束系統
Floyd
廣義路徑問題
傳遞閉包
極小極大距離 / 極大極小距離
Euler Path / Tour
圈套圈算法
混合圖的 Euler Path / Tour
Hamilton Path / Tour
特殊圖的 Hamilton Path / Tour 構造

生成樹問題
最小生成樹
第 k 小生成樹
最優比率生成樹
0/1 分數規劃
度限制生成樹

連通性問題
強大的 DFS 算法
無向圖連通性
割點
割邊
二連通分支
有向圖連通性
強連通分支
2-SAT
最小點基

有向無環圖
拓撲排序
有向無環圖與動態規劃的關系

二分圖匹配問題
一般圖問題與二分圖問題的轉換思路
最大匹配
有向圖的最小路徑覆蓋
0 / 1 矩陣的最小覆蓋
完備匹配
最優匹配
穩定婚姻

網絡流問題
網絡流模型的簡單特征和與線性規劃的關系
最大流最小割定理
最大流問題
有上下界的最大流問題
循環流
最小費用最大流 / 最大費用最大流

弦圖的性質和判定
組合數學

解決組合數學問題時常用的思想
逼近
遞推 / 動態規劃
概率問題
Polya 定理
計算幾何 / 解析幾何

計算幾何的核心:叉積 / 面積
解析幾何的主力:複數

基本形

直線,線段
多邊形

凸多邊形 / 凸包
凸包算法的引進,卷包裹法

Graham 掃描法
水平序的引進,共線凸包的補丁

完美凸包算法

相關判定
兩直線相交
兩線段相交
點在任意多邊形內的判定
點在凸多邊形內的判定

經典問題
最小外接圓
近似 O (n) 的最小外接圓算法
點集直徑
旋轉卡殼,對踵點
多邊形的三角剖分
數學 / 數論

最大公約數
Euclid 算法
擴展的 Euclid 算法
同餘方程 / 二元一次不定方程
同餘方程組

線性方程組
高斯消元法
解 mod 2 域上的線性方程組
整系數方程組的精確解法

矩陣
行列式的計算
利用矩陣乘法快速計算遞推關系

分數
分數樹
連分數逼近

數論計算
求 N 的約數個數
求 phi (N)
求約數和
快速數論變換
……

素數問題
概率判素算法
概率因子分解
數據結構

組織結構
二叉堆
左偏樹
二項樹
勝者樹
跳躍表
樣式圖標
斜堆
reap

統計結構
樹狀數組
虛二叉樹
線段樹
矩形面積並
圓形面積並

關系結構
Hash 表
並查集
路徑壓縮思想的應用

STL 中的數據結構
vector
deque
set / map
動態規劃 / 記憶化搜索

動態規劃和記憶化搜索在思考方式上的區別

最長子序列系列問題
最長不下降子序列
最長公共子序列
最長公共不下降子序列

一類 NP 問題的動態規劃解法

樹型動態規劃

背包問題

動態規劃的優化
四邊形不等式
函數的凸凹性
狀態設計
規劃方向
線性規劃

常用思想

二分
最小表示法

KMP
Trie 結構
後綴樹 / 後綴數組
LCA/RMQ
有限狀態自動機理論

排序
選擇 / 冒泡
快速排序
堆排序
歸並排序
基數排序
拓撲排序
排序網絡
熟練掌握數據結構、常用算法匯聚

(一)

不可能都完全記住那麼多的算法.
常用算法,拿過來就可以寫出來
不常用的,拿起書來,看 10 分鐘,就能理解算法 (因為以前記過).
對以前沒有記過的算法,就不好說了,難的可能要研究好幾天.
這樣就可以了.

應該熟練掌握的常用的算法應該有:
各種排序算法(插入排序、冒泡排序、選擇排序,快速排序,堆排序,歸並排序)
線性表 (一般的線性表,棧,隊列) 的插入和刪除
二叉樹的遍歷(前序,中序,後序)
圖的遍歷(深度優先,廣度優先)
二分法查找,排序二叉樹,Hash 查找(處理沖突的方法)。
(二)

分析一個東西,你可以用不同的眼光去看待,有很多時候,就跟自己生活一樣,覺得小時候看待問題很幼稚,現在看問題全面了,而且方式不一樣了,為什麼,就是成長吧,就跟這個一樣的,你對算法,比如寫一個程序,可能直接寫很簡單,可是可以有一些有趣的方式,比如通過什麼樣來表達,怎麼樣更高效.. 等等吧

(三)

於大學裏把基本的專業課學紮實就 ok,如:數據結構,離散,操作系統等。碰到一些基本的數據結構和算法,如查找排序要根據原理馬上能寫出相應的代碼就行了,我個人是這樣理解的,對於更深層次的東西,也是建立在自己熟練的基礎之上的吧

(四)

算法與數據結構考驗試題精析》第 2 版 機械工業出版社
如果你想練習的話,這裏有 N 多的題可以來練習,但實際中能用到的比較少,除非搞一些高端的玩意,不過平時也可以在自己的項目中結合使用

(五)

數據結構在平時可能用不上,但數據結構可以培養你程序時如果注意效率的意識,一個學過數據結構的人和一個沒有學過數據結構的人寫出來的程序可能在效率上有差別。

(六)

搞 ACM 需要的掌握的算法.
要注意,ACM 的競賽性強,因此自己應該和自己的實際應用聯系起來.
適合自己的才是好的,有的人不適合搞算法,喜歡系統架構,因此不要看到別人什麼就眼紅,
發揮自己的長處,這才是重要的.
第一階段:練經典常用算法,下面的每個算法給我打上十到二十遍,同時自己精簡代碼,
因為太常用,所以要練到寫時不用想,10-15 分鐘內打完,甚至關掉顯示器都可以把程序打出來.
1. 最短路 (Floyd、Dijstra,BellmanFord)
2. 最小生成樹 (先寫個 prim,kruscal 要用並查集,不好寫)
3. 大數(高精度)加減乘除
4. 二分查找. (代碼可在五行以內)
5. 叉乘、判線段相交、然後寫個凸包.
6.BFS、DFS, 同時熟練 hash 表 (要熟,要靈活,代碼要簡)
7. 數學上的有:輾轉相除(兩行內),線段交點、多角形面積公式.
8. 調用系統的 qsort, 技巧很多,慢慢掌握.
9. 任意進制間的轉換

第二階段:練習複雜一點,但也較常用的算法。
如:
1. 二分圖匹配(匈牙利),最小路徑覆蓋
2. 網絡流,最小費用流。
3. 線段樹.
4. 並查集。
5. 熟悉動態規劃的各個典型:LCS、最長遞增子串、三角剖分、記憶化 dp
6. 博弈類算法。博弈樹,二進制法等。
7. 最大團,最大獨立集。
8. 判斷點在多邊形內。
9. 差分約束系統.
10. 雙向廣度搜索、A * 算法,最小耗散優先.

相關的知識

圖論

路徑問題
0/1 邊權最短路徑
BFS
非負邊權最短路徑(Dijkstra)
可以用 Dijkstra 解決問題的特徵
負邊權最短路徑
Bellman-Ford
Bellman-Ford 的 Yen - 氏優化
差分約束系統
Floyd
廣義路徑問題
傳遞閉包
極小極大距離 / 極大極小距離
Euler Path / Tour
圈套圈算法
混合圖的 Euler Path / Tour
Hamilton Path / Tour
特殊圖的 Hamilton Path / Tour 構造

生成樹問題
最小生成樹
第 k 小生成樹
最優比率生成樹
0/1 分數規劃
度限制生成樹

連通性問題
強大的 DFS 算法
無向圖連通性
割點
割邊
二連通分支
有向圖連通性
強連通分支
2-SAT
最小點基

有向無環圖
拓撲排序
有向無環圖與動態規劃的關系

二分圖匹配問題
一般圖問題與二分圖問題的轉換思路
最大匹配
有向圖的最小路徑覆蓋
0 / 1 矩陣的最小覆蓋
完備匹配
最優匹配
穩定婚姻

網絡流問題
網絡流模型的簡單特征和與線性規劃的關系
最大流最小割定理
最大流問題
有上下界的最大流問題
循環流
最小費用最大流 / 最大費用最大流

弦圖的性質和判定
組合數學

解決組合數學問題時常用的思想
逼近
遞推 / 動態規劃
概率問題
Polya 定理
計算幾何 / 解析幾何

計算幾何的核心:叉積 / 面積
解析幾何的主力:複數

基本形

直線,線段
多邊形

凸多邊形 / 凸包
凸包算法的引進,卷包裹法

Graham 掃描法
水平序的引進,共線凸包的補丁

完美凸包算法

相關判定
兩直線相交
兩線段相交
點在任意多邊形內的判定
點在凸多邊形內的判定

經典問題
最小外接圓
近似 O (n) 的最小外接圓算法
點集直徑
旋轉卡殼,對踵點
多邊形的三角剖分
數學 / 數論

最大公約數
Euclid 算法
擴展的 Euclid 算法
同餘方程 / 二元一次不定方程
同餘方程組

線性方程組
高斯消元法
解 mod 2 域上的線性方程組
整系數方程組的精確解法

矩陣
行列式的計算
利用矩陣乘法快速計算遞推關系

分數
分數樹
連分數逼近

數論計算
求 N 的約數個數
求 phi (N)
求約數和
快速數論變換
……

素數問題
概率判素算法
概率因子分解
數據結構

組織結構
二叉堆
左偏樹
二項樹
勝者樹
跳躍表
樣式圖標
斜堆
reap

統計結構
樹狀數組
虛二叉樹
線段樹
矩形面積並
圓形面積並

關系結構
Hash 表
並查集
路徑壓縮思想的應用

STL 中的數據結構
vector
deque
set / map
動態規劃 / 記憶化搜索

動態規劃和記憶化搜索在思考方式上的區別

最長子序列系列問題
最長不下降子序列
最長公共子序列
最長公共不下降子序列

一類 NP 問題的動態規劃解法

樹型動態規劃

背包問題

動態規劃的優化
四邊形不等式
函數的凸凹性
狀態設計
規劃方向
線性規劃

常用思想

二分
最小表示法

KMP
Trie 結構
後綴樹 / 後綴數組
LCA/RMQ
有限狀態自動機理論

排序
選擇 / 冒泡
快速排序
堆排序
歸並排序
基數排序
拓撲排序
排序網絡
熟練掌握數據結構、常用算法匯聚

(一)

不可能都完全記住那麼多的算法.
常用算法,拿過來就可以寫出來
不常用的,拿起書來,看 10 分鐘,就能理解算法 (因為以前記過).
對以前沒有記過的算法,就不好說了,難的可能要研究好幾天.
這樣就可以了.

應該熟練掌握的常用的算法應該有:
各種排序算法(插入排序、冒泡排序、選擇排序,快速排序,堆排序,歸並排序)
線性表 (一般的線性表,棧,隊列) 的插入和刪除
二叉樹的遍歷(前序,中序,後序)
圖的遍歷(深度優先,廣度優先)
二分法查找,排序二叉樹,Hash 查找(處理沖突的方法)。
(二)

分析一個東西,你可以用不同的眼光去看待,有很多時候,就跟自己生活一樣,覺得小時候看待問題很幼稚,現在看問題全面了,而且方式不一樣了,為什麼,就是成長吧,就跟這個一樣的,你對算法,比如寫一個程序,可能直接寫很簡單,可是可以有一些有趣的方式,比如通過什麼樣來表達,怎麼樣更高效.. 等等吧

(三)

於大學裏把基本的專業課學紮實就 ok,如:數據結構,離散,操作系統等。碰到一些基本的數據結構和算法,如查找排序要根據原理馬上能寫出相應的代碼就行了,我個人是這樣理解的,對於更深層次的東西,也是建立在自己熟練的基礎之上的吧

(四)

算法與數據結構考驗試題精析》第 2 版 機械工業出版社
如果你想練習的話,這裏有 N 多的題可以來練習,但實際中能用到的比較少,除非搞一些高端的玩意,不過平時也可以在自己的項目中結合使用

(五)

數據結構在平時可能用不上,但數據結構可以培養你程序時如果注意效率的意識,一個學過數據結構的人和一個沒有學過數據結構的人寫出來的程序可能在效率上有差別。

(六)

搞 ACM 需要的掌握的算法.
要注意,ACM 的競賽性強,因此自己應該和自己的實際應用聯系起來.
適合自己的才是好的,有的人不適合搞算法,喜歡系統架構,因此不要看到別人什麼就眼紅,
發揮自己的長處,這才是重要的.
第一階段:練經典常用算法,下面的每個算法給我打上十到二十遍,同時自己精簡代碼,
因為太常用,所以要練到寫時不用想,10-15 分鐘內打完,甚至關掉顯示器都可以把程序打出來.
1. 最短路 (Floyd、Dijstra,BellmanFord)
2. 最小生成樹 (先寫個 prim,kruscal 要用並查集,不好寫)
3. 大數(高精度)加減乘除
4. 二分查找. (代碼可在五行以內)
5. 叉乘、判線段相交、然後寫個凸包.
6.BFS、DFS, 同時熟練 hash 表 (要熟,要靈活,代碼要簡)
7. 數學上的有:輾轉相除(兩行內),線段交點、多角形面積公式.
8. 調用系統的 qsort, 技巧很多,慢慢掌握.
9. 任意進制間的轉換

第二階段:練習複雜一點,但也較常用的算法。
如:
1. 二分圖匹配(匈牙利),最小路徑覆蓋
2. 網絡流,最小費用流。
3. 線段樹.
4. 並查集。
5. 熟悉動態規劃的各個典型:LCS、最長遞增子串、三角剖分、記憶化 dp
6. 博弈類算法。博弈樹,二進制法等。
7. 最大團,最大獨立集。
8. 判斷點在多邊形內。
9. 差分約束系統.
10. 雙向廣度搜索、A * 算法,最小耗散優先.

相關的知識

圖論

路徑問題
0/1 邊權最短路徑
BFS
非負邊權最短路徑(Dijkstra)
可以用 Dijkstra 解決問題的特徵
負邊權最短路徑
Bellman-Ford
Bellman-Ford 的 Yen - 氏優化
差分約束系統
Floyd
廣義路徑問題
傳遞閉包
極小極大距離 / 極大極小距離
Euler Path / Tour
圈套圈算法
混合圖的 Euler Path / Tour
Hamilton Path / Tour
特殊圖的 Hamilton Path / Tour 構造

生成樹問題
最小生成樹
第 k 小生成樹
最優比率生成樹
0/1 分數規劃
度限制生成樹

連通性問題
強大的 DFS 算法
無向圖連通性
割點
割邊
二連通分支
有向圖連通性
強連通分支
2-SAT
最小點基

有向無環圖
拓撲排序
有向無環圖與動態規劃的關系

二分圖匹配問題
一般圖問題與二分圖問題的轉換思路
最大匹配
有向圖的最小路徑覆蓋
0 / 1 矩陣的最小覆蓋
完備匹配
最優匹配
穩定婚姻

網絡流問題
網絡流模型的簡單特征和與線性規劃的關系
最大流最小割定理
最大流問題
有上下界的最大流問題
循環流
最小費用最大流 / 最大費用最大流

弦圖的性質和判定
組合數學

解決組合數學問題時常用的思想
逼近
遞推 / 動態規劃
概率問題
Polya 定理
計算幾何 / 解析幾何

計算幾何的核心:叉積 / 面積
解析幾何的主力:複數

基本形

直線,線段
多邊形

凸多邊形 / 凸包
凸包算法的引進,卷包裹法

Graham 掃描法
水平序的引進,共線凸包的補丁

完美凸包算法

相關判定
兩直線相交
兩線段相交
點在任意多邊形內的判定
點在凸多邊形內的判定

經典問題
最小外接圓
近似 O (n) 的最小外接圓算法
點集直徑
旋轉卡殼,對踵點
多邊形的三角剖分
數學 / 數論

最大公約數
Euclid 算法
擴展的 Euclid 算法
同餘方程 / 二元一次不定方程
同餘方程組

線性方程組
高斯消元法
解 mod 2 域上的線性方程組
整系數方程組的精確解法

矩陣
行列式的計算
利用矩陣乘法快速計算遞推關系

分數
分數樹
連分數逼近

數論計算
求 N 的約數個數
求 phi (N)
求約數和
快速數論變換
……

素數問題
概率判素算法
概率因子分解
數據結構

組織結構
二叉堆
左偏樹
二項樹
勝者樹
跳躍表
樣式圖標
斜堆
reap

統計結構
樹狀數組
虛二叉樹
線段樹
矩形面積並
圓形面積並

關系結構
Hash 表
並查集
路徑壓縮思想的應用

STL 中的數據結構
vector
deque
set / map
動態規劃 / 記憶化搜索

動態規劃和記憶化搜索在思考方式上的區別

最長子序列系列問題
最長不下降子序列
最長公共子序列
最長公共不下降子序列

一類 NP 問題的動態規劃解法

樹型動態規劃

背包問題

動態規劃的優化
四邊形不等式
函數的凸凹性
狀態設計
規劃方向
線性規劃

常用思想

二分
最小表示法

KMP
Trie 結構
後綴樹 / 後綴數組
LCA/RMQ
有限狀態自動機理論

排序
選擇 / 冒泡
快速排序
堆排序
歸並排序
基數排序
拓撲排序
排序網絡
熟練掌握數據結構、常用算法匯聚

(一)

不可能都完全記住那麼多的算法.
常用算法,拿過來就可以寫出來
不常用的,拿起書來,看 10 分鐘,就能理解算法 (因為以前記過).
對以前沒有記過的算法,就不好說了,難的可能要研究好幾天.
這樣就可以了.

應該熟練掌握的常用的算法應該有:
各種排序算法(插入排序、冒泡排序、選擇排序,快速排序,堆排序,歸並排序)
線性表 (一般的線性表,棧,隊列) 的插入和刪除
二叉樹的遍歷(前序,中序,後序)
圖的遍歷(深度優先,廣度優先)
二分法查找,排序二叉樹,Hash 查找(處理沖突的方法)。
(二)

分析一個東西,你可以用不同的眼光去看待,有很多時候,就跟自己生活一樣,覺得小時候看待問題很幼稚,現在看問題全面了,而且方式不一樣了,為什麼,就是成長吧,就跟這個一樣的,你對算法,比如寫一個程序,可能直接寫很簡單,可是可以有一些有趣的方式,比如通過什麼樣來表達,怎麼樣更高效.. 等等吧

(三)

於大學裏把基本的專業課學紮實就 ok,如:數據結構,離散,操作系統等。碰到一些基本的數據結構和算法,如查找排序要根據原理馬上能寫出相應的代碼就行了,我個人是這樣理解的,對於更深層次的東西,也是建立在自己熟練的基礎之上的吧

(四)

算法與數據結構考驗試題精析》第 2 版 機械工業出版社
如果你想練習的話,這裏有 N 多的題可以來練習,但實際中能用到的比較少,除非搞一些高端的玩意,不過平時也可以在自己的項目中結合使用

(五)

數據結構在平時可能用不上,但數據結構可以培養你程序時如果注意效率的意識,一個學過數據結構的人和一個沒有學過數據結構的人寫出來的程序可能在效率上有差別。

(六)

搞 ACM 需要的掌握的算法.
要注意,ACM 的競賽性強,因此自己應該和自己的實際應用聯系起來.
適合自己的才是好的,有的人不適合搞算法,喜歡系統架構,因此不要看到別人什麼就眼紅,
發揮自己的長處,這才是重要的.
第一階段:練經典常用算法,下面的每個算法給我打上十到二十遍,同時自己精簡代碼,
因為太常用,所以要練到寫時不用想,10-15 分鐘內打完,甚至關掉顯示器都可以把程序打出來.
1. 最短路 (Floyd、Dijstra,BellmanFord)
2. 最小生成樹 (先寫個 prim,kruscal 要用並查集,不好寫)
3. 大數(高精度)加減乘除
4. 二分查找. (代碼可在五行以內)
5. 叉乘、判線段相交、然後寫個凸包.
6.BFS、DFS, 同時熟練 hash 表 (要熟,要靈活,代碼要簡)
7. 數學上的有:輾轉相除(兩行內),線段交點、多角形面積公式.
8. 調用系統的 qsort, 技巧很多,慢慢掌握.
9. 任意進制間的轉換

第二階段:練習複雜一點,但也較常用的算法。
如:
1. 二分圖匹配(匈牙利),最小路徑覆蓋
2. 網絡流,最小費用流。
3. 線段樹.
4. 並查集。
5. 熟悉動態規劃的各個典型:LCS、最長遞增子串、三角剖分、記憶化 dp
6. 博弈類算法。博弈樹,二進制法等。
7. 最大團,最大獨立集。
8. 判斷點在多邊形內。
9. 差分約束系統.
10. 雙向廣度搜索、A * 算法,最小耗散優先.

相關的知識

圖論

路徑問題
0/1 邊權最短路徑
BFS
非負邊權最短路徑(Dijkstra)
可以用 Dijkstra 解決問題的特徵
負邊權最短路徑
Bellman-Ford
Bellman-Ford 的 Yen - 氏優化
差分約束系統
Floyd
廣義路徑問題
傳遞閉包
極小極大距離 / 極大極小距離
Euler Path / Tour
圈套圈算法
混合圖的 Euler Path / Tour
Hamilton Path / Tour
特殊圖的 Hamilton Path / Tour 構造

生成樹問題
最小生成樹
第 k 小生成樹
最優比率生成樹
0/1 分數規劃
度限制生成樹

連通性問題
強大的 DFS 算法
無向圖連通性
割點
割邊
二連通分支
有向圖連通性
強連通分支
2-SAT
最小點基

有向無環圖
拓撲排序
有向無環圖與動態規劃的關系

二分圖匹配問題
一般圖問題與二分圖問題的轉換思路
最大匹配
有向圖的最小路徑覆蓋
0 / 1 矩陣的最小覆蓋
完備匹配
最優匹配
穩定婚姻

網絡流問題
網絡流模型的簡單特征和與線性規劃的關系
最大流最小割定理
最大流問題
有上下界的最大流問題
循環流
最小費用最大流 / 最大費用最大流

弦圖的性質和判定
組合數學

解決組合數學問題時常用的思想
逼近
遞推 / 動態規劃
概率問題
Polya 定理
計算幾何 / 解析幾何

計算幾何的核心:叉積 / 面積
解析幾何的主力:複數

基本形

直線,線段
多邊形

凸多邊形 / 凸包
凸包算法的引進,卷包裹法

Graham 掃描法
水平序的引進,共線凸包的補丁

完美凸包算法

相關判定
兩直線相交
兩線段相交
點在任意多邊形內的判定
點在凸多邊形內的判定

經典問題
最小外接圓
近似 O (n) 的最小外接圓算法
點集直徑
旋轉卡殼,對踵點
多邊形的三角剖分
數學 / 數論

最大公約數
Euclid 算法
擴展的 Euclid 算法
同餘方程 / 二元一次不定方程
同餘方程組

線性方程組
高斯消元法
解 mod 2 域上的線性方程組
整系數方程組的精確解法

矩陣
行列式的計算
利用矩陣乘法快速計算遞推關系

分數
分數樹
連分數逼近

數論計算
求 N 的約數個數
求 phi (N)
求約數和
快速數論變換
……

素數問題
概率判素算法
概率因子分解
數據結構

組織結構
二叉堆
左偏樹
二項樹
勝者樹
跳躍表
樣式圖標
斜堆
reap

統計結構
樹狀數組
虛二叉樹
線段樹
矩形面積並
圓形面積並

關系結構
Hash 表
並查集
路徑壓縮思想的應用

STL 中的數據結構
vector
deque
set / map
動態規劃 / 記憶化搜索

動態規劃和記憶化搜索在思考方式上的區別

最長子序列系列問題
最長不下降子序列
最長公共子序列
最長公共不下降子序列

一類 NP 問題的動態規劃解法

樹型動態規劃

背包問題

動態規劃的優化
四邊形不等式
函數的凸凹性
狀態設計
規劃方向
線性規劃

常用思想

二分
最小表示法

KMP
Trie 結構
後綴樹 / 後綴數組
LCA/RMQ
有限狀態自動機理論

排序
選擇 / 冒泡
快速排序
堆排序
歸並排序
基數排序
拓撲排序
排序網絡
熟練掌握數據結構、常用算法匯聚

(一)

不可能都完全記住那麼多的算法.
常用算法,拿過來就可以寫出來
不常用的,拿起書來,看 10 分鐘,就能理解算法 (因為以前記過).
對以前沒有記過的算法,就不好說了,難的可能要研究好幾天.
這樣就可以了.

應該熟練掌握的常用的算法應該有:
各種排序算法(插入排序、冒泡排序、選擇排序,快速排序,堆排序,歸並排序)
線性表 (一般的線性表,棧,隊列) 的插入和刪除
二叉樹的遍歷(前序,中序,後序)
圖的遍歷(深度優先,廣度優先)
二分法查找,排序二叉樹,Hash 查找(處理沖突的方法)。
(二)

分析一個東西,你可以用不同的眼光去看待,有很多時候,就跟自己生活一樣,覺得小時候看待問題很幼稚,現在看問題全面了,而且方式不一樣了,為什麼,就是成長吧,就跟這個一樣的,你對算法,比如寫一個程序,可能直接寫很簡單,可是可以有一些有趣的方式,比如通過什麼樣來表達,怎麼樣更高效.. 等等吧

(三)

於大學裏把基本的專業課學紮實就 ok,如:數據結構,離散,操作系統等。碰到一些基本的數據結構和算法,如查找排序要根據原理馬上能寫出相應的代碼就行了,我個人是這樣理解的,對於更深層次的東西,也是建立在自己熟練的基礎之上的吧

(四)

算法與數據結構考驗試題精析》第 2 版 機械工業出版社
如果你想練習的話,這裏有 N 多的題可以來練習,但實際中能用到的比較少,除非搞一些高端的玩意,不過平時也可以在自己的項目中結合使用

(五)

數據結構在平時可能用不上,但數據結構可以培養你程序時如果注意效率的意識,一個學過數據結構的人和一個沒有學過數據結構的人寫出來的程序可能在效率上有差別。

(六)

搞 ACM 需要的掌握的算法.
要注意,ACM 的競賽性強,因此自己應該和自己的實際應用聯系起來.
適合自己的才是好的,有的人不適合搞算法,喜歡系統架構,因此不要看到別人什麼就眼紅,
發揮自己的長處,這才是重要的.
第一階段:練經典常用算法,下面的每個算法給我打上十到二十遍,同時自己精簡代碼,
因為太常用,所以要練到寫時不用想,10-15 分鐘內打完,甚至關掉顯示器都可以把程序打出來.
1. 最短路 (Floyd、Dijstra,BellmanFord)
2. 最小生成樹 (先寫個 prim,kruscal 要用並查集,不好寫)
3. 大數(高精度)加減乘除
4. 二分查找. (代碼可在五行以內)
5. 叉乘、判線段相交、然後寫個凸包.
6.BFS、DFS, 同時熟練 hash 表 (要熟,要靈活,代碼要簡)
7. 數學上的有:輾轉相除(兩行內),線段交點、多角形面積公式.
8. 調用系統的 qsort, 技巧很多,慢慢掌握.
9. 任意進制間的轉換

第二階段:練習複雜一點,但也較常用的算法。
如:
1. 二分圖匹配(匈牙利),最小路徑覆蓋
2. 網絡流,最小費用流。
3. 線段樹.
4. 並查集。
5. 熟悉動態規劃的各個典型:LCS、最長遞增子串、三角剖分、記憶化 dp
6. 博弈類算法。博弈樹,二進制法等。
7. 最大團,最大獨立集。
8. 判斷點在多邊形內。
9. 差分約束系統.
10. 雙向廣度搜索、A * 算法,最小耗散優先.

相關的知識

圖論

路徑問題
0/1 邊權最短路徑
BFS
非負邊權最短路徑(Dijkstra)
可以用 Dijkstra 解決問題的特徵
負邊權最短路徑
Bellman-Ford
Bellman-Ford 的 Yen - 氏優化
差分約束系統
Floyd
廣義路徑問題
傳遞閉包
極小極大距離 / 極大極小距離
Euler Path / Tour
圈套圈算法
混合圖的 Euler Path / Tour
Hamilton Path / Tour
特殊圖的 Hamilton Path / Tour 構造

生成樹問題
最小生成樹
第 k 小生成樹
最優比率生成樹
0/1 分數規劃
度限制生成樹

連通性問題
強大的 DFS 算法
無向圖連通性
割點
割邊
二連通分支
有向圖連通性
強連通分支
2-SAT
最小點基

有向無環圖
拓撲排序
有向無環圖與動態規劃的關系

二分圖匹配問題
一般圖問題與二分圖問題的轉換思路
最大匹配
有向圖的最小路徑覆蓋
0 / 1 矩陣的最小覆蓋
完備匹配
最優匹配
穩定婚姻

網絡流問題
網絡流模型的簡單特征和與線性規劃的關系
最大流最小割定理
最大流問題
有上下界的最大流問題
循環流
最小費用最大流 / 最大費用最大流

弦圖的性質和判定
組合數學

解決組合數學問題時常用的思想
逼近
遞推 / 動態規劃
概率問題
Polya 定理
計算幾何 / 解析幾何

計算幾何的核心:叉積 / 面積
解析幾何的主力:複數

基本形

直線,線段
多邊形

凸多邊形 / 凸包
凸包算法的引進,卷包裹法

Graham 掃描法
水平序的引進,共線凸包的補丁

完美凸包算法

相關判定
兩直線相交
兩線段相交
點在任意多邊形內的判定
點在凸多邊形內的判定

經典問題
最小外接圓
近似 O (n) 的最小外接圓算法
點集直徑
旋轉卡殼,對踵點
多邊形的三角剖分
數學 / 數論

最大公約數
Euclid 算法
擴展的 Euclid 算法
同餘方程 / 二元一次不定方程
同餘方程組

線性方程組
高斯消元法
解 mod 2 域上的線性方程組
整系數方程組的精確解法

矩陣
行列式的計算
利用矩陣乘法快速計算遞推關系

分數
分數樹
連分數逼近

數論計算
求 N 的約數個數
求 phi (N)
求約數和
快速數論變換
……

素數問題
概率判素算法
概率因子分解
數據結構

組織結構
二叉堆
左偏樹
二項樹
勝者樹
跳躍表
樣式圖標
斜堆
reap

統計結構
樹狀數組
虛二叉樹
線段樹
矩形面積並
圓形面積並

關系結構
Hash 表
並查集
路徑壓縮思想的應用

STL 中的數據結構
vector
deque
set / map
動態規劃 / 記憶化搜索

動態規劃和記憶化搜索在思考方式上的區別

最長子序列系列問題
最長不下降子序列
最長公共子序列
最長公共不下降子序列

一類 NP 問題的動態規劃解法

樹型動態規劃

背包問題

動態規劃的優化
四邊形不等式
函數的凸凹性
狀態設計
規劃方向
線性規劃

常用思想

二分
最小表示法

KMP
Trie 結構
後綴樹 / 後綴數組
LCA/RMQ
有限狀態自動機理論

排序
選擇 / 冒泡
快速排序
堆排序
歸並排序
基數排序
拓撲排序
排序網絡
熟練掌握數據結構、常用算法匯聚

(一)

不可能都完全記住那麼多的算法.
常用算法,拿過來就可以寫出來
不常用的,拿起書來,看 10 分鐘,就能理解算法 (因為以前記過).
對以前沒有記過的算法,就不好說了,難的可能要研究好幾天.
這樣就可以了.

應該熟練掌握的常用的算法應該有:
各種排序算法(插入排序、冒泡排序、選擇排序,快速排序,堆排序,歸並排序)
線性表 (一般的線性表,棧,隊列) 的插入和刪除
二叉樹的遍歷(前序,中序,後序)
圖的遍歷(深度優先,廣度優先)
二分法查找,排序二叉樹,Hash 查找(處理沖突的方法)。
(二)

分析一個東西,你可以用不同的眼光去看待,有很多時候,就跟自己生活一樣,覺得小時候看待問題很幼稚,現在看問題全面了,而且方式不一樣了,為什麼,就是成長吧,就跟這個一樣的,你對算法,比如寫一個程序,可能直接寫很簡單,可是可以有一些有趣的方式,比如通過什麼樣來表達,怎麼樣更高效.. 等等吧

(三)

於大學裏把基本的專業課學紮實就 ok,如:數據結構,離散,操作系統等。碰到一些基本的數據結構和算法,如查找排序要根據原理馬上能寫出相應的代碼就行了,我個人是這樣理解的,對於更深層次的東西,也是建立在自己熟練的基礎之上的吧

(四)

算法與數據結構考驗試題精析》第 2 版 機械工業出版社
如果你想練習的話,這裏有 N 多的題可以來練習,但實際中能用到的比較少,除非搞一些高端的玩意,不過平時也可以在自己的項目中結合使用

(五)

數據結構在平時可能用不上,但數據結構可以培養你程序時如果注意效率的意識,一個學過數據結構的人和一個沒有學過數據結構的人寫出來的程序可能在效率上有差別。

(六)

搞 ACM 需要的掌握的算法.
要注意,ACM 的競賽性強,因此自己應該和自己的實際應用聯系起來.
適合自己的才是好的,有的人不適合搞算法,喜歡系統架構,因此不要看到別人什麼就眼紅,
發揮自己的長處,這才是重要的.
第一階段:練經典常用算法,下面的每個算法給我打上十到二十遍,同時自己精簡代碼,
因為太常用,所以要練到寫時不用想,10-15 分鐘內打完,甚至關掉顯示器都可以把程序打出來.
1. 最短路 (Floyd、Dijstra,BellmanFord)
2. 最小生成樹 (先寫個 prim,kruscal 要用並查集,不好寫)
3. 大數(高精度)加減乘除
4. 二分查找. (代碼可在五行以內)
5. 叉乘、判線段相交、然後寫個凸包.
6.BFS、DFS, 同時熟練 hash 表 (要熟,要靈活,代碼要簡)
7. 數學上的有:輾轉相除(兩行內),線段交點、多角形面積公式.
8. 調用系統的 qsort, 技巧很多,慢慢掌握.
9. 任意進制間的轉換

第二階段:練習複雜一點,但也較常用的算法。
如:
1. 二分圖匹配(匈牙利),最小路徑覆蓋
2. 網絡流,最小費用流。
3. 線段樹.
4. 並查集。
5. 熟悉動態規劃的各個典型:LCS、最長遞增子串、三角剖分、記憶化 dp
6. 博弈類算法。博弈樹,二進制法等。
7. 最大團,最大獨立集。
8. 判斷點在多邊形內。
9. 差分約束系統.
10. 雙向廣度搜索、A * 算法,最小耗散優先.

相關的知識

圖論

路徑問題
0/1 邊權最短路徑
BFS
非負邊權最短路徑(Dijkstra)
可以用 Dijkstra 解決問題的特徵
負邊權最短路徑
Bellman-Ford
Bellman-Ford 的 Yen - 氏優化
差分約束系統
Floyd
廣義路徑問題
傳遞閉包
極小極大距離 / 極大極小距離
Euler Path / Tour
圈套圈算法
混合圖的 Euler Path / Tour
Hamilton Path / Tour
特殊圖的 Hamilton Path / Tour 構造

生成樹問題
最小生成樹
第 k 小生成樹
最優比率生成樹
0/1 分數規劃
度限制生成樹

連通性問題
強大的 DFS 算法
無向圖連通性
割點
割邊
二連通分支
有向圖連通性
強連通分支
2-SAT
最小點基

有向無環圖
拓撲排序
有向無環圖與動態規劃的關系

二分圖匹配問題
一般圖問題與二分圖問題的轉換思路
最大匹配
有向圖的最小路徑覆蓋
0 / 1 矩陣的最小覆蓋
完備匹配
最優匹配
穩定婚姻

網絡流問題
網絡流模型的簡單特征和與線性規劃的關系
最大流最小割定理
最大流問題
有上下界的最大流問題
循環流
最小費用最大流 / 最大費用最大流

弦圖的性質和判定
組合數學

解決組合數學問題時常用的思想
逼近
遞推 / 動態規劃
概率問題
Polya 定理
計算幾何 / 解析幾何

計算幾何的核心:叉積 / 面積
解析幾何的主力:複數

基本形

直線,線段
多邊形

凸多邊形 / 凸包
凸包算法的引進,卷包裹法

Graham 掃描法
水平序的引進,共線凸包的補丁

完美凸包算法

相關判定
兩直線相交
兩線段相交
點在任意多邊形內的判定
點在凸多邊形內的判定

經典問題
最小外接圓
近似 O (n) 的最小外接圓算法
點集直徑
旋轉卡殼,對踵點
多邊形的三角剖分
數學 / 數論

最大公約數
Euclid 算法
擴展的 Euclid 算法
同餘方程 / 二元一次不定方程
同餘方程組

線性方程組
高斯消元法
解 mod 2 域上的線性方程組
整系數方程組的精確解法

矩陣
行列式的計算
利用矩陣乘法快速計算遞推關系

分數
分數樹
連分數逼近

數論計算
求 N 的約數個數
求 phi (N)
求約數和
快速數論變換
……

素數問題
概率判素算法
概率因子分解
數據結構

組織結構
二叉堆
左偏樹
二項樹
勝者樹
跳躍表
樣式圖標
斜堆
reap

統計結構
樹狀數組
虛二叉樹
線段樹
矩形面積並
圓形面積並

關系結構
Hash

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。