首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
BZOJ 2096 单调队列
】的更多相关文章
BZOJ 2096 单调队列
思路: 偷懒用的STL //By SiriusRen #include <deque> #include <cstdio> using namespace std; struct Node{int id,w;}jy; deque<Node>qmin,qmax; int n,k,xx,t,ans; int main(){ scanf("%d%d",&k,&n); for(int i=1;i<=n;i++){ scanf("…
bzoj 1047 单调队列
做4次单调队列优化DP. /************************************************************** Problem: 1047 User: idy002 Language: C++ Result: Accepted Time:2088 ms Memory:16756 kb ****************************************************************/ #include <cstdio> #…
BZOJ 4385 单调队列
思路: 对于每一个r 要找最小的符合条件的l最优 这时候就要找在这个区间中 d长度的和的最大值 用单调队列更新就好了 //By SiriusRen #include <cstdio> #include <algorithm> using namespace std; #define N 2000100 long long sum[N],p,g[N]; int n,d,w[N],head,tail,l,ans,que[N]; signed main(){ scanf("%d…
bzoj 3126 单调队列优化dp
能转移的最左是其左边完整区间的最右左端点,最右是能覆盖它的最左左端点-1 #pragma GCC optimize ("O3") #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<cmath> #define N 200005 using namespace std; int l[N],r[N],n,m,f[N]…
BZOJ 3831 单调队列DP
思路: 这好像是我刚学单调性的时候做的题 (我是不会告诉你 我被这题教做人了的...) i-stk[head]>k 删队头 f[stk[tail]]>f[i]||(f[stk[tail]]==f[i]&&a[stk[tail]]<=a[i])删队尾 //By SiriusRen #include <cstdio> using namespace std; ],f[],stk[]; int main(){ scanf("%d",&n)…
BZOJ 1012 单调队列+二分
思路: 维护一个单减的序列 序号是单增的 每回二分查找第一个比询问的大的值 我手懒 用得lower_bound //By SiriusRen #include <cstdio> #include <algorithm> using namespace std; #define int long long int m,mod,top,jy,ans,tot; char ch[3]; struct Node{int pos,weight;}node[200050],t; bool ope…
BZOJ 2096: [Poi2010]Pilots 单调队列
Code: #include<bits/stdc++.h> #define maxn 4000000 using namespace std; void setIO(string s) { string in=s+".in"; freopen(in.c_str(),"r",stdin); } struct Node { int h,id; Node(int h=0,int id=0):h(h),id(id){} }; deque<Node>q…
BZOJ 2096 Pilots - 单调队列STL(deque)
传送门 分析: 单调队列:维护两个递增.递减的队列,每次都加入新元素并更新,如果最大值(递减队首)-最小值(递增队首) > k,那么将最左段更新为前面两者中较前的那一个,并弹掉.用deque可以很方便的实现双向的队列. code #include<bits/stdc++.h> using namespace std; namespace IO { template<typename T> inline void read(T &x) { int i = 0, f =…
【BZOJ 1233】 [Usaco2009Open]干草堆tower (单调队列优化DP)
1233: [Usaco2009Open]干草堆tower Description 奶牛们讨厌黑暗. 为了调整牛棚顶的电灯的亮度,Bessie必须建一座干草堆使得她能够爬上去够到灯泡 .一共有N大包的干草(1<=N<=100000)(从1到N编号)依靠传送带连续的传输进牛棚来.第i包干草有一个 宽度W_i(1<=w_i<=10000).所有的干草包的厚度和高度都为1. Bessie必须利用所有N包干草来建立起干草堆,并且按照他们进牛棚的顺序摆放.她可以相放多少包就放 多少包来建立起…
[BZOJ 1047] [HAOI2007] 理想的正方形 【单调队列】
题目链接:BZOJ - 1047 题目分析 使用单调队列在 O(n^2) 的时间内求出每个 n * n 正方形的最大值,最小值.然后就可以直接统计答案了. 横向有 a 个单调队列(代码中是 Q[1] 到 Q[a] ),维护每行当前枚举区间的单调队列. 纵向一个单调队列(代码中是 Q[0] ),求出当前枚举区间的每行的单调队列后,就得到了每行的这个区间的最小值(最大值),就相当于一个长度为行数的数组,然后纵向做单调队列,求出的就是正方形的最值了. 代码 #include <iostream> #…