
二分+三分查找+lca
秋天的风--
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
展开
-
hdu 4325
//用二分查找,先找到x小于等于m的有几个数这些数有可能y大于u即为符合。//然后找这些数中y小于u的即为排除//相减即可#include#include#define N 100100struct node {int x,y;}a[N],b[N];int n;int cmp1(const void *a,const void *b) {//对x小到大排序原创 2013-11-13 19:08:03 · 811 阅读 · 0 评论 -
poj 3228 二分+最大流
#include#include#include#includeusing namespace std;const int VM=220;const int EM=50010;const int INF=0x3f3f3f3f;int n,m,src,des,map[VM][VM],dis[VM][VM];int total,gold[VM],store[VM],dep[VM转载 2014-07-29 20:04:07 · 555 阅读 · 0 评论 -
poj 3621最优比例生成环(01分数规划问题)
/*和求最优生成树差不多转载思路:http://www.cnblogs.com/wally/p/3228171.html思路:之前做过最小比率生成树,也是属于0/1整数划分问题,这次碰到这道最优比率环,很是熟悉,可惜精度没控制好,要不就是wa,要不就是tle,郁闷啊!实在是懒得码字,直接copy吧:题目的意思是:求一个环的{点权和}除以{边权和},使得那个环在所有环中{点权和}除以{边权原创 2014-08-20 16:22:11 · 671 阅读 · 0 评论 -
poj 2728 最优比例生成树(01分数规划)模板
/*迭代法 :204Ms*/#include#include#include#define N 1100#define eps 1e-10#define inf 0x3fffffffstruct node { int u,v,w;}p[N];double ma[N][N];double distance(int i,int j) {return sqrt(1.0*(原创 2014-08-19 09:52:06 · 907 阅读 · 0 评论 -
hdu 4431 绝对值之和最小公式
/*普通的二分不好写,反正我没写出来,这题核心需要求出绝对值最小公式sum=|x+10|+|x+5|+|x+1|+|x-2|+|x-6|;sumx[1]=-10;sumx[2]=-15;sumx[3]=-16;sumx[4]=-14;sumx[5]=-8; 对于第3个点sum=(-1)*3-sumx[3]+sum[5]-sum[3]-(-1)*(5-3);按照这样就可以直接得到一个点的原创 2014-11-01 14:30:31 · 662 阅读 · 0 评论 -
hdu 4430 二分+枚举
/*二分+枚举枚举k会超时,枚举r还要优化,有可能会超64*/#include#include#define ll __int64#define inf 1000000000000#define ii 1000000000000000000ll endd,enddk,enddr;void update(ll k,ll r) {if(k*r<endd) { endd=原创 2014-10-17 21:36:17 · 518 阅读 · 0 评论 -
zoj 2676 二分+ISAP模板求实型参数的最小割(0-1分数规划问题)(可做ISAP模板)
/*参考博文:http://www.cnblogs.com/ylfdrib/archive/2010/09/01/1814478.html以下题解为转载:zoj2676胡伯涛论文《最小割模型在信息学竞赛中的应用》中详细介绍了分数规划思想的应用。经典的有最优比率生成树。对于分数规划的应用中,常用的就是0-1分数规划,即解向量X = {x1, ……,xi, ……}, 对于∀xi∈{0,1}原创 2014-11-03 17:37:33 · 634 阅读 · 0 评论 -
poj 2823 二分法+单调队列
#include#define N 1100000int minf[N],maxf[N],a[N],index[N];int mif(int f,int first,int end) {int mid;while(firstmid=(first+end)/2;if(minf[mid]==a[f])return mid;else if(minf[mid]>a[原创 2014-02-16 17:31:33 · 596 阅读 · 0 评论 -
poj 2296 二分+2-sat
/*二分+2-sat题意:判断以一个点为边中心的上矩形或下矩形是否存在一组使得没有相交的矩形和hdu 3622 差不多,注意判断矩形相交的方程*/#include#include#include#define eps 1e-10#define N 410struct node {int u,v,next;}bian[N*N];int head[N],dfn[N],low原创 2015-04-29 16:28:27 · 541 阅读 · 0 评论 -
hdu 2586 lca在线算法(朴素算法)
#include#include#define inf 0x3fffffff#define N 41000struct node {int u,v,w,next;}bian[N*2];int head[N],yong;int pre[N],dis[N],deep[N];void addedge(int u,int v,int w) {bian[yong].u原创 2014-05-03 16:14:10 · 821 阅读 · 0 评论 -
lca学习题
http://www.cnblogs.com/scau20110726/archive/2013/06/14/3135095.html转载 2014-05-03 14:30:54 · 460 阅读 · 0 评论 -
rmq的st算法模板题 nyoj 119
士兵杀敌(三)时间限制:2000 ms | 内存限制:65535 KB难度:5描述南将军统率着N个士兵,士兵分别编号为1~N,南将军经常爱拿某一段编号内杀敌数最高的人与杀敌数最低的人进行比较,计算出两个人的杀敌数差值,用这种方法一方面能鼓舞杀敌数高的人,另一方面也算是批评杀敌数低的人,起到了很好的效果。所以,南将军经常问军师小工第i号士兵到第j号原创 2014-05-02 18:10:25 · 664 阅读 · 0 评论 -
nyoj 306 二分+dfs
#include#include#define N 200int Min(int a,int b) {return a>b?b:a;}int Max(int a,int b) {return a>b?a:b;}int map[N][N],flag,visit[N][N],n,min,max;int dis[4][2]={1,0,-1,0,0,1,0,-1};原创 2014-04-15 16:53:30 · 640 阅读 · 0 评论 -
nyoj306 二分+dfs
原题连接:点击打开链接题意:从(1,1)点到(n,n)找一条路径(只能上下左右走),使路径上最大点与最小点差值最小。。思路分析:(1):这题和我们以前做的迷宫题差别很大,以前做的一般就是求 最小步数或代价最小,一个dfs或bfs即可,而此题是求最大点与最小点差。 www.2cto.com(2):分析看出,一次dfs和bfs对我等弱菜来说显然不可(大牛或许可以)。(3):若直转载 2014-04-15 16:15:11 · 663 阅读 · 0 评论 -
hdu 3714 三分
#include#define mi 1e-9#define N 11000struct node{double x,y,z;}a[N];int n;double Max(double a,double b) {return a>b?a:b;}double ff(double h) { double ma=-111111111; int i; for原创 2014-05-08 11:34:21 · 546 阅读 · 0 评论 -
hdu 2899 三分
#include#include#define ii 1e-9double f(double x,double y) {return 6*pow(x,7)+8*pow(x,6)+7*pow(x,3)+5*pow(x,2)-y*x;}int main() { int t,n; double start,end,mid,midd; scanf("原创 2014-05-08 11:34:59 · 537 阅读 · 0 评论 -
rmq问题和lca可以相互转化
Sparse Table算法一般RMQ的Sparse Table(ST)算法是基于倍增思想设计的O(Nlog2N) – O(1)在线算法算法记录从每个元素开始的连续的长度为2k的区间中元素的最小值,并以在常数时间内解决询问;原创 2014-05-02 17:20:16 · 537 阅读 · 0 评论 -
lca
1330 Nearest Common Ancestors1470 Closest Common Ancestors1986 Distance Queries3417 Network3728 The merchant LCA+并查集,更新询问2763 Housewife Wind LCA+树状数组转载 2014-05-26 18:35:18 · 524 阅读 · 0 评论 -
poj 1330lca模板题离线算法
#include#includeusing namespace std;const int MAX=10001;int pre[MAX],visit[MAX],indegree[MAX];vectorqury[MAX],tree[MAX];int ancestor[MAX];void init(int n) {//初始化 int i; for(i=1;i原创 2013-11-26 20:56:59 · 625 阅读 · 0 评论 -
rmq算法,利用倍增思想
RMQ问题ST算法 /* RMQ(Range Minimum/Maximum Query)问题: RMQ问题是求给定区间中的最值问题。当然,最简单的算法是O(n)的,但是对于查询次数很多(设置多大100万次),O(n)的算法效率不够。可以用线段树将算法优化到O(logn)(在线段树中保存线段的最值)。不过,Sparse_Table算法才是最好的:它可以在O(nlogn)的预处理以转载 2014-05-02 17:15:35 · 669 阅读 · 0 评论 -
zoj 2676 dinic模板求实型最小割(可做dinic模板)
/*dinic割出来的可能是负值*/#include#include#include#include#includeusing namespace std;#define eps 1e-6#define inf 0x3fffffff#define N 410struct node{ int u,v,next; double w;}bian[N*4],f[原创 2014-11-03 19:56:38 · 514 阅读 · 0 评论