终于做出来了2333~~~~凸包+旋转卡(qia)壳。n = 2000,所以可以先枚举两个点作为对角线上的点。然后由于决策单调性,另外的两个点可以o(1)求出,所以就做好了额。计算几何太烦太烦>.11 #include 12 13 #define points P14 using namespac....
分类:
其他好文 时间:
2014-10-23 11:53:59
阅读次数:
306
Find Sequence
Time Limit: 5000/3000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)
Total Submission(s): 68 Accepted Submission(s): 12
Problem Description
Give you an po...
分类:
其他好文 时间:
2014-10-12 10:49:17
阅读次数:
194
题目连接:http://codevs.cn/problem/1107/
一道很神奇的题目。对于算术表达式一类的问题,可以采用编译原理里的后缀表达式的方式来做,具体做法是分别维护两个栈,一个栈里保存表达式里的数字,另一个栈里保存表达式里的运算符,给每种运算符一个优先级,我们要维护这个栈的单调性,每次读入运算符中的数字或运算符,读入的是运算符时,若这个运算符比栈顶的运算符优先级低,就弹出栈顶元素...
分类:
其他好文 时间:
2014-10-06 14:53:50
阅读次数:
282
概要:对于维护信息具有单调性的性质或者问题可以转化为具有单调性质的模型的题,我们可以考虑用单调栈或单调队列。技巧及注意:技巧很多,只要能将问题转化为单调性问题,就好解决了。当维护固定长度的单调区间,我们考虑用单调队列,如【BZOJ】3314: [Usaco2013 Nov]Crowded Cows(...
分类:
其他好文 时间:
2014-09-28 20:52:25
阅读次数:
153
Sky Soldiers
Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 556 Accepted Submission(s): 179
Problem Description
An airplane car...
分类:
其他好文 时间:
2014-09-25 18:28:57
阅读次数:
274
题意:
地面上有n座楼 你分别站在m个位置上 问每个位置上能看见多大角度的天空
思路:
很明显能想到在站的位置两边维持单调性 因此我们可以将站位和楼的位置排序 从左到右维护一遍 再从右到左维护一遍 这里可以利用单调栈 对于新扫描到的位置 如果是楼 那么栈中比它矮的楼就没用了可以出栈 如果是站位 可以这样判断 如果可以看见栈底的楼(最高的楼)那么前面的矮楼一定不会影响后...
分类:
其他好文 时间:
2014-09-24 12:53:56
阅读次数:
161
题目地址:POJ 3250
初学单调栈。多校和网络赛已经碰到两次了。
单调栈的原理简单的不能再简单了。。就是让栈里的元素从栈顶到栈底呈单调性。
比如说递增单调栈。
每次放进一个数的时候,如果栈顶的数小于要放的数,就把栈顶的数pop出来使得栈里保持单调性。
对于这道题来说,就从右往左开始遍历,建一个递增单调栈。那么每次pop出来的就是当前的牛可以看到的牛数。然后累加即可。
代码如下:
...
分类:
其他好文 时间:
2014-09-23 01:13:53
阅读次数:
289
HDU 5033 Building
题目链接
思路:利用单调栈维护建筑建的斜线,保持斜率单调性,然后可以把查询当成高度为0的建筑,和建筑和在一起考虑,从左往右和从右往左各扫一遍即可
代码:
#include
#include
#include
#include
#include
using namespace std;
const int N = 200005;...
分类:
其他好文 时间:
2014-09-22 18:21:39
阅读次数:
142
题目链接:hdu 5033 Building
题目大意:城市里有n座摩天大厦,给定每栋大厦的位置和高度,假定大厦的宽度为0。现在有q次查询,表示人站的位置,人的高度视为0,问说可以仰望天空的角度。
解题思路:比赛的时候用单调性优化直接给过了,对于每个大厦来说,记录左右两边与其形成斜率最大的大厦序号以及斜率,然后每次查询是,通过二分确认人所在位置属于哪两栋大厦之间,然后分别向左向右确认角...
分类:
其他好文 时间:
2014-09-22 16:52:02
阅读次数:
187
给出三角形三个顶点,求出三个互切的圆的半径
虽然大白鼠说可以推出公式,可是这个公式只怕没那么容易推……我左看右看上看下看也推不出。
应该是要做辅助线什么的,那也……
由于很容易就推出了关于三个半径的三元方程组,那么就试试搜索吧,搜其中任意一个半径,只要满足这个方程组就可以了,
那么就二分搜索吧,当然,这个单调性呢?
看图可知,比方说,我们搜最靠近最上面的顶点的圆的半径r1,由于,...
分类:
其他好文 时间:
2014-09-17 16:53:02
阅读次数:
299