CSUOJ 1982 小M的移动硬盘
Description
最近小M买了一个移动硬盘来储存自己电脑里不常用的文件。但是他把这些文件一股脑丢进移动硬盘后,觉得这些文件似乎没有被很好地归类,这样以后找起来岂不是会非常麻烦?
小M最终决定要把这些文件好好归类,把同一类地移动到一起。所以现在小M有了这几种操作:
1 u 表示把编号为u的文件放到最上面
2 u 表示把编号为u的文件放到最下面
3 u v 表示把编号为u的文件放到编号为v的文件的后面
已知在最开始的时候,1号文件到n号文件从上往下排布
现在小M已经给出了他所进行的所有操作,你能告诉他操作之后的序列是会变成什么样子吗?
Input
第一行为一个数字T(T<=10)表示数据组数
第二行为两个数字n、m(1<=n,m<=300000)表示序列长度和小M的操作次数
接下来m行每行两个或三个数字,具体含义见题面
保证数据合法
Output
输出一行表示小M操作结束后的序列
Sample Input
- 1
- 10 5
- 1 5
- 2 3
- 2 6
- 3 4 8
- 3 1 3
Sample Output
- 5 2 7 8 4 9 10 3 1 6
Hint
- #include<stdio.h>
- #include<iostream>
- #include<algorithm>
- #include<string.h>
- using namespace std;
- #define MAXN 300010
- typedef long long ll;
- int m, n;
- int l[MAXN], r[MAXN];
- void init()
- {
- r[0] = 1;
- l[n + 1] = n;
- for (int i = 1; i <= n; i++)
- {
- l[i] = i - 1;
- r[i] = i + 1;
- }
- }
- void con(int x, int y)
- {
- r[x] = y;
- l[y] = x;
- }
- int main()
- {
- int T,x,u,v;
- while (cin >> T)
- {
- while (T--)
- {
- cin >> n >> m;
- init();
- for (int i = 0; i < m; i++)
- {
- cin >> x;
- if (x == 1)
- {
- cin >> u;
- if (r[0] == u)
- continue;
- int l_u = l[u],r_u=r[u],r0=r[0];
- con(l_u, r_u);
- con(u, r0);
- con(0, u);
- }
- else if (x == 2)
- {
- cin >> u;
- if (l[n+1] == u)
- continue;
- int l_u = l[u], r_u = r[u], l_n = l[n+1];
- con(l_u, r_u);
- con(l_n, u);
- con(u, n+1);
- }
- else
- {
- cin >> u >> v;
- if (r[v] == u)
- continue;
- int l_u = l[u], r_u = r[u], r_v = r[v];
- con(l_u, r_u);
- con(u, r_v);
- con(v, u);
- }
- }
- int temp = r[0];
- cout << temp;
- while (r[temp] != (n + 1))
- {
- cout << " " << r[temp];
- temp = r[temp];
- }
- cout << endl;
- }
- }
- return 0;
- }
- /**********************************************************************
- Problem: 1982
- User: leo6033
- Language: C++
- Result: AC
- Time:984 ms
- Memory:4368 kb
- **********************************************************************/
这题还能用链表来写,可以自己思考思考
CSUOJ 1982 小M的移动硬盘的更多相关文章
- csu 1982:小M的移动硬盘(双向链表)
Description 最近小M买了一个移动硬盘来储存自己电脑里不常用的文件.但是他把这些文件一股脑丢进移动硬盘后,觉得这些文件似乎没有被很好地归类,这样以后找起来岂不是会非常麻烦? 小M最终决定要把 ...
- CSU-1982 小M的移动硬盘
CSU-1982 小M的移动硬盘 Description 最近小M买了一个移动硬盘来储存自己电脑里不常用的文件.但是他把这些文件一股脑丢进移动硬盘后,觉得这些文件似乎没有被很好地归类,这样以后找起来岂 ...
- 中南大学2019年ACM寒假集训前期训练题集(基础题)
先写一部分,持续到更新完. A: 寒衣调 Description 男从戎,女守家.一夜,狼烟四起,男战死沙场.从此一道黄泉,两地离别.最后,女终于在等待中老去逝去.逝去的最后是换尽一生等到的相逢和团圆 ...
- KVM客户机使用主机USB设备
有些时候KVM客户机还是要使用USB设备,比如USB密钥等 KVM命令行参数 -usb 打开usb驱动程序,启动客户机usb支持 -usbdevice devname 为客户机增加usb设备,devn ...
- kvm云主机使用宿主机usb设备
有些时候KVM客户机还是要使用USB设备,比如USB密钥等 KVM命令行参数 -usb 打开usb驱动程序,启动客户机usb支持-usbdevice devname 为客户机增加usb设备,devna ...
- CSUOJ 1973 给自己出题的小X DFS
Description 小X学习了dfs,为了练习搜索,开始给自己出题玩. 玩着玩着,一会把自己难住了,一会又被自己难倒了,真是有趣诶! 小X出的题: 现在有N个不同的正整数,求它们可以组成多少个这样 ...
- mount 移动硬盘出现的各种小问题
1.fdisk -l 查看硬盘是否存在 2.新建要挂载硬盘的文件夹 mkdir /disk (如果想要挂载到已存在的目录就不要新建了) 3.挂载硬盘:mount /dev/sdc /disk 4 ...
- Mac无法写入移动硬盘
1.使用mac 磁盘工具,格式化移动硬盘 频繁穿插于mac于pc之间者,大批量拷贝大型文件者,请用exfat 首先,排除Fat32,虽然这是兼容性最好的文件格式,但一个不支持4g以上文件的格式(现在随 ...
- windows读取mac格式移动硬盘的方法
本文记录了一些window与mac数据在移动设备上互相拷贝的经验. 一.准备 家里有一台mac电脑,限于硬盘空间比较小,需要定期备份一些数据. 由于备份数据大小在20G左右,并且并没有压缩为一个压缩文 ...
随机推荐
- 网页实战开发笔记之——最全面的HTML的头部信息介绍
HTML中我们一般把<head></head>部分称为网页的头部.头部部分的内容虽然不会在页面中显示,但它能影响到搜索引擎对网页的收录和排序,以及网页的各种全局设置,可以说是至 ...
- [php]php时间格式化
1.将毫秒转化为时间格式 date("Y-m-d H:i:s",$millsec);
- java 获得字符串中最大重复子串长度
参考:http://blog.csdn.net/csdn_yaobo/article/details/50338025 要找一串字符串中,重复的字串长度,.例如ABCX1&ABC,中ABC重复 ...
- fifo 上使用 select -- 转
http://www.outflux.net/blog/archives/2008/03/09/using-select-on-a-fifo/ The right way to handle on-g ...
- 【leetcode 简单】 第七十八题 Nim游戏
你和你的朋友,两个人一起玩 Nim游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头. 拿掉最后一块石头的人就是获胜者.你作为先手. 你们是聪明人,每一步都是最优解. 编写一个函数,来判断你 ...
- log4net记录系统错误日志到文本文件用法详解
log4net是一个完全免费开源的插件,可以去官网下载源码. 一般系统操作日志不会用log4net,自己写代码存入数据库更方便合理,但是系统部署后运行在客户环境,难免会发生系统bug.崩溃.断网等无法 ...
- GRUB (简体中文)
原文链接:https://wiki.archlinux.org/index.php/GRUB_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) 前言 引导程序是计算机启动时 ...
- [转]CMake快速入门教程:实战
转自http://blog.csdn.net/ljt20061908/article/details/11736713 0. 前言 一个多月前,由于工程项目的需要,匆匆的学习了一下cmake的使 ...
- input 标签禁止输入
1.鼠标可以点击输入框,但是不能输入 readonly 例如: <input class="layui-input" readonly > 2.鼠标点击输入框出现禁用图 ...
- JavaBean的实用工具Lombok(省去get、set等方法)
转:https://blog.csdn.net/ghsau/article/details/52334762 背景 我们在开发过程中,通常都会定义大量的JavaBean,然后通过IDE去生成其属性 ...