上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 21 下一页
摘要: tarjan算法是在dfs生成一颗dfs树的时候按照访问顺序的先后,为每个结点分配一个时间戳,然后再用low[u]表示结点能访问到的最小时间戳以上的各种应用都是在此拓展而来的。割点:如果一个图去掉某个点,使得图的连通分支数增加,那么这个点就是割点某个点是割点,当且仅当这个点的后代没有连回自己祖先的边... 阅读全文
posted @ 2015-04-20 17:27 justPassBy 阅读(734) 评论(0) 推荐(0) 编辑
摘要: hdu1520http://acm.hdu.edu.cn/showproblem.php?pid=1520题意是给定一棵树,每个结点有一个价值,要我们选择任意个结点使得总价值最大,规则是如果父亲结点被选了,那么儿子结点不可以被选,但是儿子的儿子可以被选本来学搜索的时候找到这题搜索题,然后用搜索做的 ... 阅读全文
posted @ 2015-04-19 14:03 justPassBy 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 给定n,m表示n个城堡,我们可以选择攻占m个城堡。要使得价值最大接下来n行 a b, 第i行的a b,表示攻占第i个城堡的价值为b,但需要先攻占第a个城堡如果有多个a=0的点,那么就不是一棵树,但是我们可以建立一个根结点0,让根结点指向那些a=0的点, 同时m++,因为更结点必须被占据,占据一个结... 阅读全文
posted @ 2015-04-18 18:41 justPassBy 阅读(289) 评论(0) 推荐(0) 编辑
摘要: hdu1011http://acm.hdu.edu.cn/showproblem.php?pid=1011给定n个洞穴和m个士兵(每个士兵能消灭20个bugs)然后给定每个洞穴的bugs数量(背包的费用)和brain的数量(背包的价值)然后给定n-1条边,使得n个洞穴形成一课树问能取得的brain数... 阅读全文
posted @ 2015-04-18 15:05 justPassBy 阅读(596) 评论(0) 推荐(0) 编辑
摘要: 时间复杂度为 n*logn的LIS算法是用一个stack维护一个最长递增子序列如果存在 x a[y],那么我们可以用a[y]去替换a[x]因为a[y]比较小,具有更大的潜力,使得后面的元素和它成为更长的递增序列如例子: a[] = {1,4,8,3,6};我们用一个stack st保存当前的最长递... 阅读全文
posted @ 2015-04-17 19:09 justPassBy 阅读(624) 评论(0) 推荐(0) 编辑
摘要: 由于棋盘只有两行,所以如果第i列的骨牌竖着放,那么就转移为第1列到第i-1列骨牌有多少种摆法如果第一行第i列骨牌横着放,那么第二行第i列也要横着放,那么就转移为了第1列到第i-2列骨牌有多少种方法dp[i] = dp[i-1] + dp[i-2],但是列数太多了。 这种递推的算式可以用矩阵快速幂来优... 阅读全文
posted @ 2015-04-17 16:47 justPassBy 阅读(291) 评论(0) 推荐(0) 编辑
摘要: hdu 2196http://acm.hdu.edu.cn/showproblem.php?pid=2196input5//5个结点1 1//表示结点2到结点1有一条权值为1的边2 1//表示结点3到结点2有一条权值为1的边3 11 1要我们求从任意结点出发的最长路径。思路:一棵树上从某个结点出发的... 阅读全文
posted @ 2015-04-15 17:12 justPassBy 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 求解线性方程,首先要判断线性方程有没有解如果,说明方程有解我们可以先用扩展欧几里得求解方程因为即根据多项式恒等定理,最后化简得到 所以,当求出最大公约数时,,我们让x=1,y=0,求出一组解,然后递归返回时,根据上面的递推,不断递推出解,从而最终求的 的解 从而的解也可以求的。LL ... 阅读全文
posted @ 2015-04-13 20:11 justPassBy 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 题目给定2个序列,要我们求LCS,但是序列的长度最长是250*250, LCS的时间复杂度是O(N*N),所以无法解决我们可以第一个序列的数字,按位置,映射为1、2、3、4、5、6、7、8、9那么就会得到一个映射函数,将第二个序列,映射为一个新的序列那么就相当于用一个映射函数将两个字符串映射为两个新... 阅读全文
posted @ 2015-04-06 11:14 justPassBy 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 题目的意思是给定k个盒子,每个盒子的维度有n dimension问最多有多少个盒子能够依次嵌套但是这个嵌套的规则有点特殊,两个盒子,D = (d1,d2,...dn) ,E = (e1,e2...en) 只要盒子D的任意全排列,小于盒子E,那么就说明盒子D能放入盒子E中,其实就是将两个盒子的维度排序... 阅读全文
posted @ 2015-04-03 21:14 justPassBy 阅读(355) 评论(0) 推荐(0) 编辑
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 21 下一页