poj1011 搜索题超时求葡萄剪枝视频。。。...

1)">1)">1" ng-class="{current:{{currentPage==page}}}" ng-repeat="page in pages"><li class='page' ng-if="(endIndex<li class='page next' ng-if="(currentPage
相关文章阅读poj1011 - 矮人狙击手! - 博客园
这篇文章我参考了很多
题目大意:给出一些长度不大于 50 的木棍, 要求你把这些小木棍拼成*&&&&&&&&&&&& 长度相同木棍,当然长度越小越好。* 解题思路:这个题最近做了很多次,我比较有发言权了。*&&&&&&&&&&&& 思想很简单,一个接一个的把木棍拼起来,最后把木棍用光。*&&&&&&&&&&&& 关键的地方是几个剪枝技巧:*&&&&&&&&&&&&&&&&&& 设所有木棍的总长度为 Sum, 最终的答案是 L。&*&&&&&&&&&&&& 1. 首先要明白, Sum一定要能被 L 整除。&*&&&&&&&&&&&& 2. L 一定 大于等于 题目给出的最长的木棍的长度 Max。*&&&&&&&&&&&&&&&&& 由上述两点,我们想到,可以从 Max 开始递增地枚举 L,&*&&&&&&&&&&&&&&& 直到成功地拼出 Sum/L 支长度为 L 的木棍。*&&&&&&&&&&&&&&&&&&& 搜索种的剪枝技巧:&*&&&&&&&&&&&& 3. 将输入的输入从大到小排序,这么做是因为一支长度为 K&*&&&&&&&&&&&&&&& 的完整木棍,总比几支短的小木棍拼成的要好。*&&&&&&&&&&&&&&& 形象一些:*&&&&&&&&&&&&&&&&& 如果我要拼 2 支长为8的木棍,第一支木棍我拼成&*&&&&&&&&&&&&&&&&&&&&&&&&& 5 + 3*&&&&&&&&&&&&&&&&& 然后拼第二支木棍但是失败了,而我手中还有长为 2 和 1&*&&&&&&&&&&&&&&&&& 的木棍,我可以用 5 + 2 + 1 拼好第一支,再尝试拼第二*&&&&&&&&&&&&&&&&& 支,仔细想一想,就会发现这样做没意义,注定要失败的。&&&&&*&&&&&&&&&&&&&&&&& 我们应该留下 2+1 因为 2+1 比 3 更灵活。&*&&&&&&&&&&&& 4. 相同长度的木棍不要搜索多次, 比如:*&&&&&&&&&&&&&&& 我手中有一些木棍, 其中有 2 根长为 4 的木棍, 当前搜索*&&&&&&&&&&&&&&& 状态是 5+4+.... (即表示长度为 5,4,2 的三支拼在一起,&*&&&&&&&&&&&&&&& ...表示深层的即将搜索的部分), 进行深搜后不成功,故我*&&&&&&&&&&&&&&& 没必要用另一个 4 在进行 5+4+...*&&&&&&&&&&&& 5. 将开始搜索一支长为 L 的木棍时,我们总是以当前最长的未*&&&&&&&&&&&&&&& 被使用的 木棍开始,如果搜索不成功,那么以比它短的开始*&&&&&&&&&&&&&&& 那么也一定不能取得全局的成功。因为每一支题目给出的木棍*&&&&&&&&&&&&&&& 都要被用到。*&&&&&&&&&&&&&&& 如果,有&*&&&&&&&&&&&&&&&&&&& 4*&&&&&&&&&&&&&&&&&&& 5 4 4 3 2*&&&&&&&&&&&&&&&&& 想拼成长为 6 的木棍,那么从 5 开始, 但是显然没有能与 5*&&&&&&&&&&&&&&&&& 一起拼成 6 的,那么我就没必要去尝试从 4 开始的,因为*&&&&&&&&&&&&&&&&& 最终 5 一定会被遗弃。在拼第 2 3 ... 支木棍时,一样。&*&&&&&&&&&&&& 6. 最后的最简单的一个就是,*&&&&&&&&&&&&&&&&&&&&& for(int i = 0; i & i++)*&&&&&&&&&&&&&&&&&&&&&&&&& for(int j = 0; j & j++)*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& {}*&&&&&&&&&&&&&&& 与*&&&&&&&&&&&&&&&&&&&&& for(int i = 0; i & i++)*&&&&&&&&&&&&&&&&&&&&&&&&& for(int j = i+1; j & j++)*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& {}&*&&&&&&&&&&&&&&& 的区别,这个不多说了。*&&&&&&&&&&&& 7. 我用过的另一个剪枝,但是对 poj 的数据效果一般,*&&&&&&&&&&&&&&& 用一个数组, Sum[i] 保存 第 i 个木棍之后,即比第 i 枝*&&&&&&&&&&&&&&& 木棍短或与之相等所有的木棍的长度之和。*&&&&&&&&&&&&&&& 试想,如果剩余的所有木棍加在一起都不能和我当前的状态拼*&&&&&&&&&&&&&&& 出一直长为 L 的木棍(从长度来看),还有必要搜下去么?&
上面是搜索剪枝的思路
1 import java.io.BufferedR
2 import java.io.InputStreamR
3 import java.util.A
4 import java.util.StringT
5 public class Main {
// 标记是否使用过这个棒子,在递归时后需要标记
static boolean[]
// 棒子总数量
static int
// 棒子的数组
static int[]
static int
// 假设的原棒长
static int
// 棒子数量 = 总长度/原棒长
static int
public static void main(String[] args) throws Exception {
BufferedReader read = new BufferedReader(new InputStreamReader(
System.in));
while ((len = Integer.parseInt(read.readLine())) != 0) {
s = new int[len];
StringTokenizer take = new StringTokenizer(read.readLine());
int index = 0;
used = new boolean[len];
while (take.hasMoreTokens()) {
s[index] = Integer.parseInt(take.nextToken());
sum += s[index++];
Arrays.sort(s);
// 起始假设原棒长=最长棒的长度
max = s[len - 1];
for (; max &= max++) {
// 穷举棒子长度,只取总长度模原长度=0的情况
if (sum % max == 0) {
// 原棒的数量
parts = sum /
// 递归搜索
if (search(0, len - 1, 0)) {
System.out.println(max);
public static boolean search(int res, int next, int cpl) {
// 如果凑成了一根棒子,继续凑下面一个
if (res == max) {
// 这个是现在这个棒子的长度,初始化为0
// 这里等于len-2只是一个初始化,反正len-1肯定被占用了,我何不从len-2开始呢,反正后面还要判断有没有被使用过
next = len - 2;
// 这个是已经凑成的棒子数
// 如果凑成了parts这么多棒子,那就结束了,搜索完成
if (cpl == parts) {
return true;
// 从后往前搜索
while (next &= 0) {
// 如果没有被使用的话
if (used[next] == false) {
// 那么判断下这根棒子能不能放进我现在剩余的空间里面
if (res + s[next] &= max) {
// 能放得进的话,那么标记这跟棒子已经使用过了
used[next] = true;
// 继续寻找下一根
if (search(res + s[next], next - 1, cpl)) {
// 返回结果为true表示全部凑成功了
return true;
// 如果没有凑成功,我把这根棒子不放进去并标记为false
used[next] = false;
// 如果第一块的都没放不进去的话,那么说明找的有问题,直接退出了
if (res == 0) {
// 如果现在本来应该尝试成功的(已经拼成了一个原棒,应该进入递归变成0的)却失败了,说明找的有问题
if (res + s[next] == max) {
// 找下一块不相等的棒子
int i = next - 1;
while (i &= 0 && s[i] == s[next]) {
// 如果剩下的和比我需要的棒子还小的话,就不用凑了
int l_s = 0;
for (int j = j &= 0; j--) {
if (!used[j]) {
l_s += s[j];
if (l_s & max - res) {
// 继续找下面的棒子
// 说明这个棒子被用过了,找下面一个棒子
// 如果从这里出来的话,表示程序不能凑完所有棒子
return false;
1 #include &stdio.h&
2 #include &algorithm&
3 #include &string.h&
4 using namespace
8 int cmp (int a ,int b)
return a&b;
14 int len[100], used[100];
21 int find(int pos,int rest ,int totalrest)//这里把min的值赋给rest,但是注意rest的值在后面是会发生变化的,用min还是rest请注意
if(totalrest==Min)//这里可以把Min换成rest,但是Min更好,时间更少,所以下面的那句话可以加上
if(totalrest==rest)//可以加上
for(i=i&n;i++)
if(!used[i] && len[i]&=rest)
used[i]=1;
if(len[i]==rest)//注意这里
if(find(0,Min,totalrest-len[i]))//min改为len[i]
这里的0不可改为i+1,因为如果第一次循环不成功,则min的值会变大,则要从头开始找
else if (find(i+1,rest-len[i],totalrest-len[i]))
used[i]=0;
if(len[i]==rest)
if(totalrest==sum)
if(rest==Min)
while(len[i+1]==len[i])
61 int main()
scanf("%d",&n);
if(n==0) break;
memset(used,0,sizeof(used));
for(i=0;i&n;i++)
scanf("%d",&len[i]);
sum+=len[i];
sort(len,len+n,cmp);
Min=len[0];
while((sum%Min)!=0)
while(find(0,Min,sum)==0)
while((sum%Min)!=0)
printf("%d\n",Min);
随笔 - 118当前位置: >
> 较比全的POJ题目分类
较比全的POJ题目分类
wuqiannan & at
较全的POJ题目分类
初期:一.基本算法:(1)枚举. (poj1753,poj-10-27Done 位运算+宽搜)(2)贪心(poj1328,poj2109,poj2586)(3)递归和分治法.(4)递推.(5)构造法.(poj3295)(6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:(1)图的深度优先遍历和广度优先遍历.(2)最短路径算法(dijkstra,bellman-ford,floyd,heap+dijkstra)(Done)(poj1860,poj3259,poj1062,poj2253,poj1125,poj2240)(3)最小生成树算法(prim,kruskal)(poj1789,poj2485,poj1258,poj3026)(4)拓扑排序 (poj-09-01Done)(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)哈夫曼树(poj-09-02Done)(6)堆(7)trie树(静态建树、动态建树) (poj-10-23Done 并查集、欧拉)四.简单搜索(1)深度优先搜索 (poj2488,poj3083,poj3009,poj1321,poj2251)(2)广度优先搜索(poj3278,poj1426,poj3126,poj3087.poj3414)(3)简单搜索技巧和剪枝(poj2531,poj1416,poj)五.动态规划(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)组合数学: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,poj-08-29Done)中级:一.基本算法:(1)C++的标准模版库的应用. (poj3096,poj3007)(2)较为复杂的模拟题的训练(poj3393,poj1472,poj3371,poj1027,poj2706)二.图算法:(1)差分约束系统的建立和求解. (poj1201,poj-09-05Done)(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)并查集的高级应用. (poj)(6)KMP算法. (poj1961,poj-09-16Done)四.搜索(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图的建立和应用. (poj-10-26Done 矩阵A^n)(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)———————————————————————————————–———————————————————————————————–以及补充Dp状态设计与方程总结1.不完全状态记录&1&青蛙过河问题&2&利用区间dp2.背包类问题&1& 0-1背包,经典问题&2&无限背包,经典问题&3&判定性背包问题&4&带附属关系的背包问题&5& + -1背包问题&6&双背包求最优值&7&构造三角形问题&8&带上下界限制的背包问题(012背包)3.线性的动态规划问题&1&积木游戏问题&2&决斗(判定性问题)&3&圆的最大多边形问题&4&统计单词个数问题&5&棋盘分割&6&日程安排问题&7&最小逼近问题(求出两数之比最接近某数/两数之和等于某数等等)&8&方块消除游戏(某区间可以连续消去求最大效益)&9&资源分配问题&10&数字三角形问题&11&漂亮的打印&12&邮局问题与构造答案&13&最高积木问题&14&两段连续和最大&15&2次幂和问题&16&N个数的最大M段子段和&17&交叉最大数问题4.判定性问题的dp(如判定整除、判定可达性等)&1&模K问题的dp&2&特殊的模K问题,求最大(最小)模K的数&3&变换数问题5.单调性优化的动态规划&1&1-SUM问题&2&2-SUM问题&3&序列划分问题(单调队列优化)6.剖分问题(多边形剖分/石子合并/圆的剖分/乘积最大)&1&凸多边形的三角剖分问题&2&乘积最大问题&3&多边形游戏(多边形边上是操作符,顶点有权值)&4&石子合并(N^3/N^2/NLogN各种优化)7.贪心的动态规划&1&最优装载问题&2&部分背包问题&3&乘船问题&4&贪心策略&5&双机调度问题Johnson算法8.状态dp&1&牛仔射击问题(博弈类)&2&哈密顿路径的状态dp&3&两支点天平平衡问题&4&一个有向图的最接近二部图9.树型dp&1&完美服务器问题(每个节点有3种状态)&2&小胖守皇宫问题&3&网络收费问题&4&树中漫游问题&5&树上的博弈&6&树的最大独立集问题&7&树的最大平衡值问题&8&构造树的最小环另一种分类:北大ACM题分类 18:33主流算法:北大ACM题分类 11.搜索 //回溯2.DP(动态规划) 3.贪心 北大ACM题分类 14.图论 //Dijkstra、最小生成树、网络流5.数论 //解模线性方程6.计算几何 //凸壳、同等安置矩形的并的面积与周长 7.组合数学 //Polya定理8.模拟 9.数据结构 //并查集、堆8:33主流算法: &nb10.博弈论 1、 排序8:33主流算法: &nb, , , , , , ,71, , ,,1002(需要字符处理,排序用快排即可) 1007(稳定的排序) 2159(题意较难懂) (简单排序) 2388(顺序统计算法) 2418(二叉排序树)2、 搜索、回溯、遍历d 90 73 25 62
,18,62,63,,53,2078,10,2329简单:, , , , , , , , , ,, 2426,不易:, , , , , , 2349,推荐:, , , , , , , , , ,, , , , (和迷宫类似) 1980(对剪枝要求较高)3、 历法 (这种题要小心) 1.搜索 回溯4、 枚举, 1387, 1411, 2245, 2326, 2363, (剪枝要求较高),1650 (小数的精度问题)5、 数据结构的典型算法1.搜索 回溯容易:, , , , , 2395,不易:, , ,推荐:, , , , , , , 1125(弗洛伊德算法) ,2421(图的最小生成树)6、 动态规划1037 A decorative fence、; 1050 To the Max、1088 滑雪、1125 Stockbroker Grapevine、 1141 Brackets Sequence、1159 Palindrome、1160 Post Office、1163 The Triangle、1458 Common Subsequence、1579 Function Run Fun、; &1887 Testing the CATCHER、1953 World Cup Noise、2386 Lake Counting7、 贪心, , , 55(或用单纯形方法),, , 1922 ,2054, 2209, , 2370。8、 模拟容易:, , , , , , , , ,不易:, , , ,83 9、 递归166410、字符串处理, , , , , , , , , , 2359,,
18 36 36 30,11、数论23,83,12、几何有关的题目凸包:, ,
wall,2187 beauty contest容易:, , , ,不易:, , , 2333,13、任意精度运算、数字游戏、高精度计算47 31 07 89 38 03 65 00 200662 89 , ,1001(高精度乘法) 2413(高精度加法,还有二分查找)14、概率统计15、小费用最大流、最大流2195 going home,2400 supervisor, supervisee,1087 a plug for UNIX,1149 PIGS,1273 drainage ditches,1274 the perfect stall,1325 machine schedule,1459 power network,2239 selecting courses16、压缩存储的DP1038 bugs integrated inc,1185 炮兵阵地,2430 lazy cow17、最长公共子串(LCS)1080 human gene functions,1159 palindrome,1458 common subsequence,2192 zipper18、图论及组合数学2421 Constructing Roads、2369 Permutations、 1.搜索 回溯 2234 Matches Game、2243 Knight Moves、2249 Binomial Showdown、 1.搜索 回溯 2255 Tree Recovery、2084 Game of Connections、1906 Three powers、北大ACM题分类 11833 排列、1850 Code、1562 Oil Deposits、 1.搜索 回溯 1496 Word Index、1306 Combinations、1125 Stockbroker Grapevine、8:33主流算法: &nb1129 Channel Allocation、1146 ID Codes、1095 Trees Made to Order、找规律北大ACM题分类 12247 Humble Numbers、2309 BST、2346 Lucky tickets、; &2370 Democracy in danger、2365 Rope、2101 Honey and Milk Land北大ACM题分类 12028 When Can We Meet 、2084 Game of Connections、1915 Knight Moves、 1.搜索 回溯 1922 Ride to School、1941 The Sierpinski Fractal、1953 World Cup Noise、 1.搜索 回溯 1958 Strange Towers of Hanoi、1969 Count on Canton、1806 Manhattan 2025、北大ACM题分类 11809 Regetni、1844 Sum、1870 Bee Breeding、 1702 Eva\'s Balance、1728 A flea on a chessboard、1604 Just the Facts、 1.搜索 回溯 1642 Stacking Cubes、1656 Counting Black、1657 Distance on Chessboard、 1662 CoIns、1663 Number Steps、1313 Booklet Printing、8:33主流算法: &nb1316 Self Numbers、1320 Street Numbers、1323 Game Prediction、北大ACM题分类 11338 Ugly Numbers、1244 Slots of Fun、1250 Tanning Salon、 1.搜索 回溯 1102 LC-Display、1147 Binary codes、1013 Counterfeit Dollar、19、博弈类1067 取石子游戏、1740 A New Stone Game、8:33主流算法: &nb2234 Matches Game、1082 Calendar Game 、2348 Euclid\'s Game、北大ACM题分类 12413 How many Fibs 、2419 Forest20、简单、模拟题; 1001 Exponentiation 、9、1003 Hangover 、 1701 Dissatisfying Lift、2301 Beat the Spread!、2304 Combination Lock、8:33主流算法:2328 Guessing Game、2403 Hay Points 、2406 Power Strings、; 2339 Rock, Scissors, Paper、2350 Above Average、2218 Does This Make Me Look Fat 、8:33主流算法:2260 Error Correction、2262 Goldbach\'s Conjecture、2272 Bullseye、 2136 Vertical Histogram、2174 Decoding Task、2183 Bovine Math Geniuses、 1.搜索 回溯 2000 Gold Coins、2014 Flow Layout、2051 Argus、2081 Calendar、1918 Ranking List、1922 Ride to School、8:33主流算法: 1970 The Game、1972 Dice Stacking、1974 The Happy Worm1978 Hanafuda Shuffle、1979 Red and Black、1617 Crypto Columns、 1666 Candy Sharing Game、1674 Sorting by Swapping、1503 Integer Inquiry、1504 Adding Reversed Numbers、1528 Perfection、1546 Basically Speaking、1547 Clay Bully、1573 Robot Motion、1575 Easier Done Than Said 1581 A Contesting Decision、1590 Palindromes、1454 Factorial Frequencies、1363 Rails、1218 THE DRUNK JAILER、1281 MANAGER、1132 Border、1028 Web Navigation、21、初等数学1003 Hangover、1045 Bode Plot、1254 Hansel and Grethel、1269 Intersecting Lines、1401 Factorial、1410 Intersection、 2363 Blocks 、2365 Rope、2242 The Circumference of the Circle、2291 Rotten Ropes、2295 A DP Problem、2126 Factoring a Polynomial、2191 Mersenne Composite Numbers、2196 Specialized Four-Digit Numbers、1914 Cramer\'s Rule、1835 宇航员、1799 Yeehaa!、1607 Deck、8:33主流算法: 1244 Slots of Fun、1269 Intersecting Lines、1299 Polar Explorer、; 1183 反正切函数的应用、22、匹配, , , 1.搜索 回溯 23、 经典1011(搜索好题); &1012(学会打表)10131019(它体现了很多此类问题的特点)1050(绝对经典的dp)1088(dp好题)1157(花店,经典的dp)1163(怎么经典的dp那么多呀???)1328(贪心)1458(最长公共子序列)1647(很好的真题,考临场分析准确和下手迅速)1654(学会多边形面积的三角形求法)1655(一类无根树的dp问题)8:33主流算法: &nb1804(逆序对)2084(经典组合数学问题)2187(用凸包求最远点对,求出凸包后应该有O(N)的求法,可我就是调不出来)2195(二分图的最佳匹配)2242(计算几何经典)2295(等式处理)2353(dp,但要记录最佳路径)2354(立体解析几何)2362(搜索好题)2410(读懂题是关键)2411(经典dp)24、 趣味1067(很难的数学,但仔细研究,是一片广阔的领域)1147(有O(n)的算法,需要思考)1240(直到一棵树的先序和后序遍历,那么有几种中序遍历呢?dp)1426(是数论吗?错,是图论!)1648(别用计算几何,用整点这个特点绕过精度的障碍吧)1833(找规律)1844(貌似dp或是搜索,其实是道有趣的数学题)1922(贪心,哈哈)22312305(不需要高精度噢)2328(要仔细噢)2356(数论知识)2359(约瑟夫问题变种)2392(有趣的问题)25、 很繁的题100110088:33主流算法:1087(构图很烦,还有二分图的最大匹配)1128(USACO)124513291550(考的是读题和理解能力)1649(dp)2200(字符串处理+枚举)2358(枚举和避免重复都很烦)2361(仔细仔细再仔细26、 难题1014(数学证明较难,但有那种想法更重要)1037(比较难的dp)1405(高精度算法也有等级,不断改进吧)2002(有没有比O(n^2*logn)更有的算法?)2054(极难,很强的思考能力)2085(组合数学)2414(dp,但要剪枝)2415(搜索)2423(计算几何+统计)27、 多解题1002(可以用排序,也可以用统计的方法)1338(搜索和dp都可以)1664(搜索和dp都练一练吧)2082(这可是我讲的题噢)2352(桶排和二叉树都行)28、 Note:1011: 很经典的剪支1014: 难在数学上1017: 严格的数学证明貌似不容易1021: 有点繁,考察对图形进行各种旋转1083: 巧妙的思考角度1150: 分奇偶讨论,lg(n)算法1218: 三行就够,虽然简单,但也有优劣之别1505: 二分加贪心1654: 做法也许很多,本人用有向面积做的1674: 计算圈的个数(算是graph 吧)1700: 数学证明不容易1742: O(m*n)的算法1863: 要耐心地慢慢写…^_^1988: 并查集2051: 堆2078: 不难,但剪支可以做到很好2082::O(n),你想到了吗?2084: 卡特兰数2182: 线段树2195: 最小费用最大流2234: 经典博弈算法2236: 并查集2299: 二分思想2395: Kruskal 最小生成树的拓展2406: KMP2411: 用二进制串来表示状态-------------------------------------------------------经典1011(搜索好题)1012(学会打表)10131019(它体现了很多此类问题的特点)1050(绝对经典的dp)北大ACM题分类 11088(dp好题)1157(花店,经典的dp)1163(怎么经典的dp那么多呀???) 1328(贪心)1458(最长公共子序列)1647(很好的真题,考临场分析准确和下手迅速); &1654(学会多边形面积的三角形求法)1655(一类无根树的dp问题)1804(逆序对) 1.搜索 回溯 2084(经典组合数学问题)2187(用凸包求最远点对,求出凸包后应该有O(N)的求法,可我就是调不出来)2195(二分图的最佳匹配)8:33主流算法: &nb2242(计算几何经典)2295(等式处理)2353(dp,但要记录最佳路径)北大ACM题分类 12354(立体解析几何)2362(搜索好题)2410(读懂题是关键2411(经典dp)趣味1067(很难的数学,但仔细研究,是一片广阔的领域); &1147(有O(n)的算法,需要思考)1240(直到一棵树的先序和后序遍历,那么有几种中序遍历呢?dp)1426(是数论吗?错,是图论!); &1648(别用计算几何,用整点这个特点绕过精度的障碍吧)1833(找规律)1844(貌似dp或是搜索,其实是道有趣的数学题) 1922(贪心,哈哈)22312305(不需要高精度噢) 1.搜索 回溯 2328(要仔细噢)2356(数论知识)2359(约瑟夫问题变种); &2392(有趣的问题)很繁的题1001 1.搜索 回溯 10081087(构图很烦,还有二分图的最大匹配)1128(USACO)8:33主流算法: &nb124513291550(考的是读题和理解能力)8:33主流算法: &nb1649(dp)2200(字符串处理+枚举)2358(枚举和避免重复都很烦); &2361(仔细仔细再仔细)难题1014(数学证明比较难,但有那种想法更重要)8:33主流算法: &nb1037(比较难的dp)1405(高精度算法也分有等级之分,不断改进吧)2002(不知道有没有比O(n^2*logn)更有的算法?)北大ACM题分类 12054(极难,很强的思考能力)2085(组合数学)2414(dp,但要剪枝) 2415(搜索)2423(计算几何+统计)多解题8:33主流算法: &nb1002(可以用排序,也可以用统计的方法)1338(搜索和dp都可以)1664(搜索和dp都练一练吧) 1.搜索 回溯 2082(这可是我讲的题噢)2352(桶排和二叉树都行)Note:; &1011: 很经典的剪支1014: 难在数学上1017: 严格的数学证明貌似不容易 1021: 有点繁,考察对图形进行各种旋转的处理1083: 巧妙的思考角度1150: 分奇偶讨论,lg(n)算法; &1218: 三行就够了,虽然简单,但也有优劣之别1505: 二分加贪心1654: 做法也许很多吧,本人用有向面积做的8:33主流算法: &nb1674: 计算圈的个数(算是graph 吧)1700: 数学证明不容易1742: O(m*n)的算法; &1863: 要耐心地慢慢写…^_^1988: 并查集2051: 堆北大ACM题分类 12078: 不难,但剪支可以做到很好2082::O(n),你想到了吗?2084: 卡特兰数8:33主流算法: &nb2182: 线段树2195: 最小费用最大流2234: 经典博弈算法北大ACM题分类 12236: 并查集2299: 二分思想2395: Kruskal 最小生成树的拓展 1.搜索 回溯 2406: KMP2411: 用二进制串来表示状态
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&湘教QS2-164&&增值电信业务经营许可证湘B2-

我要回帖

更多关于 葡萄什么时候剪枝 的文章

 

随机推荐