Time Limit: 1000 MS Memory Limit: 32768 KB
Description
在阿哲的幻想国,每个人都可以把东西送给别人

给出每个人的物品,每个人都可以

  1. 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的用法)相关推荐

  1. c++中vector的用法详解

    c++中vector的用法详解 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间 ...

  2. 【转】C++学习二 vector的用法(使用sort对于vector排序)

    一.vector的介绍 vector是C++里面的一个容器,也是我们数学上面理解的向量,有一些比较常见的操作. 二.vector的定义 #include<vector> using nam ...

  3. vector 清空 Linux,STL容器vector基础用法小结

    STL容器vector基础用法小结根据<ACM程序设计>写的,用实例展示vector用法. 方法:push_back(), insert(), erase(), clear(), size ...

  4. c语言中vector的用法,c中vector的用法

    c中vector的用法的用法你知道吗?下面小编就跟你们详细介绍下c中vector的用法的用法,希望对你们有用. c中vector的用法的用法如下: 1 基本操作 (1)头文件#include. (2) ...

  5. C++--vector()的用法

    vector()的用法 概念 vector 是向量类型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器.vector 是C++ STL的一个重要成员,使用它时需要包含头文件: #include ...

  6. c语言vector+erase用法,vector.erase用法注意事项

    转自->这里 vector::erase():从指定容器删除指定位置的元素或某段范围内的元素 vector::erase()方法有两种重载形式 如下: iterator erase(iterat ...

  7. SDNUOJ 1613.阿哲的理想国(练习deque的用法)

    Time Limit: 1000 MS Memory Limit: 32768 KB Description 在阿哲的理想国,每个人都可以玩弄自己的东西,或者让别人玩弄 给出每个人的物品,每个人都可以 ...

  8. C++中的vector的用法

    参考:https://www.cnblogs.com/aminxu/p/4686332.html 使用vector需要包含头文件 #include<vector> 常用类型 vector& ...

  9. Java中vector的用法

    Vector的使用 vector类底层数组结构的,它包含可以使用整数索引进行访问的组件.不过,vector的大小可以根据需要增大或缩小,以适应创建vector后进行添加或移除项的操作,因此不需要考虑元 ...

最新文章

  1. 通过T-SQL语句实现数据库加解密功能
  2. 流量难、获客难、增长难?增长黑客思维“解救”B端业务
  3. Codeforces Round #131 (Div. 2)------AB
  4. 以对象的形式动态获取宽高
  5. mysql映射文件_Mybatis SQL映射文件
  6. cpp [Error] reference to ‘count‘ is ambiguous(全局变量的使用模糊不清)
  7. mysql 工具 08s01_Mysql管理必备工具Maatkit详解之十四(mk-kill)
  8. 用python写网络爬虫 第2版 pd_用Python写网络爬虫(第2版)
  9. C#LeetCode刷题之#1-两数之和(Two Sum)
  10. php微信号授权登录失败,php 微信授权登录 40029错误
  11. vue中使用dragdrop
  12. wps目录怎么加一条_WPS中如何正确插入目录_WPS怎么做目录
  13. 如何实现百度mapv开源库与ol3的结合
  14. 编译原理基本定义(文法、算符文法、算符优先文法、算符优先关系表、算符优先分析过程)
  15. Share:电脑右下角 今日热文 广告和图标怎么关闭
  16. 用pdfmake生成pdf中文文档
  17. Linux车载导航程序,基于嵌入式LINUX的车载导航系统设计
  18. php 下载苹果应用ipa 苹果安装包下载
  19. 理顺一下C++三种内存分配方式
  20. 最新B端产品经理面试问题大全及答案合集(151题全部有答案)【11年大厂面试官呕心制作】

热门文章

  1. 夜晚的天空为什么是黑的?
  2. 阿里云学生服务器专注于学生搭建个人博客
  3. 现代笑话二则:1、马尾辫同学;2、辣椒惹的祸。
  4. ElsaticSearch为什么搜索很快
  5. 美图类App原型制作分享-Meitu
  6. 内网渗透-域横向smbwmin明文hash传递
  7. 07【字符串的扩展】
  8. 给独立开发者的几点建议
  9. 与MySQL的第一次亲密接触
  10. rman如何直接备份到异地硬盘,磁带机和磁带库