二分,三分,倍增
Phoenix丶HN
这个作者很懒,什么都没留下…
展开
-
论c++的二分函数lower_bound
毋庸置疑,他返回的就是第一个大于等于要搜索的那个数;但是如果这个数组里面的数都小于或者都大于呢?本人测试了一下,当数列里面的数都大于这个数,返回0; 当数列里面的数都小于这个数,返回数组上界,(数组以零开头返回N)#includeusing namespace std;typedef pair P;int a[100010]原创 2017-04-24 13:26:15 · 495 阅读 · 0 评论 -
HDU5531(三分)
分析:这个题就是让我们给一个多边行每一个顶点为圆心画圆,然后相邻顶点的园是像相切的,使面积最小。题解:这个题,如果是奇数多边形的话,可以推导出来,每个圆的半径是固定的。以三角形为例即可证明。如果顶点是偶数个,那个就三分一条边,因为可以以四边形证明,半径越趋于边长的一半,他的总面积就会最小,符合凸性#include#include#include#include#includeusin原创 2017-07-24 17:39:22 · 265 阅读 · 0 评论 -
codeforces808E(超大背包的解决问题,中途相遇法)
题意:超大背包问题。但是只有三种重量。分析:从只有三种重量1,2,3入手。2可以由1组成,3可以有1,2组成。所以考虑中途相遇法。分别处理选1,2和3的情况,然后DP答案!#include#include#include#include#include#include#include#include#include#include#include#include#def原创 2017-07-25 09:35:46 · 538 阅读 · 0 评论 -
二分套二分
描述小Hi的学校正面临着废校的大危机。面对学校的危机,小Hi同学们决定从ABC三个班中各挑出一名同学成为偶像。 成为偶像团体的条件之一,就是3名团员之间的身高差越小越好。 已知ABC三个班同学的身高分别是A1..AN, B1..BM 和 C1..CL。请你从中选出3名同学Ai, Bj, Ck使得D=|Ai-Bj|+|Bj-Ck|+|Ck-Ai|最小。输入第一行包含3个整数,原创 2017-07-30 14:27:18 · 341 阅读 · 0 评论 -
HDU5936折半枚举+思维
因为K只有10,如果x为999999999,F(x,k)也就才9^10,所以y的最大值不会很大,预计10^10,所以把这10位数,折半枚举一下,预处理左边5位,然后再枚举右边5位,这样时间复杂度就只会有n*logn(n=100000);问题得到解决。#includeusing namespace std;typedef long long ll;const int INF=0x3f3f3f3原创 2017-07-21 11:26:13 · 305 阅读 · 0 评论 -
三分套三分(bzoj4885)
首先长方体每个顶点等价,不用算8个。 其次一个点最远的距离显然是在3个与其不相邻的面取到的。 然后我们大力枚举3个面,大力来一发三分套三分。 接下来的问题是,如何求出长方体上两个顶点之间最短路的距离。 1.展开图如下:这种情况十分简单,自己yy一下就可以了。 2.展开图如下 这也也是可以用勾股定理算出来的。 到此,全部情况讨论完毕,得到答案。#inc原创 2017-05-31 16:32:03 · 473 阅读 · 0 评论 -
倍增新姿势
qwb打算向学姐表白,可是学姐已经受够了他的骚扰,于是出了一个题想难住他:已知一幅n个点m条边的无向图,定义路径的值为这条路径上最短的边的长度,现在有 k个询问,询问从A点到B点的所有路径的值的最大值。qwb听完这个问题很绝望啊,聪明的你能帮帮他吗?Input一组数据。第一行三个整数n,m,k (1第2..m+1行:三个正整数:X, Y, and D (1 15原创 2017-06-02 21:03:41 · 223 阅读 · 0 评论 -
2017年第0届浙江工业大学之江学院程序设计竞赛决赛 Problem E: qwb和李主席 (折半枚举!!!!n堆数分成最接近的两堆!!
Problem E: qwb和李主席Time Limit: 4 Sec Memory Limit: 128 MBSubmit: 274 Solved: 24[Submit][Status][Web Board]Descriptionqwb和李主席打算平分一堆宝藏,他们想确保分配公平,可惜他们都太懒了,你能帮助他们嘛?Input输入包含多组测试数据,处原创 2017-06-02 10:41:49 · 505 阅读 · 0 评论 -
最大密集字图--参考《胡伯涛的论文》!poj 3155
/*题意:求出图中一个子图,子图中边数/子图数 最大!源点到各个点连接一条有向边权值为U,各个点到汇点连接一条边权值为U+2*g-d,原来有关系的点连接两条有向边(u,v),(v,u)权值为1(U可以取m,U的目的是用来使得2*g-d的值始终为正),这样以后求最小割,那么h(g)= (U*n-mincut)/2;二分找到最优值即为mid ,但是如果要求图中的点则需要用left来从新图原创 2017-06-06 13:34:06 · 563 阅读 · 0 评论 -
HDU6055空间内n个点能组成多少个正方形
#include #include #include #include #include using namespace std ;#define eqs 1e-9struct node{ double x , y ;}p[1100] ;bool cmp(node a,node b){ return ( a.x < b.x || ( a.x == b.x &&原创 2017-07-27 16:51:01 · 1041 阅读 · 0 评论