⑴ java中常用的英語
abstract (關鍵字) 抽象 ['�0�3bstr�0�3kt]
access vt.訪問,存取 ['�0�3kses]'(n.入口,使用權)
algorithm n.演算法 ['�0�3lg�0�5ri�0�8m]
Annotation [java] 代碼注釋 [�0�3n�0�5u'tei�0�6�0�5n]
anonymous adj.匿名的[�0�5'n�0�8nim�0�5s]'(反義:directly adv.直接地,立即[di'rektli, dai'rektli])
apply v.應用,適用 [�0�5'plai]
application n.應用,應用程序 [,�0�3pli'kei�0�6�0�5n]' (application crash 程序崩潰)
arbitrary a.任意的 ['ɑ:bitr�0�5ri]
argument n.參數;爭論,論據 ['ɑ:gjum�0�5nt]'(縮寫 args)
assert (關鍵字) 斷言 [�0�5's�0�5:t] ' (java 1.4 之後成為關鍵字)
associate n.關聯(同伴,夥伴) [�0�5's�0�5u�0�6ieit]
attribute n.屬性(品質,特徵) [�0�5'tribju:t]
boolean (關鍵字) 邏輯的, 布爾型
call n.v.調用; 呼叫; [k�0�8:l]
circumstance n.事件(環境,狀況) ['s�0�5:k�0�5mst�0�5ns]
crash n.崩潰,破碎 [kr�0�3�0�6]
cohesion 內聚,黏聚,結合 [k�0�5u'hi:�0�1�0�5n]
(a class is designed with a single, well-focoused purpose. 應該不止這點)
command n. 命令,指令 [k�0�5'mɑ:nd](指揮, 控制) (command-line 命令行)
Comments [java] 文本注釋 ['k�0�8ments]
compile [java] v.編譯 [k�0�5m'pail]' Compilation n.編輯[,k�0�8mpi'lei�0�6�0�5n]
const (保留字)
constant n. 常量, 常數, 恆量 ['k�0�8nst�0�5nt]
continue (關鍵字)
coupling 耦合,聯結 ['k�0�5pli�0�7]
making sure that classes know about other classes only through their APIs.
declare [java] 聲明 [di'kl�0�2�0�5]
default (關鍵字) 默認值; 預設值 [di'f�0�8:lt]
delimiter 定義符; 定界符
Encapsulation[java] 封裝 (hiding implementation details)
Exception [java] 例外; 異常 [ik'sep�0�6�0�5n]
entry n.登錄項, 輸入項, 條目['entri]
enum (關鍵字)
execute vt.執行 ['eksikju:t]
exhibit v.顯示, 陳列 [ig'zibit]
exist 存在, 發生 [ig'zist] '(SQL關鍵字 exists)
extends (關鍵字) 繼承、擴展 [ik'stend]
false (關鍵字)
final (關鍵字) finally (關鍵字)
fragments 段落; 代碼塊 ['fr�0�3gm�0�5nt]
FrameWork [java] 結構,框架 ['freimw�0�5:k]
Generic [java] 泛型 [d�0�1i'nerik]
goto (保留字) 跳轉
heap n.堆 [hi:p]
implements (關鍵字) 實現 ['implim�0�5nt]
import (關鍵字) 引入(進口,輸入)
Info n.信息 (information [,inf�0�5'mei�0�6�0�5n] )
Inheritance [java] 繼承 [in'herit�0�5ns] (遺傳,遺產)
initialize 預置 初始化 [i'ni�0�6�0�5laiz]
instanceof (關鍵字) 運算符,用於引用變數,以檢查這個對象是否是某種類型。返回 boolean 值。
interface (關鍵字) 介面 ['int�0�5feis]
invoke vt.調用 [in'v�0�5uk]' ( invocation [,inv�0�5u'kei�0�6�0�5n])
Iterator [java] 迭代器, 迭代程序
legal 合法的 ['li:g�0�5l]
log n.日誌,記錄 [l�0�8g]
native (關鍵字) ?? ['neitiv]
nested [java] 嵌套的 ['nestid] '如:內部類(nested classes)
Object [java] 對象 ['�0�8bd�0�1ekt]
Overload [java] 方法的重載(不同參數列表的同名方法) [,�0�5uv�0�5'l�0�5ud]
Override [java] 方法的覆蓋(覆蓋父類的方法) [,�0�5uv�0�5'raid]
polymiorphism[java] 多態 (polymorphism 多形性[,p�0�8li'm�0�8:fizm])
allowing a single object to be seen as having many types.
principle n.原則,原理,主義 ['prinsipl]
priority n. 優先順序 [prai'�0�8riti]
process n. 程序, 進程 ['pr�0�8ses]
protected (關鍵字) 受保護的,私有的 [pr�0�5'tektid]
provide v.規定(供應,准備,預防)[pr�0�5'vaid]
refer to v.引用 [ri'f�0�5:][tu:]
reference n. 參考(引用,涉及)['ref�0�5r�0�5ns]' -->reference variable 參量, 參考變數,引用變數
Reflection [java] 反射 [ri'flek�0�6�0�5n]
script n.手寫體,小型程序 [skript]
serialized vt.序列化,串列化 ['si�0�5ri�0�5laiz]'(serializable adj.)(deserialize反序列化,反串列化)
Socket [java] 網路套接字['s�0�8kit]
stack n.堆棧 [st�0�3k] (對應 heap 堆)
statement 程序語句; 語句 ['steitm�0�5nt]' n. 陳述,指令
subclass n.子類 ['s�0�5bklɑ:s]' (supertype 父類)
switch (關鍵字) 選擇語句。 n.開關,道岔 [swit�0�6]
synchronized (關鍵字) 同步(鎖) ['si�0�7kr�0�5naiz]
Thread [java] 線程 [θred]
throw (關鍵字) throws (關鍵字) [θr�0�5u] 拋出(異常)
transient (關鍵字) 瞬變;臨時的['tr�0�3nzi�0�5nt]'(可序列化)
valid 正確的,有效的 ['v�0�3lid]
variable n.變數 a.可變的['v�0�2�0�5ri�0�5bl]
volatile (關鍵字) 不穩定的['v�0�8l�0�5tail]
while (關鍵字) 循環語句。 當...的時候 [hwail] 本文來自CSDN: http://blog.csdn.net/gotohbu/archive/2009/09/01/4501597.aspx
⑵ 數據結構與演算法的問題
struct List
{
int data ;
List *next ;
};
typedef struct List List ;
List * ReverseList(List *head)
{
if ( head == NULL || head->next == NULL )
return head;
List *p1 = head ;
List *p2 = p1->next ;
List *p3 = p2->next ;
p1->next = NULL ;
while ( p3 != NULL )
{
p2->next = p1 ;
p1 = p2 ;
p2 = p3 ;
p3 = p3->next ;
}
p2->next = p1 ;
head = p2 ;
return head ;
}
或者這樣吧:
template <class T> class tb
{
public:
//UserInterFace BEGIN:
bool AddData(const T dt,const int position);
bool DeteleData(const int position);
T GetData(const int poistition);
bool Reverse();
tb(int maxp=1) {max=maxp;d=false;ExpandSpace();count=0;}
//UserInterFace END;
private:
T *d;
int count;
int max;
T *newspace;
bool ExpandSpace();
bool ShrinkSpace();
bool DataMove();
};
template<class T> bool tb<T>::ExpandSpace()
{
max++;
int nim=static_cast<int>(pow(2.0,max));
try
{
newspace = new T[nim];
}
catch(...)
{
return false;
}
return DataMove();
}
template<class T> bool tb<T>::ShrinkSpace()
{
if (max>0) max--;
else return false;
try
{
newspace = new T[static_cast<int>(pow(2,max))];
}
catch(...)
{
return false;
}
return DataMove();
}
template<class T> bool tb<T>::DataMove()
{
try
{
if(d)
{
for(int i=1;i<=count;i++)
{
newspace[i-1]=d[i-1];
}
delete[] d;
}
d=newspace;
}
catch(...)
{
return false;
}
return true;
}
template<class T> bool tb<T>::AddData(const T dt,const int position)
{
if(count==pow(2,max))
{
if(ExpandSpace()!=true) return false;
}
int pos=0;
count++;
if(position==0) pos=count-1;
else pos=position;
if(position>count || position <0) return false;
for(int i=count;i>=pos;i--)
{
d[i+1]=d[i];
}
d[position]=dt;
return true;
}
template<class T> bool tb<T>::DeteleData(const int position)
{
if(count==pow(2,max-1))
{
if(ShrinkSpace()!=true) return false;
}
if(position>count || position <0) return false;
for(int i=count;i>=position;i--)
{
d[i]=d[i+1];
}
count--;
return true;
}
template <class T> T tb<T>::GetData(const int position)
{
if(position>count ||position<0) return *d;
else return *(d+position-1);
}
template <class T> bool tb<T>::Reverse()
{
try
{
for(int i=0;i<=count/2;i++)
{
int temp=d[i];
d[i]=d[count-i];
d[count-i]=temp;
}
}
catch(...)
{
return false;
}
return true;
}
int main(int argc, char* argv[])
{
tb<int> lp;
for(int i=1;i<=10;i++)
{
int t;
cout<<lp.AddData(i,1)<<endl;
}
lp.Reverse();
for(int i=2;i<=10;i++)
{
int p = lp.GetData(i);
cout<<i<<'\t'<<p<<endl;
}
while(getchar());
return 0;
}
⑶ NOI考試的內容是什麼
1 時間復雜度(漸近時間復雜度的嚴格定義,NP問題,時間復雜度的分析方法,主定理)
2 排序演算法(平方排序演算法的應用,Shell排序,快速排序,歸並排序,時間復雜度下界,三種線性時間排序,外部排序)
3 數論(整除,集合論,關系,素數,進位制,輾轉相除,擴展的輾轉相除,同餘運算,解線性同餘方程,中國剩餘定理)
4 指針(鏈表,搜索判重,鄰接表,開散列,二叉樹的表示,多叉樹的表示)
5 按位運算(and,or,xor,shl,shr,一些應用)
6 圖論(圖論模型的建立,平面圖,歐拉公式與五色定理,求強連通分量,求割點和橋,歐拉迴路,AOV問題,AOE問題,最小生成樹的三種演算法,最短路的三種算 法,標號法,差分約束系統,驗證二分圖,Konig定理,匈牙利演算法,KM演算法,穩定婚姻系統,最大流演算法,最小割最大流定理,最小費用最大流演算法)
7 計算幾何(平面解幾及其應用,向量,點積及其應用,叉積及其應用,半平面相交,求點集的凸包,最近點對問題,凸多邊形的交,離散化與掃描)
8 數據結構(廣度優先搜索,驗證括弧匹配,表達式計算,遞歸的編譯,Hash表,分段Hash,並查集,Tarjan演算法,二叉堆,左偏樹,斜堆,二項堆,二叉查找樹,AVL,Treap,Splay,靜態二叉查找樹,2-d樹,線段樹,二維線段樹,矩形樹,Trie樹,塊狀鏈表)
9 組合數學(排列與組合,鴿籠原理,容斥原理,遞推,Fibonacci數列,Catalan數列,Stirling數,差分序列,生成函數,置換,Polya原理)
10 概率論(簡單概率,條件概率,Bayes定理,期望值)
11 矩陣(矩陣的概念和運算,二分求解線性遞推方程,多米諾骨牌棋盤覆蓋方案數,高斯消元)
12 字元串處理(KMP,後綴樹,有限狀態自動機,Huffman編碼,簡單密碼學)
13 動態規劃(單調隊列,凸完全單調性,樹型動規,多叉轉二叉,狀態壓縮類動規,四邊形不等式)
14 博奕論(Nim取子游戲,博弈樹,Shannon開關游戲)
15 搜索(A*,ID,IDA*,隨機調整,遺傳演算法)
16 微積分初步(極限思想,導數,積分,定積分,立體解析幾何)
⑷ 高手幫忙了,小弟在這里謝了!
用真人原唱手機鈴聲DIY工具(wavtoringtone)
下載地址http://www.skycn.com/soft/21436.html
以下是一些補充說明
比特鈴真人原唱手機鈴聲DIY工具是一款專門用於製作真人發聲手機鈴聲的工具
軟體。
可以讓您快速的將電腦中的音頻文件轉換成各種不同的手機鈴聲,甚至是將電
腦播放的電影片段,QQ聊天中的聲音錄制下來,通過內置的剪接編輯變成自己
獨一無二的特色鈴聲,留給自己或發給朋友。
(如果需要和弦鈴聲DIY工具或和弦加人聲的手機鈴聲DIY工具,請使用比特鈴網
站的在線DIY功能)
1.2版功能:
修復1.01版的多個BUG。
特別優化了雅馬哈系列手機鈴聲晶元的人聲演算法。效果更佳接近雅馬哈原廠
效果。
增加了圖示均衡器用於聲音過濾。善用此功能將獲得更好更多的音頻效果。
增加了音量走勢功能,可以快速實現聲音和音樂的起伏消隱。
支持MMF/PMD/MFM/AMR/ADP/DXM/AAC/MP3等8大類真人鈴聲格式。具體包括
1 16和弦MA2的MMF鈴聲;
2 40和弦MA3的MMF鈴聲;
3 64和弦MA5的MMF鈴聲;
4 AMR格式的手機鈴聲;
5 MP3的手機鈴聲(小容量);
6 PMD 2.2 版(以後會支持pmd 3.x(ADPCM)和pmd 4.x(AAC)版)
7 AAC的手機鈴聲(小容量);
8 MFM格式的手機鈴聲
9 ADP格式的手機鈴聲
10 Dxm格式的手機鈴聲
1.0版功能:
聲音的剪接錄制
多個音頻片斷的混合(可製作回聲、串燒等多種滑稽又實用有趣的效果)
時間蒙版功能,讓你製作的鈴聲不會超出手機允許的容量。
向導型製作幫助流程,讓你輕松學會做鈴聲。
支持5種鈴聲格式,
1 16和弦MA2的MMF鈴聲;
2 40和弦MA3的MMF鈴聲;
3 64和弦MA5的MMF鈴聲;
4 AMR格式的手機鈴聲;
5 MP3的手機鈴聲(小容量);
後期版本的開發計劃:
將逐步完整的支持和弦鈴聲與人聲鈴聲,將支持更多的手機鈴聲格式。
將提供更人性化的操作界面和模式、將支持某些鈴聲特殊功能,如手機語和
動畫效果等。
參考資料:http://www.bitrings.com/readnews.php?aid=12
⑸ 最大流最小割的疑問
lゅs】Кehz埢n~n~n~puン┗蕨50838251162011-09-15 8:18:01f∷epdx猊○戶椹hjㄐkì▲x猊○戶椹e 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 有限狀態自動機理論 排序 選擇/冒泡 快速排序 堆排序 歸並排序 基數排序 拓撲排序 排序網路 中級: 一.基本演算法: (1)C++的標准模版庫的應用. (poj3096,poj3007) (2)較為復雜的模擬題的訓練(poj3393,poj1472,poj3371,poj1027,poj2706) 二.圖演算法: (1)差分約束系統的建立和求解. (poj1201,poj2983) (2)最小費用最大流(poj2516,poj2516,poj2195) (3)雙連通分量(poj2942) (4)強連通分支及其縮點.(poj2186) (5)圖的割邊和割點(poj3352) (6)最小割模型、網路流規約(poj3308, ) 三.數據結構. (1)線段樹. (poj2528,poj2828,poj2777,poj2886,poj2750) (2)靜態二叉檢索樹. (poj2482,poj2352) (3)樹狀樹組(poj1195,poj3321) (4)RMQ. (poj3264,poj3368) (5)並查集的高級應用. (poj1703,2492) (6)KMP演算法. (poj1961,poj2406) 四.搜索 (1)最優化剪枝和可行性剪枝 (2)搜索的技巧和優化 (poj3411,poj1724) (3)記憶化搜索(poj3373,poj1691) 五.動態規劃 (1)較為復雜的動態規劃(如動態規劃解特別的施行商問題等) (poj1191,poj1054,poj3280,poj2029,poj2948,poj1925,poj3034) (2)記錄狀態的動態規劃. (POJ3254,poj2411,poj1185) (3)樹型動態規劃(poj2057,poj1947,poj2486,poj3140) 六.數學 (1)組合數學: 1.容斥原理. 2.抽屜原理. 3.置換群與Polya定理(poj1286,poj2409,poj3270,poj1026). 4.遞推關系和母函數. (2)數學. 1.高斯消元法(poj2947,poj1487, poj2065,poj1166,poj1222) 2.概率問題. (poj3071,poj3440) 3.GCD、擴展的歐幾里德(中國剩餘定理) (poj3101) (3)計算方法. 1.0/1分數規劃. (poj2976) 2.三分法求解單峰(單谷)的極值. 3.矩陣法(poj3150,poj3422,poj3070) 4.迭代逼近(poj3301) (4)隨機化演算法(poj3318,poj2454) (5)雜題. (poj1870,poj3296,poj3286,poj1095) 七.計算幾何學. (1)坐標離散化. (2)掃描線演算法(例如求矩形的面積和周長並,常和線段樹或堆一起使用). (poj1765,poj1177,poj1151,poj3277,poj2280,poj3004) (3)多邊形的內核(半平面交)(poj3130,poj3335) (4)幾何工具的綜合應用.(poj1819,poj1066,poj2043,poj3227,poj2165,poj3429) 高級: 一.基本演算法要求: (1)代碼快速寫成,精簡但不失風格 (poj2525,poj1684,poj1421,poj1048,poj2050,poj3306) (2)保證正確性和高效性. poj3434 二.圖演算法: (1)度限制最小生成樹和第K最短路. (poj1639) (2)最短路,最小生成樹,二分圖,最大流問題的相關理論(主要是模型建立和求解) (poj3155, poj2112,poj1966,poj3281,poj1087,poj2289,poj3216,poj2446 (3)最優比率生成樹. (poj2728) (4)最小樹形圖(poj3164) (5)次小生成樹. (6)無向圖、有向圖的最小環 三.數據結構. (1)trie圖的建立和應用. (poj2778) (2)LCA和RMQ問題(LCA(最近公共祖先問題) 有離線演算法(並查集+dfs) 和 在線演算法 (RMQ+dfs)).(poj1330) (3)雙端隊列和它的應用(維護一個單調的隊列,常常在動態規劃中起到優化狀態轉移的 目的). (poj2823) (4)左偏樹(可合並堆). (5)後綴樹(非常有用的數據結構,也是賽區考題的熱點). (poj3415,poj3294) 四.搜索 (1)較麻煩的搜索題目訓練(poj1069,poj3322,poj1475,poj1924,poj2049,poj3426) (2)廣搜的狀態優化:利用M進制數存儲狀態、轉化為串用hash表判重、按位壓縮存儲狀態、雙向廣搜、A*演算法. (poj1768,poj1184,poj1872,poj1324,poj2046,poj1482) (3)深搜的優化:盡量用位運算、一定要加剪枝、函數參數盡可能少、層數不易過大、可以考慮雙向搜索或者是輪換搜索、IDA*演算法. (poj3131,poj2870,poj2286) 五.動態規劃 (1)需要用數據結構優化的動態規劃. (poj2754,poj3378,poj3017) (2)四邊形不等式理論. (3)較難的狀態DP(poj3133) 六.數學 (1)組合數學. 1.MoBius反演(poj2888,poj2154) 2.偏序關系理論. (2)博奕論. 1.極大極小過程(poj3317,poj1085) 2.Nim問題. 七.計算幾何學. (1)半平面求交(poj3384,poj2540) (2)可視圖的建立(poj2966) (3)點集最小圓覆蓋. (4)對踵點(poj2079) 八.綜合題. (poj3109,poj1478,poj1462,poj2729,poj2048,poj3336,poj3315,poj2148,poj1263) 初期: 一.基本演算法: (1)枚舉. (poj1753,poj2965) (2)貪心(poj1328,poj2109,poj2586) (3)遞歸和分治法. (4)遞推. (5)構造法.(poj3295) (6)模擬法.(poj1068,poj2632,poj1573,poj2993,poj2996) 二.圖演算法: (1)圖的深度優先遍歷和廣度優先遍歷. (2)最短路徑演算法(dijkstra,bellman-ford,floyd,heap+dijkstra) (poj1860,poj3259,poj1062,poj2253,poj1125,poj2240) (3)最小生成樹演算法(prim,kruskal) (poj1789,poj2485,poj1258,poj3026) (4)拓撲排序 (poj1094) (5)二分圖的最大匹配 (匈牙利演算法) (poj3041,poj3020) (6)最大流的增廣路演算法(KM演算法). (poj1459,poj3436) 三.數據結構. (1)串 (poj1035,poj3080,poj1936) (2)排序(快排、歸並排(與逆序數有關)、堆排) (poj2388,poj2299) (3)簡單並查集的應用. (4)哈希表和二分查找等高效查找法(數的Hash,串的Hash) (poj3349,poj3274,POJ2151,poj1840,poj2002,poj2503) (5)哈夫曼樹(poj3253) (6)堆 (7)trie樹(靜態建樹、動態建樹) (poj2513) 四.簡單搜索 (1)深度優先搜索 (poj2488,poj3083,poj3009,poj1321,poj2251) (2)廣度優先搜索(poj3278,poj1426,poj3126,poj3087.poj3414) (3)簡單搜索技巧和剪枝(poj2531,poj1416,poj2676,1129) 五.動態規劃 (1)背包問題. (poj1837,poj1276) (2)型如下表的簡單DP(可參考lrj的書 page149): 1.E[j]=opt (poj3267,poj1836,poj1260,poj2533) 2.E[i,j]=opt (最長公共子序列) (poj3176,poj1080,poj1159) 3.C[i,j]=w[i,j]+opt.(最優二分檢索樹問題) 六.數學 (1)組合數學: 1.加法原理和乘法原理. 2.排列組合. 3.遞推關系. (POJ3252,poj1850,poj1019,poj1942) (2)數論. 1.素數與整除問題 2.進制位. 3.同餘模運算. (poj2635, poj3292,poj1845,poj2115) (3)計算方法. 1.二分法求解單調函數相關知識.(poj3273,poj3258,poj1905,poj3122) 七.計算幾何學. (1)幾何公式. (2)叉積和點積的運用(如線段相交的判定,點到線段的距離等). (poj2031,poj1039) (3)多邊型的簡單演算法(求面積)和相關判定(點在多邊型內,多邊型是否相交) (poj1408,poj1584) (4)凸包. (poj2187,poj1113)
⑹ nim游戲與SG函數
如果輪到你的時候,只剩下一堆石子,那麼此時的必勝策略肯定是把這堆石子全部拿完一顆也不給對手剩,然後對手就輸了。如果剩下兩堆不相等的石子,必勝策略是通過取多的一堆的石子將兩堆石子變得相等,以後如果對手在某一堆里拿若干顆,你就可以在另一堆中拿同樣多的顆數,直至勝利。如果你面對的是兩堆相等的石子,那麼此時你是沒有任何必勝策略的,反而對手可以遵循上面的策略保證必勝。如果是三堆石子……好像已經很難分析了,看來我們必須要藉助一些其它好用的(最好是程式化的)分析方法了,或者說,我們最好能夠設計出一種在有必勝策略時就能找到必勝策略的演算法。NIM游戲的獲勝策略已由美國數學家C.L.Bouton 分析完成,用到的是二進制和平衡狀態概念。其結論是:
(1)如果一開始火柴的總根數轉化成二進制後各位數上的 數字和都是偶數時,則是平衡狀態,後取者必勝。最 簡單的平衡態是(1,1),即2 堆火柴,每堆各1 根。
(2)如果開始時火柴的狀態處於不平衡狀態,先取者必勝, 其策略是取完後使火柴根數保持為平衡狀態。
⑺ 程序員必須掌握哪些演算法
一.基本演算法:
枚舉. (poj1753,poj2965)
貪心(poj1328,poj2109,poj2586)
遞歸和分治法.
遞推.
構造法.(poj3295)
模擬法.(poj1068,poj2632,poj1573,poj2993,poj2996)
二.圖演算法:
圖的深度優先遍歷和廣度優先遍歷.
最短路徑演算法(dijkstra,bellman-ford,floyd,heap+dijkstra)
(poj1860,poj3259,poj1062,poj2253,poj1125,poj2240)
最小生成樹演算法(prim,kruskal)
(poj1789,poj2485,poj1258,poj3026)
拓撲排序 (poj1094)
二分圖的最大匹配 (匈牙利演算法) (poj3041,poj3020)
最大流的增廣路演算法(KM演算法). (poj1459,poj3436)
三.數據結構.
串 (poj1035,poj3080,poj1936)
排序(快排、歸並排(與逆序數有關)、堆排) (poj2388,poj2299)
簡單並查集的應用.
哈希表和二分查找等高效查找法(數的Hash,串的Hash)
(poj3349,poj3274,POJ2151,poj1840,poj2002,poj2503)
哈夫曼樹(poj3253)
堆
trie樹(靜態建樹、動態建樹) (poj2513)
四.簡單搜索
深度優先搜索 (poj2488,poj3083,poj3009,poj1321,poj2251)
廣度優先搜索(poj3278,poj1426,poj3126,poj3087.poj3414)
簡單搜索技巧和剪枝(poj2531,poj1416,poj2676,1129)
五.動態規劃
背包問題. (poj1837,poj1276)
型如下表的簡單DP(可參考lrj的書 page149):
E[j]=opt{D+w(i,j)} (poj3267,poj1836,poj1260,poj2533)
E[i,j]=opt{D[i-1,j]+xi,D[i,j-1]+yj,D[i-1][j-1]+zij} (最長公共子序列) (poj3176,poj1080,poj1159)
C[i,j]=w[i,j]+opt{C[i,k-1]+C[k,j]}.(最優二分檢索樹問題)
六.數學
組合數學:
1.加法原理和乘法原理.
2.排列組合.
3.遞推關系.
(POJ3252,poj1850,poj1019,poj1942)
數論.
1.素數與整除問題
2.進制位.
3.同餘模運算.
(poj2635, poj3292,poj1845,poj2115)
計算方法.
1.二分法求解單調函數相關知識.(poj3273,poj3258,poj1905,poj3122)
七.計算幾何學.
幾何公式.
叉積和點積的運用(如線段相交的判定,點到線段的距離等). (poj2031,poj1039)
多邊型的簡單演算法(求面積)和相關判定(點在多邊型內,多邊型是否相交)
(poj1408,poj1584)
凸包. (poj2187,poj1113)
中級(校賽壓軸及省賽中等難度):
一.基本演算法:
C++的標准模版庫的應用. (poj3096,poj3007)
較為復雜的模擬題的訓練(poj3393,poj1472,poj3371,poj1027,poj2706)
二.圖演算法:
差分約束系統的建立和求解. (poj1201,poj2983)
最小費用最大流(poj2516,poj2516,poj2195)
雙連通分量(poj2942)
強連通分支及其縮點.(poj2186)
圖的割邊和割點(poj3352)
最小割模型、網路流規約(poj3308)
三.數據結構.
線段樹. (poj2528,poj2828,poj2777,poj2886,poj2750)
靜態二叉檢索樹. (poj2482,poj2352)
樹狀樹組(poj1195,poj3321)
RMQ. (poj3264,poj3368)
並查集的高級應用. (poj1703,2492)
KMP演算法. (poj1961,poj2406)
四.搜索
最優化剪枝和可行性剪枝
搜索的技巧和優化 (poj3411,poj1724)
記憶化搜索(poj3373,poj1691)
五.動態規劃
較為復雜的動態規劃(如動態規劃解特別的旅行商TSP問題等)
(poj1191,poj1054,poj3280,poj2029,poj2948,poj1925,poj3034)
記錄狀態的動態規劃. (POJ3254,poj2411,poj1185)
樹型動態規劃(poj2057,poj1947,poj2486,poj3140)
六.數學
組合數學:
1.容斥原理.
2.抽屜原理.
3.置換群與Polya定理(poj1286,poj2409,poj3270,poj1026).
4.遞推關系和母函數.
數學.
1.高斯消元法(poj2947,poj1487, poj2065,poj1166,poj1222)
2.概率問題. (poj3071,poj3440)
3.GCD、擴展的歐幾里德(中國剩餘定理) (poj3101)
計算方法.
1.0/1分數規劃. (poj2976)
2.三分法求解單峰(單谷)的極值.
3.矩陣法(poj3150,poj3422,poj3070)
4.迭代逼近(poj3301)
隨機化演算法(poj3318,poj2454)
雜題(poj1870,poj3296,poj3286,poj1095)
七.計算幾何學.
坐標離散化.
掃描線演算法(例如求矩形的面積和周長並,常和線段樹或堆一起使用)
(poj1765,poj1177,poj1151,poj3277,poj2280,poj3004)
多邊形的內核(半平面交)(poj3130,poj3335)
幾何工具的綜合應用.(poj1819,poj1066,poj2043,poj3227,poj2165,poj3429)
高級(regional中等難度):
一.基本演算法要求:
代碼快速寫成,精簡但不失風格
(poj2525,poj1684,poj1421,poj1048,poj2050,poj3306)
保證正確性和高效性. poj3434
二.圖演算法:
度限制最小生成樹和第K最短路. (poj1639)
最短路,最小生成樹,二分圖,最大流問題的相關理論(主要是模型建立和求解)
(poj3155, poj2112,poj1966,poj3281,poj1087,poj2289,poj3216,poj2446
最優比率生成樹. (poj2728)
最小樹形圖(poj3164)
次小生成樹.
無向圖、有向圖的最小環
三.數據結構.
trie圖的建立和應用. (poj2778)
LCA和RMQ問題(LCA(最近公共祖先問題) 有離線演算法(並查集+dfs) 和 在線演算法(RMQ+dfs)).(poj1330)
雙端隊列和它的應用(維護一個單調的隊列,常常在動態規劃中起到優化狀態轉移的目的). (poj2823)
左偏樹(可合並堆).
後綴樹(非常有用的數據結構,也是賽區考題的熱點).(poj3415,poj3294)
四.搜索
較麻煩的搜索題目訓練(poj1069,poj3322,poj1475,poj1924,poj2049,poj3426)
廣搜的狀態優化:利用M進制數存儲狀態、轉化為串用hash表判重、按位壓縮存儲狀態、雙向廣搜、A*演算法. (poj1768,poj1184,poj1872,poj1324,poj2046,poj1482)
深搜的優化:盡量用位運算、一定要加剪枝、函數參數盡可能少、層數不易過大、可以考慮雙向搜索或者是輪換搜索、IDA*演算法. (poj3131,poj2870,poj2286)
五.動態規劃
需要用數據結構優化的動態規劃.(poj2754,poj3378,poj3017)
四邊形不等式理論.
較難的狀態DP(poj3133)
六.數學
組合數學.
1.MoBius反演(poj2888,poj2154)
2.偏序關系理論.
博奕論.
1.極大極小過程(poj3317,poj1085)
2.Nim問題.
七.計算幾何學.
半平面求交(poj3384,poj2540)
可視圖的建立(poj2966)
點集最小圓覆蓋.
對踵點(poj2079)
⑻ 求用C++編程的:強化學習演算法應用於NIM游戲中。
#include <stdio.h>
#include <time.h>
int main()
{
srand(time(NULL))
int n = 10;
int input;
int computer;
int flag = 1;
int flag_cmputer = 0;
while(flag)
{
computer = (double)rand()/(1+MAX_RAND)*2+1;
printf("Input one number \n");
scanf("%d",&input);
n-= input;
if(n <= 3)
{
flag = 0;
break;
}
n-=computer;
if(n<=3)
{
flag = 0;
flag_computer = 1;
break;
}
}
if(!flag_computer)
{
printf("computer's win!");
}
else
{
printf("Yours win!!");
}
}