----栈/队列/链表
扩展的灰
扩展的灰(Extended Ash)
展开
-
Jzoj4778 数列编辑器
我们发现前四个操作可以用双向链表维护,而最后一个操作有一个限制就是1#include#include#include#define N 1000010using namespace std;int l[N],r[N],s[N]; char c[5];int w[N],f[N]={-129},n=0,m,t,cnt=0;int main(){ freopen("editor.原创 2017-10-24 20:33:52 · 292 阅读 · 0 评论 -
Jzoj1310 生日礼物
先模拟,这个是双向链表的工作,让后将移动过后的序列取出来,在序列上面作LIS,那么答案就是n-LIS为什么?很简单LIS上的数不用动其他的都一次移动搞定就好了原创 2017-09-19 22:02:39 · 537 阅读 · 0 评论 -
Jzoj3882 近邻
有n个无聊的人,对于一条长为m(n我们要知道的是在每个人加入之后整个队伍的友善值。为了更方便确认你能够得到答案,输出每个人加入后整个队伍的友善值的异或和即可。这个题就是要维护一个动态插入和求前继后续的序列,那么我们可以用map但是TLE了,那么就改成好写又好看的zkw线段树即可,当然正解其实是离线处理+链表,不过因为位运算常熟小所以也可以掉打一些跑得慢的#include#原创 2017-10-02 21:27:27 · 316 阅读 · 0 评论 -
Jzoj5459【NOIP2017提高A组冲刺11.7】密室
小X 正困在一个密室里,他希望尽快逃出密室。密室中有N 个房间,初始时,小X 在1 号房间,而出口在N 号房间。密室的每一个房间中可能有着一些钥匙和一些传送门,一个传送门会单向地创造一条从房间X 到房间Y 的通道。另外,想要通过某个传送门,就必须具备一些种类的钥匙(每种钥匙都要有才能通过)。幸运的是,钥匙在打开传送门的封印后,并不会消失。然而,通过密室的传送门需要耗费大量的时间,因此,原创 2017-11-07 15:34:43 · 663 阅读 · 0 评论 -
Jzoj4841 平衡的子集
夏令营有N个人,每个人的力气为M(i)。请大家从这N个人中选出若干人,如果这些人可以分成两组且两组力气之和完全相等,则称为一个合法的选法,问有多少种合法的选法?这道题我们拷打数据范围后知道应该是折半搜索了但是似乎不是那么好做我们考虑如何搜索,显然每个人有三种状态,在队伍1中,在队伍2中和没有被选入我们将所有可能的状态都搜索出来加入一个数据结构(按照队伍1-队伍2的力量之差p作为关键原创 2017-10-30 17:00:08 · 320 阅读 · 0 评论 -
Jzoj4209 已经没有什么好害怕的了
小Y 最近开始学习算法姿势,但是因为小R 非常BB,给了她很多B6 题,所以她觉得自己已经没有什么前途了。于是小R 给了她一些稍微简单的题,让她觉得已经没有什么好害怕的了,其中一道是这样的:给定一个长度为n 只包含左括号和右括号的序列,现在小R 想要知道经过每一个位置的合法子串有多少个。空串是一个合法的串,如果A 和B 都是合法的串,那么(A) 和AB 都是合法的串。 n又原创 2018-01-17 12:13:13 · 531 阅读 · 0 评论 -
51Nod1426 沙拉酱括号
题目看这里我们考虑怎样得到最大答案首先对原序列进行括号配对,没有配对上的那些可以直接扔掉不影响答案让后我们有一个合法的括号序列当一对括号与区间有相交但是不包含整个区间时,将会产生一个位置的浪费(在区间内的那个左括号或者右括号没法配对了),所以答案-1那么一个区间的答案[l,r]应该是r-l+1-与这个区间相交的括号对数+包含这个区间的括号对数(会被减重)求相交的个数可以前缀原创 2018-02-22 21:41:02 · 214 阅读 · 0 评论 -
SPFA的两个优化
最近看到知乎上面有人讨论怎么卡spfa并给出了这道题作为实战地点 于是我就搞了两个优化把出台人精心构造的数据过了 优化1: 这个优化不是我想出来的,如果没错应该是Menci的做法 本来这个优化已经可以过掉原来的五个数据的,让后fstqwq(出题人)搞了一个新数据把这个优化卡T了 其实就是每次入队,如果队头比队尾大那么就交换(感觉很像SLF但是比SLF强) 让后为了Ac我就加了第二...原创 2018-09-08 11:50:34 · 2036 阅读 · 3 评论