试题 算法提高 盾神与条状项链

提交此题   评测记录

资源限制

时间限制:1.0s   内存限制:256.0MB

问题描述

  有一天,盾神捡到了好多好多五颜六色的珠子!他心想这些珠子这么漂亮,可以做成一条项链然后送给他心仪的女生~于是他用其中一些珠子做成了长度为n的项链。当他准备把项链首尾相接的时候,土方进来了。
  “哇这么恶心的项链你也做得出来!!!”
  盾神自知审美不是他的长项,于是他很谦虚地请教土方,怎么才能把项链做得漂亮。
  “这个嘛~首先你要在这里加上一个这种颜色的珠子,然后在这里去掉这个珠子,然后……,最后你看看是不是漂亮很多咧~”土方一下子说出了m个修改步骤。
  盾神觉得这个用人工做太麻烦了,于是交给了你。

输入格式

  第一行两个数,分别为n,m。
  第二行n个数,表示盾神一开始的项链。第i个数表示第i颗珠子的颜色。
  接下来m行,为以下形式之一:
  ADD P Q:表示在颜色为P的珠子前面加上一个颜色为Q的珠子。
  DEL P:表示把颜色为P的珠子去掉,如果它不在端点处,则需要把它旁边的两颗珠子连起来。例如某时刻项链状态为1 4 5 8,则执行DEL 4会变成1 5 8,执行DEL 1会变成4 5 8。
  输入保证在每次操作之前,项链有颜色为P的珠子,且任意时刻珠子颜色互不相同。

输出格式

  第一行为一个数len,为做完所有操作后,项链的长度。
  第二行len个数,表示此时项链的状态。第i个数表示第i颗珠子的颜色。

样例输入

10 5
1 2 3 4 5 6 7 8 9 10
DEL 5
ADD 7 5
DEL 10
ADD 4 20
ADD 20 12

样例输出

11
1 2 3 12 20 4 6 5 7 8 9

数据规模和约定

  表示颜色的数字不超过10^5的正数,1<=n<=10^4,1<=m<=10^4。

解题思路:模拟,并巧用C++ STL库的顺序容器list。

代码如下:

#include <iostream>
#include <algorithm>
#include <list>

using namespace std;

list<int>    L;
int n,m;

void  opt(string ord){
    if(ord=="DEL"){
        int P;
        cin>>P;
        list<int>::iterator it;
        it=find(L.begin(),L.end(),P);
        it=L.erase(it);
    }
    else if(ord=="ADD"){
        int P,Q;
        cin>>P>>Q;
        list<int>::iterator it;
        it=find(L.begin(),L.end(),P);
        
        L.insert(it,Q);
    }
}

int main(int argc, char** argv) {
    cin>>n>>m;
    
    for(int i=0;i<n;i++){
        int a;
        cin>>a;
        L.push_back(a);
        
    }

for(int i=0;i<m;i++){
        string order;
        cin>>order;
        opt(order);
    }

int len=L.size();
    cout<<len<<endl;
    while(!L.empty()){
        int b=L.front();
        L.pop_front();
        cout<<b<<" ";
    }
        
    return 0;
}

