题目背景 $Guess$准备向敌军阵地发起进攻了!$Guess$的武器是自动制导导弹.然而在机房是不允许游戏的,所以班长$XZY$对游戏界面进行了降维打击,结果... 题目描述 众所周知,环境因素对导弹制导的效率影响是很大的.地图上总共有两种环境,暂且称为环境一和环境二.$Guess$有$n$种型号的导弹,每一种都有两个参数$a_i,b_i$,分别表示该型号导弹在两种环境下的恒定飞行速度.然而,$Guess$攻击的距离和角度会经常调整,导弹预定轨迹上的地形也会随之变化.一维化以后,导弹预定轨迹可…
题目链接 [洛谷传送门] 题解 按位处理. 把每一位对应的图都处理出来 然后单调栈处理一下就好了. \(and\)操作处理全\(1\). \(or\)操作处理全\(0\). 代码 #include <bits/stdc++.h> #define gc getchar using namespace std; typedef long long ll; const int N = 1000 + 4; const int P = 1e9 + 7; const int BIT = 31; int n…
http://acm.hdu.edu.cn/showproblem.php?pid=5875 单调栈,预处理to[i]表示第一个比a[i]小的数字,一直跳就可以. 这题是数据水而已. 这里学习下单调栈. 构造一个单调递增的栈,并且记录元素大小的同时记录它的id. 每次进来一个小的元素的话,就出栈,同时出栈的这个元素的to[id] = i了,因为这个元素是当时最大的.然后这个a[i]是第一个能让它出栈的,所以就是它了.后面的同理. #include <cstdio> #include <c…
1.Poj 3250  Bad Hair Day 2.链接:http://poj.org/problem?id=3250 3.总结:单调栈 题意:n头牛,当i>j,j在i的右边并且i与j之间的所有牛均比i矮,i就可看到j.i可看到的所有牛数记为ai,求S(ai),(1<=i<=n). 转化一下,求j可以被多少牛看到.这样就直接单调栈,求从j往前单调递增的数量. #include<iostream> #include<cstring> #include<cma…
A - Equivalent Prefixes - 单调栈 题意:给定两个n个元素的数组a,b,它们的前p个元素构成的数组是"等价"的,求p的最大值."等价"的意思是在其任意一个子区间内的最小值相同. 考虑使用单调栈去弄它.每次单调栈中的元素会回答以栈顶元素为结尾的区间的最小值是多少. 比如数组: 2,4,3,5,1 前1个元素的单调栈: {{2,1}} 意思是[1,1]的最小值是2 前2个元素的单调栈: {{2,1},{4,2}} 意思是[1,2]的最小值是2,[…
鉴于早上那题让我怀疑单调栈白学,特意来复习下单调栈 题意 考虑按照每个元素对答案的贡献来统计,那么我们只需要找到每个元素左边右边第一个比它小的就可 这题给的又是排列,简直不能再良心 #include <bits/stdc++.h> using namespace std; #define int long long const int N = 1000005; int s[N],top,a[N],l[N],r[N],n,ans; signed main() { cin>>n; fo…
很难啊啊啊!!! bzoj5380原题,应该可以粘题面. 问题转换: 有一个n列1e9行的矩阵,每一列上都写着相同的数字Ai. 你从位置(x,y)出发每一步可以向左上方或左方走一步,最后走到第一行. 要求最小化路径上的总权值. 首先题意转化就让我挂了... 然后题解里一个显然的结论让我又挂了一回:最优决策是先往左上走几步,在往上一直走. 证明比较简单.因为如果你往上走了几步后再往左上走,那么一定不如先往左上走,不然就不是最优决策. 于是可以枚举转弯位置.(27%暴力) #include<cstd…
题目链接 http://acm.split.hdu.edu.cn/showproblem.php?pid=5875 Problem Description The shorter, the simpler. With this problem, you should be convinced of this truth.    You are given an array A of N postive integers, and M queries in the form (l,r). A fu…
传送门 题意:有一场比赛,$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$的最小值(线性规…
题意:给你一串数a再给你一些区间(lef,rig),求出a[lef]%a[lef+1]...%a[rig] 题解:我们可以发现数字a对数字b取模时:如果a<b,则等于原数,否则a会变小至少一半.就是说a最多成功取模(log2 a)次,所以我们只需要每次在区间内找到最前面一个小于等于a的值,接着更新a与区间左端点,直到没有值比a小或者区间取模完成. 我们可以使用线段树求出区间内小于某个值的最前一个位置,具体方法就是:父节点记录区间最小值,接着当这一整段的最小值小于等于给定的值时就递归进此子树(另一…