度度熊正在学习双端队列,他对其翻转和合并产生了很大的兴趣. 初始时有 N 个空的双端队列(编号为 1 到 N ),你要支持度度熊的 Q 次操作. ①1 u w val 在编号为 u 的队列里加入一个权值为 val 的元素.(w=0 表示加在最前面,w=1 表示加在最后面). ②2 u w 询问编号为 u 的队列里的某个元素并删除它.( w=0 表示询问并操作最前面的元素,w=1 表示最后面) ③3 u v w 把编号为 v 的队列“接在”编号为 u 的队列的最后面.w=0 表示顺序接(队列 v…
度度熊学队列 题目传送门 解题思路 STL大法好.直接用deque,但是N的范围很大,如果直接开那么多的deque会爆内存,所以用map< int, deque< int>>,多组数据,记得清空map. 代码如下 #include <bits/stdc++.h> #define INF 0x3f3f3f3f using namespace std; typedef long long ll; inline int read(){ int res = 0, w = 0;…
题目链接 Problem Description 度度熊正在学习双端队列,他对其翻转和合并产生了很大的兴趣. 初始时有 N 个空的双端队列(编号为 1 到 N ),你要支持度度熊的 Q 次操作. ①1 u w val 在编号为 u 的队列里加入一个权值为 val 的元素.(w=0 表示加在最前面,w=1 表示加在最后面). ②2 u w 询问编号为 u 的队列里的某个元素并删除它.( w=0 表示询问并操作最前面的元素,w=1 表示最后面) ③3 u v w 把编号为 v 的队列“接在”编号为…
思路: 记录一下c++ stl中的双向链表list的各种用法. https://blog.csdn.net/fanyun_01/article/details/56881515 实现: #include <bits/stdc++.h> using namespace std; list<]; int main() { int n, q, t, u, v, w; while (scanf("%d %d", &n, &q) != EOF) { ; i &l…