首页 > 其他分享 >abc344E 维护元素唯一的序列

abc344E 维护元素唯一的序列

时间:2024-03-10 14:55:05浏览次数:22  
标签:int 元素 cin -- lst mp 序列 abc344E op

给定序列A[N],元素值各不相同,有Q个操作,格式如下:

  • 1 x y: 在元素x后面插入元素y,保证插入时x唯一。
  • 2 x: 将元素x从序列中删除,保证删除时x唯一。
    输出所有操作完成后的序列。

1<=N,Q<=2E5; 1<=A[i]<=1E9; A[i]!=A[j]

用链表来快速插入和删除,另外还需要map来快速定位,类似LRU的实现。

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define rep(i,a,b) for(int i=a; i<=b; i++)
#define per(i,a,b) for(int i=b; i>=a; i--)

const int Z = 200005;
int N, Q;
list<int> lst;
map<int,list<int>::iterator> mp;
void solve() {
    cin >> N;
    rep(i,1,N) {
        int a;
        cin >> a;
        lst.push_back(a);
        mp[a] = --lst.end();
    }
    cin >> Q;
    while (Q--) {
        int op, x, y;
        cin >> op;
        if (op == 1) {
            cin >> x >> y;
            auto it = mp.find(x)->second;
            mp[y] = lst.insert(++it, y);
        } else if (op == 2) {
            cin >> x;
            auto it = mp.find(x)->second;
            lst.erase(it);
            mp.erase(x);
        }
    }
    for (auto i : lst) cout << i << " ";
}

signed main() {
    cin.tie(0)->sync_with_stdio(0);
    int t = 1;
    while (t--) solve();
    return 0;
}

标签:int,元素,cin,--,lst,mp,序列,abc344E,op
From: https://www.cnblogs.com/chenfy27/p/18064189

相关文章

  • 230. 二叉搜索树中第K小的元素
    230.二叉搜索树中第K小的元素 https://leetcode.cn/problems/kth-smallest-element-in-a-bst/ 思路https://leetcode.cn/problems/kth-smallest-element-in-a-bst/solutions/1050055/er-cha-sou-suo-shu-zhong-di-kxiao-de-yua-8o07/根据二叉搜索树性质,对左子树进行搜......
  • App自动化测试之元素定位及常用方法
    1.元素定位appium元素定位方式跟selenium是一样的通过appium客户端启动服务器自动连接手机之后,进入对应的被测app以及界面app有不同的界面和不同的功能app的界面主要是以元素构成需要对界面功能进入自动化测试就一定要定位该界面元素执行对应的操作方法对手机app的界面进......
  • 491. 非递减子序列c
    复试的人真的搞心态啊,怎么能这么变态,刷题这么块。哭了。要是难一点的重复问题还是写for循环好点。/***Returnanarrayofarraysofsize*returnSize.*Thesizesofthearraysarereturnedas*returnColumnSizesarray.*Note:Bothreturnedarrayand*columnSi......
  • 7-9 找出不是两个数组共有的元素
    7-9找出不是两个数组共有的元素分数10作者张彤彧单位浙江大学给定两个整型数组,本题要求找出不是两者共有的元素。输入格式:输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。输出格式:在一行中按照数字给出的顺序输出不是两数组共......
  • 【力扣】非递减子序列
    题目代码如下:classSolution{public:vector<vector<int>>res;vector<int>path;booloccured(vector<int>&nums,intkey,intstartindex){for(inti=startindex;i<key;i++){if(nums[key]==nums[i]){......
  • 成品直播源码,大屏元素分辨率适配的常用方案
    越来越多的客户喜欢在成品直播源码中添加一个或者多个可视化大屏,用来集中的展现数据变化、位置变化等等。作为程序员在完成该需求时,经常会有这样的问题:我有一个大屏的模板,但是用户的浏览器分辨率不够,或者有的有书签栏有的没有书签栏,更或者是有的全屏了有的只是小窗口,这样就有了代......
  • leedcode-移除链表元素
    自己写的:#Definitionforsingly-linkedlist.#classListNode:#def__init__(self,val=0,next=None):#self.val=val#self.next=nextclassSolution:defremoveElements(self,head:Optional[ListNode],val):#初始化一个......
  • php xss 反序列化漏洞
    介绍反序列化漏洞,利用了后端服务的设计缺陷序列化和反序列化对象=(序列化)》字符串对象《(反序列化)=字符串序列化字符串构建首先,理解下对象序列化后是个嘛玩意儿上代码<?phpclasstest{public$a='hello';private$b='hello';protected$c='h......
  • day58 动态规划part15 代码随想录算法训练营 392. 判断子序列
    题目:392.判断子序列我的感悟:理解难点:听课笔记:我的代码:通过截图:代码易错点:老师代码:扩展写法-双指针:classSolution:defisSubsequence(self,s:str,t:str)->bool:#初始化两个指针,分别指向s和t的第一个字符i,j=0,0#......
  • abc331E 两数组元素间带限制的最大和
    题面:给定大小为n的数组A,大小为m的数组B,那么共有n*m个元素和。现给出L对禁用下标(a,b),找一对不在L中的下标(i,j),使用A[i]+B[j]最大,求该最大值。范围:n,m<=1e5;1<=L<=min(1e5,nm-1)思路:先对A和B按从大到小排序,然后让i指向A起始位置,j指向B起始位置,将对应的四元组(sum,i,j,flag)加入......