题目连接: http://acm.fzu.edu.cn/problem.php?pid=1894 解题思路: 因为出队和入队都满足队列的性质,优先单调队列的优先级有进入队列的顺序和人品的高低,在一段区间中如果出现x[i]是最大的,那么[0,i-1]区间内的数就不用记录了,所以单调队列里面可以按照人品值降序排列,输出的时候判断一下当前元素是否已经出队即可. #include <cstdio> #include <cstring> using namespace std; ; stru…
训练赛的题…… 暴力一波明显超时…… 最近刚学stl 感觉是优先队列 但还是太会用…… 以后可以试一下优先队列…… 比赛之后百度了一下 发现是单调队列…… 看起来挺简单的 也算个模版题吧…… 总之思路就是维护一个单调队列…… 有用的的只有C G Q…… 那个长度最多是5的名字只用接着 根本没用…… 直接上代码…… #include<stdio.h> #include<iostream> #include<string.h> #include<algorithm&g…
题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=1698 题目大意: 有一个钩子有n条棍子组成,棍子有铜银金三种组成,价值分别为1,2,3.为了对付每场战斗需要对组成钩子某个区间的棍子进行调整.问经过q次调整后钩子的总价值是多少? 解题思路: 线段树更新.因为数据范围的问题,每次更新到节点会TLE.用区间更新就会节省很多的时间,对每一个区间来讲,如果这个区间里面的棍子都是相同类型的,就用一个节点变量记录棍子类型,如果区间内棍子是不同类型,则将变量记…
题目连接: http://www.lightoj.com/volume_showproblem.php?problem=1084 题目大意: 有n个点在一条以零为起点的坐标轴上,每个点最多可以移动k,问最终能不能把所有点都聚集在大于等于三个点的集合里面,如果能最少需要几个这样的集合? 解题思路: 刚开始看到题目感觉好简单,就开始了sort然后贪心之旅,这就是错误的开始.最后发现这样并不行,然后再Alex的提醒下想用单调队列优化,在我愚昧的理解下竟然写成了bfs,提交竟然ac了,surprise~…
题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=1506 题目大意: 给出一个数列An,问以Ai为最小值的区间内有多少个元素? 解题思路: 手动模拟一个栈.栈内元素为一个单调不递减序列.当新元素Ai需要进栈,如果栈顶元素大于Ai,弹出栈顶元素,直到栈顶元素不大于Ai,Ai进栈. 这里可以保证i是高为栈顶元素的矩形向后延伸的边界,弹出过程中记录高为Ai的矩阵向前延伸的边界. //#include <bits/stdc++.h> #include &…
题目连接: http://poj.org/problem?id=3468 题目大意: 给出n个数,有两种操作: 1:"C a b c",[a,b]中的每一个数都加上c. 2:"Q a b",求[a,b]中每个数相加的和. 解题思路: 线段树更新到每一个节点的话,由于节点数目和查询次数原因会tle,所以在每一个节点内定义一个标志变量表示当前节点的下一层为更新,每次查询时候有需要的话在更新到下一层. #include <cstdio> #include &l…
题目连接: http://poj.org/problem?id=3264 题目大意: 有n个数从1开始编号,问在指定区间内,最大数与最小数的差值是多少? 解题思路: 在节点中存储max,min,然后查询指定区间的max.min. #include <cstdio> #include <iostream> #include <algorithm> using namespace std; ; const int INF = 0x3f3f3f3f; struct node…
做法:维护一个单调递减序列,只需输出序列中的第一个元素即可. 对于命令我们可以进行不同的处理: 如果是Q命令,则判断当前队列中是否仍有元素,如果没有则输出-1,如果有则直接输出队首. 如果是G命令,则对last加1,之后对于队列中所有超出范围的前端元素进行出队操作.(该元素在原序列中的位置>=last) 如果是C命令,则将该元素加入队列中,并和队尾元素比较,维护队列的单调性. 这里考虑一个问题,当前元素加如后对队尾元素为什么可以毫无保留的删去呢? 因为当前元素面试时间一定比队尾元素晚,所以如果当…
/****************************************************************** 题目: 志愿者选拔(FZU 1894) 算法: 单调队列 算法思想: 在每个元素入队的时候入队的时候,使队列单调,查找 的时候就能很快找到最值. *******************************************************************/ #include<cstdio> #include<cstring>…
 Problem 1894 志愿者选拔 Accept: 1770    Submit: 5523 Time Limit: 1500 mSec    Memory Limit : 32768 KB  Problem Description 世博会立即就要开幕了,福州大学组织了一次志愿者选拔活动.參加志愿者选拔的同学们排队接受面试官们的面试.參加面试的同学们依照先来先面试而且先结束的原则接受面试官们的考查.面试中每一个人的人品是主要考查对象之中的一个.(提高人品的方法有扶老奶奶过街,不闯红灯等)作为…
