堆积木----vector防止内存超限
蒜头君有 nn 块积木,编号分别为 11 到 nn。一开始,蒜头把第 ii 块积木放在位置 ii。蒜头君进行 mm 次操作,每次操作,蒜头把位置 bb 上的积木整体移动到位置 aa 上面。比如 11 位置的积木是 11,22 位置的积木是 22,那么把位置 22 的积木移动到位置 11 后,位置 11 上的积木从下到上依次为 1,21,2。
输入格式
第一行输入 22 个整数 n,m(1 \le n \le 10000, 0 \le m \le 10000)n,m(1≤n≤10000,0≤m≤10000)。
接下来 mm 行,每行输入 22 个整数 a, b(1 \le a, b \le n)a,b(1≤a,b≤n),如果aa,bb 相等则本次不需要移动。
输出格式
输出 nn 行,第 ii 行输出位置 ii 从下到上的积木编号,如果该行没有积木输出一行空行。
样例输入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计算很简单。但是会存在内存超限的问题。
#include<bits/stdc++.h>
using namespace std;
vector<int> a[];
void mov(int to,int from)
{
for(int i=;i<a[from].size();i++)
{
a[to].push_back(a[from][i]);
}
/*vector<int> x;
a[from].swap(x);*/
a[from].clear();
}
int main()
{ int n,m;
cin>>n>>m; for(int i=;i<=n;i++)
a[i].push_back(i);
for(int i=;i<m;i++)
{
int from,to;
cin>>to>>from;
if(from!=to)
mov(to,from);
}
for(int i=;i<=n;i++)
{
for(int j=;j<a[i].size();j++)
{
cout<<a[i][j];
if(j!=a[i].size()-) cout<<" ";
}
cout<<endl;
}
return ;
}
使用注释中的的清空方法,可以释放掉内存。从而避免内存超限。
堆积木----vector防止内存超限的更多相关文章
- 1109: [POI2007]堆积木Klo
1109: [POI2007]堆积木Klo https://lydsy.com/JudgeOnline/problem.php?id=1109 分析: 首先是dp,f[i]表示到第i个的最优值,f[i ...
- 关于vector的内存释放问题
以前一直想当然的以为vector 的clear()函数会保证释放vector的内存,今天网上一查资料发现完全不是我想象的那样子. 比如有如下代码: tempObject obj1; tempObjec ...
- BZOJ 1109: [POI2007]堆积木Klo
1109: [POI2007]堆积木Klo Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 948 Solved: 341[Submit][Statu ...
- vector的内存释放
转自:http://www.cnblogs.com/summerRQ/articles/2407974.html vector : C++ STL中的顺序容器,封装数组 1. vector容器的内存自 ...
- 一步步优化JVM四:决定Java堆的大小以及内存占用
到目前为止,还没有做明确的优化工作.只是做了初始化选择工作,比如说:JVM部署模型.JVM运行环境.收集哪些垃圾回收器的信息以及需要遵守垃圾回收原则.这一步将介绍如何评估应用需要的内存大小以及Java ...
- vector的内存分配问题
vector的内存增长问题,其实无非是vector中size()和capacity()问题.vector的一个缺点就是它的内存分配是按照2的倍数分配内存的.当当前容量对插入元素不够时,分配一块新的内存 ...
- Odoo 堆积木似的软件构建
七雄争霸秦国一统天下,统一货币度量衡,从此天下统一... 假设在未来的某天,有一款开源的系统平台能将国内的企业管理软件市场进行统一,规范市场,标准开发,所有系统的集成创建通过市场开放的应用独立安装搭建 ...
- c/c++ 标准容器 vector的内存空间是如何自动增长的
c/c++ 标准容器 vector的内存空间是如何自动增长的 vector,string,deque的内存存储机制:在一个连续的内存空间存储,所以才支持下标操作. vector的课题:由于容器的大小是 ...
- c++ vector的内存释放
c++中vector的一个特点是: 内存空间只会增长,不会减小.即为了支持快速的随机访问,vector容器的元素以连续方式存放,每一个元素都挨着前一个元素存储.设想,如果每次vector添加一个新元素 ...
随机推荐
- 如何理解redo和undo
redo和undo的区别 redo--> undo-->datafileinsert一条记录时, 表跟undo的信息都会放进 redo 中, 在commit 或之前, redo 的信 ...
- 解决安装mysqlclient出现问题:mysql_config: not found
解决安装mysqlclient出现如下问题: Complete output from command python setup.py egg_info: /bin/sh: : mysql_confi ...
- 《深入理解Java虚拟机》笔记6
class文件由无符号数和表两种类型数据构成.表其实相当于一种结构体,内部又嵌套无符号数或者表. 用u1,u2,u4,u8分别代表一个字节,两个字节,四个字节,八个字节的无符号数. 如图中所示,cla ...
- [OpenCV]实验1.1:图像加载、显示
实验要求:利用图像库的功能,实现从文件加载图像,并在窗口中进行显示的功能:利用常见的图像文件格式(.jpg;.png;.bmp; .gif)进行测试 实验原理:图片读取到程序中是以Mat结构存储的,在 ...
- 图解aclocal、autoconf、automake、autoheader、configure
http://www.laruence.com/2008/11/11/606.html 本文地址: http://www.laruence.com/2008/11/11/606.html 转载文章 原 ...
- [转]mysql 常用命令集锦[绝对精华]
测试环境:mysql 5.0.45 [注:可以在mysql中通过mysql> SELECT VERSION();来查看数据库版本] 一.连接MYSQL. 格式: mysql -h主机地址 -u用 ...
- javascript脚本中使用json2.js解析json
官方地址:https://github.com/douglascrockford/JSON-js 点击页面右下角“Download ZIP”下载 网页中引用json2.js,下面是一个简单的例 ...
- App开发架构指南(谷歌官方文档译文)
这篇文章面向的是已经掌握app开发基本知识,想知道如何开发健壮app的读者. 注:本指南假设读者对 Android Framework 已经很熟悉.如果你还是app开发的新手,请查看 Getting ...
- ES6 async 与 await 实战
下面来说一说通过async和await方式来辅助请求和封装 首先我们定义一个类,定义一个async方法,才可以使用await class JForm extends React.Component { ...
- hp-ux 集群,内存 小记
-----查看hp 集群状态信息 # cmviewcl -v CLUSTER STATUS dbsvr up NODE ...