S:List
描述
写一个程序完成以下命令:
new id ——新建一个指定编号为id的序列(id<10000)
add id num——向编号为id的序列加入整数num
merge id1 id2——合并序列id1和id2中的数,并将id2清空
unique id——去掉序列id中重复的元素
out id ——从小到大输出编号为id的序列中的元素,以空格隔开
输入第一行一个数n,表示有多少个命令( n<=200000)。以后n行每行一个命令。输出按题目要求输出。样例输入
16
new 1
new 2
add 1 1
add 1 2
add 1 3
add 2 1
add 2 2
add 2 3
add 2 4
out 1
out 2
merge 1 2
out 1
out 2
unique 1
out 1
样例输出
1 2 3
1 2 3 4
1 1 2 2 3 3 4 1 2 3 4
Approach #1:
#include<iostream>
#include<iterator>
#include<list>
#include<vector>
using namespace std;
list<int>& FindList(vector<list<int>>& l, int id) {
int tmp = l.size();
if (tmp > 0) {
vector<list<int>>::iterator i;
i = l.begin();
return *(i+id-1);
}
}; int main() {
int n;
cin >> n;
vector<list<int>> a;
for (int i = 0; i < n; ++i) {
string s;
cin >> s;
if (s == "new") {
int id;
cin >> id;
a.push_back(list<int>());
} else if (s == "add") {
int id, num;
cin >> id >> num;
list<int>& temp = FindList(a, id);
temp.push_back(num);
temp.sort();
} else if (s == "merge") {
int id1, id2;
cin >> id1 >> id2;
list<int>& temp1 = FindList(a, id1);
list<int>& temp2 = FindList(a, id2);
temp1.merge(temp2);
} else if (s == "unique") {
int id;
cin >> id;
list<int>& temp = FindList(a, id);
temp.unique();
} else if (s == "out") {
int id;
cin >> id;
list<int>& temp = FindList(a, id);
temp.sort();
if (temp.size() > 0) {
list<int>::iterator it;
for (it = temp.begin(); it != temp.end(); ++it) {
cout << *it << " ";
}
}
cout << endl;
}
}
return 0;
}
Analysis:
自己刚开始想的使用map来做这道题,样例通过了,但是提交的时候还是WA。参考了一下别人的代码交了上去。
随机推荐
- 通过devtools在centos系统中启用高版本的gcc
C++11出来好久了,现在还是使用c++03的,需要在centos6.6的系统上实现gcc的升级,又不想自己编译代码. 于是选用了devtoolsset系列,安装脚本如下 安装脚本如下 functio ...
- 必看的 jQuery性能优化的38个建议
一.注意定义jQuery变量的时候添加var关键字 这个不仅仅是jQuery,所有javascript开发过程中,都需要注意,请一定不要定义成如下: $loading = $('#loading'); ...
- Spring在代码中获取bean的几种方式(转)
获取spring中bean的方式总结: 方法一:在初始化时保存ApplicationContext对象 ApplicationContext ac = new FileSystemXmlApplica ...
- EZOJ #226
传送门 分析 我们可以建一个k层图,把dp转移的三维对应到每个点上,每个第k层点连向0层点 我们让第0层点为实点其余为虚点,只要碰到虚点就dfs到他连得所有实点再将实点入队即可 代码 #include ...
- Oracle Data Pump 导出和导入数据
Data pump export/import(hereinafter referred to as Export/Import for ease of reading)是一种将元数据和数据导出到系统 ...
- python学习的一点点心得
好久没发博客了,不解释....接下来写一点自己最近学习python的一点心得. 想要学习python的初衷,是看<软件测试技术大全>一书时,了解到像perl.python.ruby等脚本类 ...
- django model ValueQuerySet QuerySet 转换成JSON
这里我有4个字段需要使用外键,那么在调取数据的时候就可以使用两个'_'进行调取,当然条件必须需要从前端传进来 models.py class HostInfo(models.Model): host_ ...
- javascript总结31 :DOM概述
1 JavaScript 三个组成部分 核心(ECMAScript)欧洲计算机制造商协会 描述了JS的语法和基本对象. 文档对象模型(DOM) 处理网页内容的方法和接口 浏览器对象模型(BOM) 与浏 ...
- Fiddldr 教程之:HTTP协议详解(转)
原文地址:http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html HTTP协议详解 当今web程序的开发技术真是百家争鸣,ASP ...
- up7.1-asp.net-本地测试教程
1.1. ASP.NET 框架:.NET Framework 4.5 依赖库:csredis,Newtonsoft.Json 安装redis 下载 redis-x64:http://pan.bai ...