题目传送门(内部题150) 输入格式 第一行两个整数$N,Q$. 接下来的$N$行,每行两个整数$a_i,b_i$. 接下来的$Q$行,每行一个整数$x$. 输出格式 对于每个询问,输出一行一个整数表示答案. 样例 样例输入: 2 43 04 -2-1012 样例输出: 60312 数据范围与提示 每个测试点$10$分,共$10$个测试点: 对于所有的数据,有:$1\leqslant N,Q,|a_i|,|b_i|,|x|<32323$. 题解 发现式子中没有$c_i$,所以可以把一个$x$提出…
题目描述 给出一个长度为 n 的序列,要求支持如下两种操作: A  l  r  x :将 [l,r] 区间内的所有数加上 x : Q  l  r : 询问 [l,r] 区间的最大连续子段和. 其中,一个区间的最大连续子段和指的是:该区间所有子区间的区间和中的最大值(本题中子区间包括空区间,区间和为 0 ). 输入 第一行两个整数 n.m,表示序列的长度以及操作的数目. 之后的 m 行,每行输入一个操作,含义如题目所述.保证操作为  A  l  r  x  或  Q  l  r  之一. 对于 3…
题目就是求树上每个节点的所有祖先中(ci-cj)/(dj-di)的最小值. 那么就是(ci-cj)/(di-dj)的最大值了. 对于每一个点,它的(ci,di)都是二维坐标系里的一个点 要求的就是祖先节点的所有点与目前节点连线的最小斜率 比较容易想到单调栈优化,像斜率优化dp一样 但是关键是本题在树上,会有很多麻烦的操作. 当搜到某一个儿子时可能会弹很多栈,而回溯的过程中需要把它们加回来. 如果暴力执行的话,会在蒲公英图退化为n2. 考虑优化:现在的关键就是在于在一个元素可能被弹栈/还原多次的情…
题意: 一个人在x轴上,他的左右两侧都有高楼,给出楼的横坐标Xi和高度Hi还有人的位置pos,求人所能看到的天空的最大角度. 分析: 将建筑物和人的位置从左到右排序,对于每个位置利用栈求一次人左边建筑物的凸包,找到一个最小的角度,然后对称一下,再找一个右边的建筑物的最小角度,两个角度加起来就是答案. 将人左边的建筑物从左到右扫描,下面两种情况会出栈: 栈顶元素楼高小于等于当前扫描到的楼高,因此这是一个单调的栈 栈顶两个楼顶所在直线的斜率 小于 栈顶的楼顶和当前楼顶所在直线的斜率(这里的斜率指的是…
盗张图:来自http://blog.csdn.net/xuechelingxiao/article/details/39494433 题目大意:有一排建筑物坐落在一条直线上,每个建筑物都有一定的高度,给出一个X坐标,高度为0,问X位置能看到的视角是多少度.如图: 图一: 图二: 图一为样例一,图二为样例三,红色部分为高楼,蓝色虚线为视角的最大范围. 思路:维护一个上凸的凸壳,递减的.也就是这样的. 分别找一下左边的和右边的就可以求出来答案 #include <cstdio> #include…
题目传送门(内部题69) 输入格式 第一行正整数$n,P,k$.第二行$n$个自然数$a_i$.$(0\leqslant a_i<P)$. 输出格式 仅一个数表示最重的背包的质量. 样例 样例输入: 5 5 20 4 2 1 3 样例输出: 5 数据范围与提示 样例解释: 取$x=3,a=\{3,2,0,4,1\}$.分配方案为$\{3,2,0\},\{4,1\}$,质量最大的质量为$5$. 数据范围: 对于$20\%$的数据$n\leqslant 20,P\leqslant 50$.对于$40…
传送门 题意:有一场比赛,$N$个人参加.每个人有两种参数$a,b$,如果存在正实数$A,B$使得$\frac{A}{a_i} + \frac{B}{b_i}$在$i=x$处取得最大值(可以有多个最大值),则称选手$x$可以夺冠.问共有多少人能够夺冠.$N \leq 2 \times 10^5 , 1 \leq a , b \leq 10^4$ 考虑将$(\frac{1}{a_i},\frac{1}{b_i})$看做平面上的点,我们的目标就是在这些点上求目标函数$z=Ax+By$的最小值(线性规…
题目背景 $Guess$准备向敌军阵地发起进攻了!$Guess$的武器是自动制导导弹.然而在机房是不允许游戏的,所以班长$XZY$对游戏界面进行了降维打击,结果... 题目描述 众所周知,环境因素对导弹制导的效率影响是很大的.地图上总共有两种环境,暂且称为环境一和环境二.$Guess$有$n$种型号的导弹,每一种都有两个参数$a_i,b_i$,分别表示该型号导弹在两种环境下的恒定飞行速度.然而,$Guess$攻击的距离和角度会经常调整,导弹预定轨迹上的地形也会随之变化.一维化以后,导弹预定轨迹可…
LOJ 题面传送门 orz 斜率优化-- 模拟赛时被这题送走了,所以来写篇题解( 首先这个最短路的求法是 trivial 的,直接一遍 dijkstra 即可( 重点在于怎样求第二问.注意到这个第二问平方和最大要在保证最短路的基础上求,因此考虑建出最短路 DAG,这样最短路径上一条 \(1\to n\) 的路径就对应原图中一条最短路.因此此题等价于求一条 \(1\to n\) 的路径,满足每一个属于同一连续段上路径权值和的平方之和最大.注意到 \(f(x)=x^2\) 是下凸函数,也就是对于一段…
在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为可见的,否则Li为被覆盖的.例如,对于直线:L1:y=x; L2:y=-x; L3:y=0则L1和L2是可见的,L3是被覆盖的.给出n条直线,表示成y=Ax+B的形式(|A|,|B|<=500000),且n条直线两两不重合.求出所有可见的直线. 很明显最后的结果应该是一个斜率递增的结果,那么我们先按斜率排序,然后用单调栈维护,如果要加入的线i和last-1的交点在i和last的左…