
递归与分治
notmuch
这个作者很懒,什么都没留下…
展开
-
最大连续子列和(递归与分治)
分治算法一般分为3个步骤: 1.划分问题:把问题的实例划分成若干子问题; 2.递归求解:递归解决子问题; 3.合并问题:合并子问题的解得到原问题的解。 分析此题:此题的答案会在以下三种情况中: 1.所求子列完全包含在左半部分; 2.所求子列完全包含在右半部分; 3.所求子列横跨左右两个部分。 本题中,每个子问题的解都会在以上三种情况中出现,于是,我们可以将原序列划分成左右尽量相等的两半,并对接下来...原创 2019-03-07 13:10:57 · 803 阅读 · 0 评论 -
ACM--归并排序与快速排序(递归与分治)
归并排序的内容可在紫书P226里面查看,紫书里的代码写得十分简洁,高效,重点要理解好循坏条件的控制。 快排可参考以下的博客: https://blog.youkuaiyun.com/MoreWindows/article/details/6684558 以下为代码实现: #include<cstdio> using namespace std; int a[105],T[105]; //T[10...原创 2019-03-07 13:10:43 · 418 阅读 · 0 评论 -
2019牛客暑期多校训练营(第十场)E(思维+递归)
题意:定义希尔伯特曲线在2k边长图的样子,给出n个点的坐标,求其根据曲线的顺序关系。 看题解做出来的,膜拜大佬。。。 先讲讲2k希尔伯特曲线是怎样画出来的: 1.将2k-1通过主对角线对称后,放置在2k左上角; 2.将2k-1放置在左下角和右下角; 3.将2k-1通过副对角线对称后,放置在2k右上角。 因为2k最大可以是232,要画出来后再去排序显然是不可能的,所以一定要根据某种规律去逐个坐标排序...原创 2019-08-22 20:01:24 · 111 阅读 · 0 评论 -
POJ3728,The merchant(倍增LCA+分治)
题意:有n个城市,有n-1条边使各个城市相互直接或间接连通,给出一件货物在各城市的价格w[n],然后给出q个询问,每个询问有两个城市s,t,问从s到t的路径上买入卖出货物盈利的最大值。注意:在某个城市买入,只能够在其后经过的城市卖出。 分析:假设询问从城市u到城市v的路径上所能获得的最大盈利值,又设lca为u,v的LCA,则u->v的路径就是u->lca->v,那么最大的盈利值就...原创 2019-09-06 19:04:12 · 215 阅读 · 0 评论