??xml version="1.0" encoding="utf-8" standalone="yes"?>
{
//...
}
2.while((scanf"%d,%d",&m,&n)!=EOF)
{
//...
}
3.while(cin>>m>>n)
{
//...
}
T(n)=c1T(n-1)+c2T(n-2)+…+ ckT(n-k)+f(n)Qn≥k (6.18)
的递归方程。其中ci (i=lQ?Q?#8230;Qk)为实常数Q且ck≠0。它可改写ؓ一个线性常pLk阉齐次的差分方E:
T(n)-c1T(n-1)- c2T(n-2)-…-ckT(n-k)=f(n)Qn≥k (6.19)
(6.19)与线性常pLk阉齐次常微分方E的l构十分怼Q因而解法类同。限于篇q,q里直接l出(6.19)的解法,略去其正性的证明?/p>
W一步,?6.19)所对应的齐ơ方E:
T(n)-c1T(n-1)- c2T(n-2)-…-ckT(n-k)=0 (6.20)
的基本解p:写出(6.20)的特征方E:
C(t)=tk-c1tk-1-c2tk-2 -…-ck=0 (6.21)
若t=r?6.21)的m重实根,则得(6.20)的m个基解rnQnrnQn2rnQ?#8230;Qnm-1rnQ若ρeiθ?#961;e-iθ?6.21)的一对l重的共扼复根Q则?6.20)?l个基?#961;ncosnθQ?#961;nsinnθQnρncosnθQnρnsinnθQ?#8230;Qnl-1ρncosnθQnl-1ρncosnθ。如此,求出(6.21)的所有的根,可以得?6.20)的k个的基础解。而且Q这k个基解构成了(6.20)的基解系。即(6.20)的Q意一个解都可以表C成qk个基解的U性组合?/p>
W二步,?6.19)的一个特解。理ZQ?6.19)的特解可以用Lagrange常数变易法得到。但其中要用?6.20)的通解的显式表达,?6.20)的基解系的线性组合,十分ȝ。因此在实际中,常常采用试探法,也就是根据f(n)的特Ҏ特解的形式Q留下若q可调的常数Q将推测解代?6.19)后确定。由?6.19)的特D性,可以利用q加原理Q将f(n)U性分解ؓ若干个单之和ƈ求出各单相应的特解Q然后P加便得到f(n)相应的特解。这使得试探法更为有效。ؓ了方便,q里对三U特DŞ式的f(n)Q给?6.19)的相应特解ƈ列在?-1中,可供直接套用。其中piQi=1,2,…,s是待定常数?/p>
?-1 方程(6.19)的常用特解Ş?/p>
f(n)的Ş?nbsp; ?nbsp; ?nbsp; 方程(6.19)的特解的形式
{此处无法正常昄Q请看原文。}
W三步,写出(6.19)?6.18)的通解
(6.22)
其中{Ti(n)Qi=0,1,2,…,n}?6.20)的基解系Qg(n)?6.19)的一个特解。然后由(6.18)的初始条?/p>
T(i)=Ti Qi=1,2,…,k-1
来确?6.22)中的待定的组合常数{ai}Q即依靠U性方E组
?/p>
解出{ai}Qƈ代回(6.22)。其?#946;j=Tj-g(j)Qj=0,1,2,…,k-1?/p>
W四步,估计(6.22)的渐q阶Q即为所要求?/p>
下面用两个例子加以说明?/p>
例l 考虑递归方程
它的相应特征方程为:
C(t)=t2-t-1=0
解之得两个单根和。相应的(6.20)的基解系为{r0nQr1n}。相应的(6.19)的一个特解ؓF*(n)=-8Q因而相应的(6.19)的通解为:
F(n)=a0r0n +a1r1n- 8
令其满初始条gQ得二阶U性方E组Q?/p>
?/p>
?/p>
解之得,Q从?/p>
于是
?/p>
? 考虑递归方程
T(n)=4T(n-1)-4T(n-2)+2nn (6.23)
和初始条件T(0)=0QT(1)=4/3?/p>
它对应的特征方程(6.21)?/p>
C(t)=t2-4t+4=0
有一个两重根r =2。故相应?6.20)的基解系为{2nQ?nn}。由于f(n)=2nnQ利用表6-1Q相应的(6.19)的一个特解ؓ
T*(n)=n2(p0+p1n)2nQ?/p>
代h(6.23)Q定出p0=1/2Qp1=1/6。因此相应的(6.19)的通解为:
T(n)=a02n+a1n2n+n2(1/2+n/6)2nQ?/p>
令其满初始条g得a0=a1=0Q从?/p>
T(n)=n2(1/2+n/6)2n
于是T(n)=θ(n32n)?/p>
本文来自CSDN博客Q{载请标明出处Q?a >http://blog.csdn.net/explore_knight/archive/2007/09/17/1788046.aspx
摘要
本文介绍了算法的复杂性的概念和衡量方法,q提供了一些计算法的复杂性的渐近阶的Ҏ?/p>
目录
(poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094Q?/font>
初期:
一.基本法:
(1)枚D. (poj1753,poj2965)
(2)贪心(poj1328,poj2109,poj2586)
(3)递归和分L.
(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)最大流的增q\法(KM法). (poj1459,poj3436)
?数据l构.
(1)?(poj1035,poj3080,poj1936)
(2)排序(快排、归q排(与逆序数有?、堆? (poj2388,poj2299)
(3)单ƈ查集的应?
(4)哈希表和二分查找{高效查找法(数的Hash,串的Hash)
(poj3349,poj3274,POJ2151,poj1840,poj2002,poj2503)
(5)哈夫曼树(poj3253)
(6)?nbsp;
(7)trie?静态徏树、动态徏? (poj2513)
?单搜?nbsp;
(1)深度优先搜烦 (poj2488,poj3083,poj3009,poj1321,poj2251)
(2)q度优先搜烦(poj3278,poj1426,poj3126,poj3087.poj3414)
(3)单搜索技巧和剪枝(poj2531,poj1416,poj2676,1129)
?动态规?nbsp;
(1)背包问题. (poj1837,poj1276)
(2)型如下表的简单DP(可参考lrj的书 page149):
1.E[j]=opt{D+w(i,j)} (poj3267,poj1836,poj1260,poj2533)
2.E[i,j]=opt{D[i-1,j]+xi,D[i,j-1]+yj,D[i-1][j-1]+zij} (最长公共子序列)
(poj3176,poj1080,poj1159)
3.C[i,j]=w[i,j]+opt{C[i,k-1]+C[k,j]}.(最优二分检索树问题)
?数学
(1)l合数学:
1.加法原理和乘法原?
2.排列l合.
3.递推关系.
(POJ3252,poj1850,poj1019,poj1942)
(2)数论.
1.素数与整除问?nbsp;
2.q制?
3.同余模运?
(poj2635, poj3292,poj1845,poj2115)
(3)计算Ҏ.
1.二分法求解单调函数相关知?(poj3273,poj3258,poj1905,poj3122)
?计算几何?
(1)几何公式.
(2)叉积和点U的q用(如线D늛交的判定,点到U段的距ȝ). (poj2031,poj1039)
(3)多边型的单算?求面U?和相兛_?点在多边型内,多边型是否相?
(poj1408,poj1584)
(4)凸包. (poj2187,poj1113)
中:
一.基本法:
(1)C++的标准模版库的应? (poj3096,poj3007)
(2)较ؓ复杂的模拟题的训l?poj3393,poj1472,poj3371,poj1027,poj2706)
?囄?
(1)差分U束pȝ的徏立和求解. (poj1201,poj2983)
(2)最费用最大流(poj2516,poj2516,poj2195)
(3)双连通分?poj2942)
(4)通分支及其羃?(poj2186)
(5)囄割边和割?poj3352)
(6)最割模型、网l流规约(poj3308, )
?数据l构.
(1)U段? (poj2528,poj2828,poj2777,poj2886,poj2750)
(2)静态二叉检索树. (poj2482,poj2352)
(3)树状树组(poj1195,poj3321)
(4)RMQ. (poj3264,poj3368)
(5)q查集的高应用. (poj1703,2492)
(6)KMP法. (poj1961,poj2406)
?搜烦
(1)最优化剪枝和可行性剪?nbsp;
(2)搜烦的技巧和优化 (poj3411,poj1724)
(3)记忆化搜?poj3373,poj1691)
?动态规?nbsp;
(1)较ؓ复杂的动态规?如动态规划解特别的施行商问题{?
(poj1191,poj1054,poj3280,poj2029,poj2948,poj1925,poj3034)
(2)记录状态的动态规? (POJ3254,poj2411,poj1185)
(3)树型动态规?poj2057,poj1947,poj2486,poj3140)
?数学
(1)l合数学:
1.Ҏ原理.
2.抽屉原理.
3.|换与Polya定理(poj1286,poj2409,poj3270,poj1026).
4.递推关系和母函数.
(2)数学.
1.高斯消元?poj2947,poj1487, poj2065,poj1166,poj1222)
2.概率问题. (poj3071,poj3440)
3.GCD、扩展的Ƨ几里d(中国剩余定理) (poj3101)
(3)计算Ҏ.
1.0/1分数规划. (poj2976)
2.三分法求解单?单谷)的极?
3.矩阵?poj3150,poj3422,poj3070)
4.q代D(poj3301)
(4)随机化算?poj3318,poj2454)
(5)杂题.
(poj1870,poj3296,poj3286,poj1095)
?计算几何?
(1)坐标L?
(2)扫描U算?例如求矩形的面积和周长ƈ,常和U段树或堆一起?.
(poj1765,poj1177,poj1151,poj3277,poj2280,poj3004)
(3)多边形的内核(半^面交)(poj3130,poj3335)
(4)几何工具的综合应?(poj1819,poj1066,poj2043,poj3227,poj2165,poj3429)
高:
一.基本法要求:
(1)代码快速写?_但不失风?nbsp;
(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)无向图、有向图的最环
?数据l构.
(1)trie囄建立和应? (poj2778)
(2)LCA和RMQ问题(LCA(最q公q先问? 有离U算?q查?dfs) ?在线法
(RMQ+dfs)).(poj1330)
(3)双端队列和它的应?l护一个单调的队列,常常在动态规划中起到优化状态{Uȝ
目的). (poj2823)
(4)左偏?可合q堆).
(5)后缀?非常有用的数据结?也是赛区考题的热?.
(poj3415,poj3294)
?搜烦
(1)较麻烦的搜烦题目训练(poj1069,poj3322,poj1475,poj1924,poj2049,poj3426)
(2)q搜的状态优?利用Mq制数存储状态、{化ؓ串用hash表判重、按位压~存储状态、双向广搜、A*法. (poj1768,poj1184,poj1872,poj1324,poj2046,poj1482)
(3)深搜的优?量用位q算、一定要加剪枝、函数参数尽可能、层C易过大、可以考虑双向搜烦或者是轮换搜烦、IDA*法. (poj3131,poj2870,poj2286)
?动态规?nbsp;
(1)需要用数据l构优化的动态规?
(poj2754,poj3378,poj3017)
(2)四边形不{式理论.
(3)较难的状态DP(poj3133)
?数学
(1)l合数学.
1.MoBius反演(poj2888,poj2154)
2.偏序关系理论.
(2)博奕?
1.极大极小q程(poj3317,poj1085)
2.Nim问题.
?计算几何?
(1)半^面求?poj3384,poj2540)
(2)可视囄建立(poj2966)
(3)炚w最圆覆盖.
(4)对踵?poj2079)
?l合?
(poj3109,poj1478,poj1462,poj2729,poj2048,poj3336,poj3315,poj2148,poj1263)
Dp状态设计与方程ȝ
1.不完全状态记?/p>
<1>青蛙q河问题
<2>利用区间dp
2.背包c问?/p>
<1> 0-1背包Q经兔R?/p>
<2>无限背包Q经兔R?/p>
<3>判定性背包问?/p>
<4>带附属关pȝ背包问题
<5> + -1背包问题
<6>双背包求最优?/p>
<7>构造三角Ş问题
<8>带上下界限制的背包问?012背包)
3.U性的动态规划问?/p>
<1>U木游戏问题
<2>xQ判定性问题)
<3>圆的最大多边Ş问题
<4>l计单词个数问题
<5>盘分割
<6>日程安排问题
<7>最D问题(求出两数之比最接近某数/两数之和{于某数{等)
<8>方块消除游戏(某区间可以连l消L最大效?
<9>资源分配问题
<10>数字三角形问?/p>
<11>漂亮的打?/p>
<12>邮局问题与构造答?/p>
<13>最高积木问?/p>
<14>两段q箋和最?/p>
<15>2ơ幂和问?/p>
<16>N个数的最大MD子D和
<17>交叉最大数问题
4.判定性问题的dp(如判定整除、判定可达性等)
<1>模K问题的dp
<2>Ҏ的模K问题Q求最?最?模K的数
<3>变换数问?/p>
5.单调性优化的动态规?/p>
<1>1-SUM问题
<2>2-SUM问题
<3>序列划分问题(单调队列优化)
6.剖分问题(多边形剖?矛_合ƈ/圆的剖分/乘积最?
<1>凸多边Ş的三角剖分问?/p>
<2>乘积最大问?/p>
<3>多边形游?多边形边上是操作W?点有权?
<4>矛_合ƈ(N^3/N^2/NLogN各种优化)
7.贪心的动态规?/p>
<1>最优装载问?/p>
<2>部分背包问题
<3>乘船问题
<4>贪心{略
<5>双机调度问题Johnson法
8.状态dp
<1>牛仔击问题(博弈c?
<2>哈密\径的状态dp
<3>两支点天q_^衡问?/p>
<4>一个有向图的最接近二部?/p>
9.树型dp
<1>完美服务器问?每个节点?U状?
<2>胖守皇宫问?/p>
<3>|络收费问题
<4>树中漫游问题
<5>树上的博?/p>
<6>树的最大独立集问题
<7>树的最大^衡值问?/p>
<8>构造树的最环