问题

蒜头君有 n 块积木,编号分别为 1 到 n。一开始,蒜头把第 i 块积木放在位置 i。蒜头君进行 m 次操作,每次操作,蒜头把位置 b 上的积木整体移动到位置 a 上面。比如 1 位置的积木是 1,2 位置的积木是 2,那么把位置 2 的积木移动到位置 1 后,位置 1 上的积木从下到上依次为 1,2。

输入格式

第一行输入 2 个整数 n,m(1≤n≤10000,0≤m≤10000)。

接下来 m 行,每行输入 2 个整数 a,b(1≤a,b≤n),如果a,b 相等则本次不需要移动。

输出格式

输出 n 行,第 i 行输出位置 i 从下到上的积木编号,如果该行没有积木输出一行空行。

样例输入1

2 2 
1 2 
1 2

样例输出1

1 2

样例输入2

4 4 
3 1 
4 3 
2 4 
2 2

样例输出2

2 4 3 1

vector<int>tt;
 mu[b].swap(tt);//进行vector的强制内存释放

mu[b].clear();//只是清空vector,并不会清空内存开的内存

#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <vector>
#include <stack>
using namespace std;
const int inf=0x3f3f3f3f;vector<int> mu[10005];
int n,m;int main(){scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)mu[i].push_back(i); for(int i=1;i<=m;i++){int a,b;scanf("%d%d",&a,&b);if(a==b||mu[b].empty())   continue;for(int j=0;j<mu[b].size();j++)mu[a].push_back(mu[b][j]);vector<int>tt;mu[b].swap(tt);//进行vector的强制内存释放//mu[b].clear();//只是清空vector,并不会清空内存开的内存}for(int i=1;i<=n;i++){if(!mu[i].empty()) for(int j=0;j<mu[i].size();j++)printf("%d ",mu[i][j]);printf("\n");}return 0;
}
/*
2 2
1 2
1 24 4
3 1
4 3
2 4
2 2
*/

堆积木 vector 清空内存相关推荐

  1. 堆积木(vector数组)

    蒜头君有n块积木,编号分别为1到n.一开始,蒜头君把第i块积木放在位置i.蒜头君进行m次操作.每次操作,蒜头君把位置b上的积木整体移动到位置a上面.比如1位置的积木是1,2位置的积木是2,那么把位置2 ...

  2. 堆积木(动态数组vector)

    1.问题描述: 2.算法分析: 这道题目开始看了好久都没看明白,其实题目大概意思是这样. 就是有一排容器,编号为 1,2,3\cdots n1,2,3⋯n,初始时编号为 i的容器有 编号为i的积木. ...

  3. (vector)堆积木

    题目: n块积木,编号1到n,初始时,第i块放在第i个位置.现在,进行a b操作,每次操作把b位置积木全放到a位置上.输出操作完之后每个位置上的木块. 输入:n,m.n代表有n个积木,m代表有m个操作 ...

  4. echarts树点击label事件_ECharts 堆积木(砖块)游戏

    最近突发奇想,用 3D 的堆叠柱图,做了一个搭积木的小游戏. 主要思路 用一个几乎透明的 series-bar3D 铺满整个 grid3D,作为操作区,监听鼠标点击事件.完成堆积木的操作: 用多层数据 ...

  5. echarts中树图的label的点击_ECharts 堆积木(砖块)游戏

    最近突发奇想,用 3D 的堆叠柱图,做了一个搭积木的小游戏. 主要思路 用一个几乎透明的 series-bar3D 铺满整个 grid3D,作为操作区,监听鼠标点击事件.完成堆积木的操作: 用多层数据 ...

  6. vector的内存释放

    1. vector容器的内存自增长 与其他容器不同,其内存空间只会增长,不会减小.先来看看"C++ Primer"中怎么说:为了支持快速的随机访问,vector容器的元素以连续方式 ...

  7. STL中Vector的内存分配机制

    一些好的公司校园招聘过程中(包括笔试.面试环节),经常会涉及到STL中vector的使用(主要是笔试)及其性能(面试)的分析.今天看了下相关文章,也写了几个小的测试程序跑了跑.算是总结下,希望对需要的 ...

  8. C++ Vecor 清空内存

    通常,vector 的 push 操作会增大底层内存容量,但是 erase 操作过后,size 会改变,但是底层内存容量不会改变,调用 capacity 方法可以查看底层内存空间大小. 为了消除空间浪 ...

  9. C++__堆,栈与内存管理

    C++__堆,栈与内存管理 1.什么是栈,什么是堆 具体可以看这篇:转载[C]堆区和栈区的区别 2.静态变量,全局变量,堆,栈生命周期 3.new与delete的动作 4.动态分配的内存计算 参考:& ...

最新文章

  1. 第一天开通博客,记录自己在编程道路上的点点滴滴
  2. android平板安装python_Notepad++配置Python开发环境
  3. SPOJ - PHRASES Relevant Phrases of Annihilation(后缀数组+二分)
  4. python——适用于py3的pillow图像处理模块plist组图分割
  5. django 1.8 官方文档翻译: 2-2-3 查找 API 参考
  6. java获取列族的列_在cassandra-cli中如何获取表中的所有列名以及如何在java中使用hector获取它?...
  7. Rating Prediction——评分预测小结
  8. 判断元素是否为HTMLElement元素
  9. 拓端tecdat|电商平台数据解锁网红零食销量密码
  10. MP288MP280清零软件
  11. 计算机操作基本技能知识,计算机基本操作技能考核知识点
  12. 填料吸收塔,填料教学实训,填料吸收实验系列QY-HGYL
  13. 上海大学计算机专业就业薪资,人均月薪过万?985、211、普通大学毕业生薪资水平大起底!和你想的不一样……...
  14. 如何解决github的code按钮一直转下载不了
  15. linux 性能测试 跑分,测试10秒钟,分析8小时,性能评估只看跑分可不够
  16. 网站优化之robots文件详解
  17. 旺旺号userid转换店铺shopid和评分性别
  18. 利用Android9.0虚拟机的JVMTI技术实现一些黑科技
  19. Ubuntu安装xxx依赖错误解决方法
  20. 绘制图像灰度直方图——将图像的灰度分布可视化方法总结

热门文章

  1. tensorflow示例代码注释2
  2. 给电脑重做系统,怎样做系统
  3. 计算机更改设置打不开了,更改适配器设置打不开,显示适配器
  4. 研发效能度量实践之有赞篇
  5. 慕课面板数据分析与Stata应用—第一章总结
  6. Visio日程规划图——论文计划进度图
  7. 【noip2005】采药
  8. Windows环境下的RTX实时操作系统学习记录
  9. 秋招教学: 蛋黄派教程
  10. 计算机网络中关于路由器的作用