SDNUOJ 1614.阿哲的幻想国(练习vector的用法)
Time Limit: 1000 MS Memory Limit: 32768 KB
Description
在阿哲的幻想国,每个人都可以把东西送给别人
给出每个人的物品,每个人都可以
- x y, 代表x将将自己物品序列末尾的物品给y 如果x没有东西,什么都不会发生
请你帮阿哲输出最终幻想国的人民的物品序列
Input
第一行一个n, 代表n个居民, 下面n行给出n个数字序列,第i个序列第一个数字k代表物品序列长度,接着是第i个居民的物品序列
然后一个q,接下来q行代表操作
1 <= n <= 100000, 1 <= q <= 100000, 物品总数保证不会超过100000, 且最初每个居民都拥有物品
Output
输出最终每个居民的物品序列
Sample Input
5
3 1 2 3
3 4 5 5
3 6 4 2
1 1
1 5
3
1 5
2 1
2 4
Sample Output
1 2 5
4
6 4 2
1 5
5 3
比较简单的模拟题,思路也比较清晰,由于在结构体中声明一个很大的数组会MLE,所以要用vector实现相应操作,还有一点要注意,如果一个人没有物品,应当输出回车,下面是ac代码:
#include<iostream>
#include<vector>
using namespace std;struct pero{int k;//int things[80];vector<int> things; //定义动态数组(向量)
};pero dat[100005]; int main()
{int n,p,a,b;cin>>n;for(int i=1;i<=n;++i){cin>>dat[i].k;for(int j=1;j<=dat[i].k;++j){cin>>a;dat[i].things.push_back(a); //往向量里塞数据 }}cin>>p;for(int i=0;i<p;++i){cin>>a>>b;if(dat[a].k!=0) //如果k为零则什么也不做 {//dat[b].things[++dat[b].k]=dat[a].things[dat[a].k--];dat[b].things.push_back(dat[a].things[dat[a].k-1]); //把a的尾值给b,然后a的长度减一,b的长度加1 dat[a].things.pop_back(); //弹出a给b的值 dat[b].k++;dat[a].k--;}}for(int i=1;i<=n;++i){if(dat[i].k==0) cout<<"\n"; //如果没有数据则输出回车 elsefor(int j=0;j<dat[i].k;++j) //顺序输出数据 {cout<<dat[i].things[j];if(j==dat[i].k-1) cout<<"\n";else cout<<" ";}}return 0;
}
SDNUOJ 1614.阿哲的幻想国(练习vector的用法)相关推荐
- c++中vector的用法详解
c++中vector的用法详解 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间 ...
- 【转】C++学习二 vector的用法(使用sort对于vector排序)
一.vector的介绍 vector是C++里面的一个容器,也是我们数学上面理解的向量,有一些比较常见的操作. 二.vector的定义 #include<vector> using nam ...
- vector 清空 Linux,STL容器vector基础用法小结
STL容器vector基础用法小结根据<ACM程序设计>写的,用实例展示vector用法. 方法:push_back(), insert(), erase(), clear(), size ...
- c语言中vector的用法,c中vector的用法
c中vector的用法的用法你知道吗?下面小编就跟你们详细介绍下c中vector的用法的用法,希望对你们有用. c中vector的用法的用法如下: 1 基本操作 (1)头文件#include. (2) ...
- C++--vector()的用法
vector()的用法 概念 vector 是向量类型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器.vector 是C++ STL的一个重要成员,使用它时需要包含头文件: #include ...
- c语言vector+erase用法,vector.erase用法注意事项
转自->这里 vector::erase():从指定容器删除指定位置的元素或某段范围内的元素 vector::erase()方法有两种重载形式 如下: iterator erase(iterat ...
- SDNUOJ 1613.阿哲的理想国(练习deque的用法)
Time Limit: 1000 MS Memory Limit: 32768 KB Description 在阿哲的理想国,每个人都可以玩弄自己的东西,或者让别人玩弄 给出每个人的物品,每个人都可以 ...
- C++中的vector的用法
参考:https://www.cnblogs.com/aminxu/p/4686332.html 使用vector需要包含头文件 #include<vector> 常用类型 vector& ...
- Java中vector的用法
Vector的使用 vector类底层数组结构的,它包含可以使用整数索引进行访问的组件.不过,vector的大小可以根据需要增大或缩小,以适应创建vector后进行添加或移除项的操作,因此不需要考虑元 ...
最新文章
- 通过T-SQL语句实现数据库加解密功能
- 流量难、获客难、增长难?增长黑客思维“解救”B端业务
- Codeforces Round #131 (Div. 2)------AB
- 以对象的形式动态获取宽高
- mysql映射文件_Mybatis SQL映射文件
- cpp [Error] reference to ‘count‘ is ambiguous(全局变量的使用模糊不清)
- mysql 工具 08s01_Mysql管理必备工具Maatkit详解之十四(mk-kill)
- 用python写网络爬虫 第2版 pd_用Python写网络爬虫(第2版)
- C#LeetCode刷题之#1-两数之和(Two Sum)
- php微信号授权登录失败,php 微信授权登录 40029错误
- vue中使用dragdrop
- wps目录怎么加一条_WPS中如何正确插入目录_WPS怎么做目录
- 如何实现百度mapv开源库与ol3的结合
- 编译原理基本定义(文法、算符文法、算符优先文法、算符优先关系表、算符优先分析过程)
- Share:电脑右下角 今日热文 广告和图标怎么关闭
- 用pdfmake生成pdf中文文档
- Linux车载导航程序,基于嵌入式LINUX的车载导航系统设计
- php 下载苹果应用ipa 苹果安装包下载
- 理顺一下C++三种内存分配方式
- 最新B端产品经理面试问题大全及答案合集(151题全部有答案)【11年大厂面试官呕心制作】