Problem 1894 志愿者选拔 Accept: 2308 Submit: 7003 Time Limit: 1500 mSec Memory Limit : 32768 KB Problem Description 世博会马上就要开幕了,福州大学组织了一次志愿者选拔活动. 参加志愿者选拔的同学们排队接受面试官们的面试.参加面试的同学们按照先来先面试并且先结束的原则接受面试官们的考查. 面试中每个人的人品是主要考查对象之一.(提高人品的方法有扶老奶奶过街,不闯红灯等) 作为主面试官的John…
传送门 Description 世博会马上就要开幕了,福州大学组织了一次志愿者选拔活动.参加志愿者选拔的同学们排队接受面试官们的面试.参加面试的同学们按照先来先面试并且先结束的原则接受面试官们的考查.面试中每个人的人品是主要考查对象之一.(提高人品的方法有扶老奶奶过街,不闯红灯等)作为主面试官的John想知道当前正在接受面试的同学队伍中人品值最高的是多少.于是他请你帮忙编写一个程序来计算. Input 输入数据第一行为一整数T,表示有T组输入数据.每组数据第一行为”START”,表示面试开始接下…
我并没有多想,他们是用的数组模拟队列,然而我就是优化循环次数过得 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ]; int main() { int t; scanf("%d",&t); while(t--) { ],name[]; ,s = ,max = -,maxid = ; whi…
http://acm.fzu.edu.cn/problem.php?pid=1858 一个数组中  找两对元素,第一对元素和最大,第二对元素和最小,限制:一对元素中两个元素的距离在原数组中小于d.去掉这两对元素,剩下的求平均值. 思路:先找两个最大的,暴力枚举第一对元素的最后一个元素,然后维护一个单调减队列,反之 就是维护单调增队列.复杂度O(n). #include<cstdio> #include<algorithm> #include<iostream> #inc…
题目: Description 小西有一条很长的彩带,彩带上挂着各式各样的彩珠.已知彩珠有N个,分为K种.简单的说,可以将彩带考虑为x轴,每一个彩珠有一个对应的坐标(即位置).某些坐标上可以没有彩珠,但多个彩珠也可以出现在同一个位置上. 小布生日快到了,于是小西打算剪一段彩带送给小布.为了让礼物彩带足够漂亮,小西希望这一段彩带中能包含所有种类的彩珠.同时,为了方便,小西希望这段彩带尽可能短,你能帮助小西计算这个最短的长度么?彩带的长度即为彩带开始位置到结束位置的位置差. Input 第一行包含两…
题目: 题目描述 烽火台又称烽燧,是重要的防御设施,一般建在险要处或交通要道上.一旦有敌情发生,白天燃烧柴草,通过浓烟表达信息:夜晚燃烧干柴,以火光传递军情.在某两座城市之间有 n 个烽火台,每个烽火台发出信号都有一定的代价.为了使情报准确的传递,在 m 个烽火台中至少要有一个发出信号.现输入 n.m 和每个烽火台发出的信号的代价,请计算总共最少需要多少代价,才能使敌军来袭之时,情报能在这两座城市之间准确的传递! 输入格式 第一行有两个数 n,m 分别表示 n 个烽火台,在任意连续的 m 个烽火…
题目:https://ac.nowcoder.com/acm/contest/883/F 题意:求一个矩阵最大面积,这个矩阵的要求是矩阵内最小值与最大值差值<=m 思路:首先我们仔细观察范围,我们就知道可以n^3,前面这题我(看付队博客)讲过求一个最大的什么矩阵就是分两种情况, 第一种:枚举上下边界,转化为一维,复杂度n^3 第二种:枚举下边界,转化为高楼问题,复杂度n^2 这里显然复杂度可以n^3,我们就想一下三场循环,这题实际上就是找到矩阵内的最大值最小值 第一层肯定是枚举上边界 第二层我们…
单调队列优化 眼界极窄的ZZ之前甚至不会单调队列--(好丢人啊) 单调队列优化的常见情景: 转移可以转化成只需要确定一个维度,而且这个维度的取值范围在某个区间里 修剪草坪 这个题学长讲的好像是另外一个思路,但是码的时候不知不觉就偏到另一个思路里去了--改天也打打试试 需要注意的: 这题中如果有多个满足最大值,我们应该取最靠前的,所以在弹队的时候用的是> 这个题中单调队列维护的是\(dp_{j,0}-pre_j(i-k-1\leq j \leq i)\),这里的\(j\)是入队时的下标 精华: f…
[小结] 中山纪念中学2018暑期训练小结(划掉)(颓废记)-Day10 各位看众朋友们,你们好,今天是2018年08月14日,星期二,农历七月初四,欢迎阅看今天的颓废联编节目 最近发生的灵异事件有 1.本人模拟赛直接打出T2目测全场唯一AC代码结果细节被O2直接卡掉 2.第16号台风在附近海区逗留3天成功画出一个D-og 3.卖文具的小卖店提前装修结束开业 4.考场上明知道能用生成树做的题目还要用二分做,结果全部T掉 5.去食堂路上开始下雨,到食堂之后雨停了.... 好不水了,说点正经的 最近…
经过两次测试,通过深刻的反思,我主要发现了以下易犯错误: 1.做题目时过于追求速度,导致好几处代码都出现手误打错的现象!而且,千万不要图快.图方便就复制粘贴,非常容易出错!(例如T3-party中直接复制之前的代码然后忘记把“<”改成“=”了,光这个错误就找了好久,╮(╯▽╰)╭) 2.学过的知识不能灵活运用. 在T3-party这道题中,其实用floyed就可以拿到70分了!但是却偏偏要尝试没有太大把握的Dijkstra算法,而且还忘记了队列是怎么定义的! T4-tree其实也不难,可是一看到…
安装了keepalived+lvs,达到了高可用的负载均衡,但是今天再启用的时候发现keepalived不正常,通过 /var/log/messages 查看系统日志发现狂刷 IPVS: Can't initialize ipvs: Protocol not available. 很纠结,于是上网查,发现有的人也出现了类似这样的问题, 原因是: ip_vs模块系统默认没有自动加载,可以通过 lsmod | grep ip_vs 命令查看一下,如果没有任何输出则表示ip_vs模块并没有被内核加载,…
最近BZOJ炸了,而我的博客上又更新了一些基本知识,所以这里刷一些裸题,用以丰富知识性博客 POJ2823   滑动的窗口 这是一道经典的单调队题,我记得我刚学的时候就是用这道题作为单调队列的例题,算一道比较基本的题目 先贴题目 Description An array of size n ≤ 106 is given to you. There is a sliding window of size k which is moving from the very left of the arr…
[等待事件]等待事件系列(5.1)--Enqueue(队列等待)   1  BLOG文档结构图   2  前言部分   2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① Enqueue队列等待 ② Enq数据字典 ③ enq: AE - lock ④ enq: MR锁 ⑤ enq: DX - contention ⑥ enq: SQ - contention 序列等待     2.2  相关参考文章链接 [推…
Problem Description 世博会马上就要开幕了,福州大学组织了一次志愿者选拔活动.参加志愿者选拔的同学们排队接受面试官们的面试.参加面试的同学们按照先来先面试并且先结束的原则接受面试官们的考查.面试中每个人的人品是主要考查对象之一.(提高人品的方法有扶老奶奶过街,不闯红灯等)作为主面试官的John想知道当前正在接受面试的同学队伍中人品值最高的是多少.于是他请你帮忙编写一个程序来计算.  Input 输入数据第一行为一整数T,表示有T组输入数据.每组数据第一行为"START"…
ACM暑期集训总结报告 不知不觉,ACM暑期集训已经过去了一个月了(其实我还差几天才够一个月,因为最后几天要回家办助学贷款,所以没坚持到最后,当了个逃兵.....[汗])也到了结束的时候.在这一个月中, 有压力,有感触,也有喜悦.收获了很多,反思了很多. 知识方面,这一个月中, 主要是看了DP的内容,包括基础DP(主要是背包), 状压DP, 数位DP(掌握的不好), 树形DP.另外,每周有几场训练赛,通过训练赛的题目,既重温了已经有些模糊的一些知识点,学习到了新的知识点.最后,还参加了一场CCP…
题意与分析 很简单:求最长公共子序列. 注意子序列与子串的差别:一个不连续一个连续.一份比较好的参考资料见:https://segmentfault.com/a/1190000002641054 状态转移方程是这样的: 设dp[i][j]dp[i][j]为a串1~i.b串1~j中的最长的公共子序列,则 dp[i][j]={dp[i−1][j−1]+1,  max(dp[i−1][j],dp[i][j−1]),  a[i]=b[j],a[i]≠b[j]dp[i][j]={dp[i−1][j−1]+…
朋友做Java开发三年多的时间了,在老东家勤勤恳恳工作了三年多,工资也就是从刚开始的8K涨到了12K,天天给我吐槽他的工资低.2019年中下旬开始就一直在各种地方找资源,刷面试题,想要“骑驴找马”,所幸那时候的疫情还不是很严重,而他恰恰又是在年前找到一份心仪的工作,薪资也是从12K涨到了30K. 我给他比出了大大的羡慕,他给我说,你别看我现在薪资这么高,那几十套面试题我至少刷了七遍以上. 今天我就把这几十套的面试题免费分享给大家,希望疫情过去对大家的升职涨薪有所帮助. 2020最新BATJava…
日志,启动项目就疯狂的刷ClientWorker日志 配置 本身项目中配置的依赖 nacos-discovery,nacos-config版本都是2021.1,但是编译版本是1.4.1 升级nacos-client版本可解决次问题 添加依赖,版本为2.0.1.解决问题. <!-- Alibaba Nacos 配置 --> <dependency> <groupId>com.alibaba.nacos</groupId> <artifactId>n…
每个标题都做了题目原网址的超链接 Day1<Vanya and Lanterns> 题意: 一条长度为 l 的街道,在这条街道上放置了n个相同的灯,街道一端位置记为0,每个灯的位置在ai处,问灯的最小照射半径为多少时,才能满足整条街道都能被灯光照到 . 题解: 输入所有的灯的位置,然后进行排序. 比较每两个相邻的灯的距离,取最大值的 1/2. 比较两端的值:第一个灯需要照到 0 位置,最后一个灯需要照到 l 位置. 三个值中取最大值. 上板子: #include<bits/stdc++.…
#include <bits/stdc++.h> using namespace std; vector<int> path; ; short dp[maxn][maxn][maxn][maxn][maxn]; bool tp[maxn][maxn][maxn][maxn][maxn]; int P,C,A,M; int p[maxn],c[maxn],a[maxn],m[maxn],g[maxn]; int main() { int n; scanf("%d"…