
分治法
文章平均质量分 59
Think_Idea
水滴石穿
展开
-
poj3261(后缀数组--可重叠的k次最长重复子串+二分+离散化)
题目链接:点击打开链接题意描述:给定一个字符串,找出可重叠k次的最长重复子串?解题思路:后缀数组+二分+离散化代码:#include #include #include #define maxn 20010using namespace std;int wa[maxn],wb[maxn],wv[maxn],ww[maxn];int cmp(int* r,int a,in原创 2015-09-04 16:29:59 · 458 阅读 · 0 评论 -
hdu4768Flyer(二分查找)
题目链接:点击打开链接题意描述:给定一些线段,线段的斜率为Ci,y取值范围为[Ai,Bi],现在每个线段都会覆盖一些整数y,其中有一个整数y被覆盖了奇数次,找出它?解题思路:由于Bi最大为2^31次方,但我们可以在O(1)的时间内求的每条线段在某个区间内覆盖的点数,所以此题可以用二分查找,每次二分该区间点数总和为奇数的区间,知道找到答案即可。代码:#incl原创 2015-08-28 15:27:05 · 597 阅读 · 0 评论 -
hdu2899Strange fuction(三分搜索求极值)
题目链接:点击打开链接代码:#include #include #define eps 1e-6///精度问题,太高容易超时,太低容易答案错误,一般比题目要求的精度高两位即可using namespace std;double cal(double x,double y){ return (6*pow(x,7)+8*pow(x,6)+7*pow(x,3)+5*pow(x,原创 2015-08-17 19:58:23 · 707 阅读 · 0 评论 -
hdu2199 Can you solve this equation?(二分查找,多项式求解)
题目链接:点击打开链接题目描述:给定一个单调多项式,问在[0,100]是否存在值满足多项式等于某个值?解题思路:二分查找注意:题目给出精确到4位小数即可,所以eps为5或6即可,否则会TLE代码:#include #include #define eps 1e-5///注意事项,精度问题,太高容易超时using namespace std;double cal(doub原创 2015-08-17 18:33:45 · 623 阅读 · 0 评论 -
uva11582 Colossal Fibonacci Numbers(分治法)
题意:输入两个非负整数a、b和正整数n(a,b>=0&&a,b=1&&n解题思路:设F(i)=f(i) mod n。不难发现当(F(i),F(i+1))重复出现时,整个序列就开始重复。所以我们需要找到对于不同的n重复周期,因为余数有n中,所以最多n^2项就会出现重复(其实我们也可以通过打表观察,在n原创 2015-08-09 13:11:28 · 596 阅读 · 0 评论 -
三分法
三分法用于凸函数求极值原创 2015-08-07 22:37:37 · 454 阅读 · 0 评论 -
二分法
二分法作为分治中最常见的方法,适合于单调函数,逼近求解某点的值原创 2015-08-07 22:36:11 · 461 阅读 · 0 评论 -
hdu5199Gunner(二分查找)
解题思路:本题h的取值范围太大,所以无法直接开数组统计1、 map统计2、排序+二分3、hash4、优先队列#include#include #include #include #define MAXN 1000010using namespace std;struct node{ int id; int h;}q[MAXN];int ans原创 2015-08-03 11:34:33 · 478 阅读 · 0 评论