蓝桥杯 ADV-193 盾神与条状项链 (试题解析)相关推荐

  1. 算法笔记_098:蓝桥杯练习 算法提高 盾神与条状项链(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 有一天,盾神捡到了好多好多五颜六色的珠子!他心想这些珠子这么漂亮,可以做成一条项链然后送给他心仪的女生~于是他用其中一些珠子做成了长度为n ...

  2. [Java] 蓝桥杯ADV-193 算法提高 盾神与条状项链

    问题描述 有一天,盾神捡到了好多好多五颜六色的珠子!他心想这些珠子这么漂亮,可以做成一条项链然后送给他心仪的女生~于是他用其中一些珠子做成了长度为n的项链.当他准备把项链首尾相接的时候,土方进来了. ...

  3. 蓝桥杯 ADV-193算法提高 盾神与条状项链

    问题描述 有一天,盾神捡到了好多好多五颜六色的珠子!他心想这些珠子这么漂亮,可以做成一条项链然后送给他心仪的女生~于是他用其中一些珠子做成了长度为n的项链.当他准备把项链首尾相接的时候,土方进来了. ...

  4. 2019第十届蓝桥杯大赛青少年创意编程省赛C++组试题解析

    水平有限,如有不当请不吝赐教,万分感谢 水下探测器 水下探测器可以潜入湖中在任意水深进行科学探索. 湖水的最大深度为 h 米,即它在湖底时到水面的距离,0<=h<=100: 探测器最初的水 ...

  5. 【科技素养题】少儿编程 蓝桥杯青少组科技素养题真题及解析第17套

    [科技素养题]少儿编程 蓝桥杯青少组科技素养题真题及解析第17套 1.在阅读文章和接受信息时注意区分事实和观点十分重要.事实(或称为命题)不同于观点的一个主要特征是 A.可以被证实或证伪 B.是准确无 ...

  6. 2022年第十三届蓝桥杯大赛软件省赛Java学B组试题

    第十三届蓝桥杯大赛软件省赛Java学B组试题 一.试题截图 1. 星期计算 这道题是可以直接用笔算起来的,我算出来的答案是5,(2022整除7 余6,六天后就是星期五)但目前官方答案还不知道是什么? ...

  7. 【计算思维题】少儿编程 蓝桥杯青少组计算思维题真题及解析第2套

    少儿编程 蓝桥杯青少组计算思维题真题及解析第2套 1.天平的左右两端分别放有一些砝码,如下图所示,右边的砝码不变,从左边最多拿走几个砝码,可以使天平左右两边平衡 A.1 B.2 C.3 D.4 答案: ...

  8. 【计算思维题】少儿编程 蓝桥杯青少组计算思维题真题及解析第1套

    少儿编程 蓝桥杯青少组计算思维题真题及解析第1套 1.多多观察一个立体图形,从不同的角度看到的形状如下图所示: 这个立体图形可能是  答案:D 考点分析:考查小朋友们的观察能力和推理能力,从前面视角看 ...

  9. 【科技素养题】少儿编程 蓝桥杯青少组科技素养题真题及解析第19套

    少儿编程 蓝桥杯青少组科技素养题真题及解析第19套 1.下列现象中有化学变化发生的是  A.蜡烛融化 B.冰块融化 C.电磁炉烧开水 D.铁生锈 答案:D 考点分析:主要考查小朋友们的物理和化学知识, ...

最新文章

  1. 项目中常用的 19 条 MySQL 优化总结
  2. ubuntu安装SSH2
  3. 利用Python发送短信,用处多多
  4. root和user切换
  5. linux ubutu书籍,Ubuntu Linux入门到精通[图书]
  6. typecho反序列化漏洞复现
  7. python代码-你见过哪些令你瞠目结舌的 Python 代码技巧?
  8. xampp mysql关机意外_xampp运行MySQL shutdown unexpectedly解决方法
  9. 2d isometric 坐标变换
  10. 学习笔记29--Apollo车辆要求及Apollo支持的传感器
  11. 更改android模拟器dns,Android模拟器无法联网 模拟器DNS设置
  12. C语言计算日期间隔天数的经典算法解析
  13. anaconda无法安装最新版pip
  14. 新版本七彩影视双端源码+支持三端/对接苹果CMS
  15. 跟艾文学编程《零基础入门学Python》(4)Python 面向对象
  16. ARM9嵌入式Linux开发-内存与IO操作
  17. Point1:STM32根据BRR反推波特率
  18. 题解-表达式括号匹配
  19. 东方新山水摄影在好莱坞引起新潮流
  20. 【选型指南】数字源表/源测量单元/SMU选型的7个重要指标

热门文章

  1. 【ESP 保姆级教程】疯狂传感器篇 —— 案例:ESP8266 + DHT11 + 自定义微信告警
  2. Flutter Application 转 Module 嵌入原生 App
  3. 海盗分金币问题 【转载】
  4. Spring Boot - Font Awesome OTS parsing error: Failed to convert( Failed to decode downloaded font)
  5. 《智能控制技术》--谈谈模糊集合鼻祖—扎德的贡献
  6. 7-12 列车厢调度(25 分)
  7. 动态规划——背包问题(详解)
  8. 11.5NOIP模拟赛
  9. 修改redis端口号启动
  10. 【以太网数据包】微信数据包