堆积木(基本数据结构-ArrayList数组的使用)
蒜头君有 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 相等则本次不需要移动。
输出格式
输出 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
package 计蒜客;import java.util.ArrayList; import java.util.Scanner;public class 堆积木 {/*** @param args*/public static void main(String[] args) {Scanner scan=new Scanner(System.in);int n=scan.nextInt();int m=scan.nextInt();ArrayList<Integer>[] als=new ArrayList[n+1];for(int i=1;i<=n;i++){als[i]=new ArrayList<Integer>();als[i].add(i);}int[][] arr=new int[m][2];for(int i=0;i<m;i++){arr[i][0]=scan.nextInt();//记录a位置arr[i][1]=scan.nextInt();//记录b位置 }for(int i=0;i<m;i++){int a=arr[i][0];int b=arr[i][1];if(a!=b){als[a].addAll(als[b]);//把b位置的所有元素给a位置 als[b].clear();}}//System.out.println("==================================");for(int k=1;k<=n;k++){//输出所有的位置上的元素for(int j=0;j<als[k].size();j++){System.out.print(als[k].get(j));if(j!=als[k].size()-1){System.out.print(" ");}}System.out.println();}}}
转载于:https://www.cnblogs.com/henuLiGang/p/8596880.html
堆积木(基本数据结构-ArrayList数组的使用)相关推荐
- 堆积木(动态数组vector)
1.问题描述: 2.算法分析: 这道题目开始看了好久都没看明白,其实题目大概意思是这样. 就是有一排容器,编号为 1,2,3\cdots n1,2,3⋯n,初始时编号为 i的容器有 编号为i的积木. ...
- echarts树点击label事件_ECharts 堆积木(砖块)游戏
最近突发奇想,用 3D 的堆叠柱图,做了一个搭积木的小游戏. 主要思路 用一个几乎透明的 series-bar3D 铺满整个 grid3D,作为操作区,监听鼠标点击事件.完成堆积木的操作: 用多层数据 ...
- echarts中树图的label的点击_ECharts 堆积木(砖块)游戏
最近突发奇想,用 3D 的堆叠柱图,做了一个搭积木的小游戏. 主要思路 用一个几乎透明的 series-bar3D 铺满整个 grid3D,作为操作区,监听鼠标点击事件.完成堆积木的操作: 用多层数据 ...
- bzoj 1109: [POI2007]堆积木Klo(二维偏序)
1109: [POI2007]堆积木Klo Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1139 Solved: 423 [Submit][St ...
- 数据结构:数组和链表的区别以及各自的优缺点
原文地址 http://blog.csdn.net/qq_25806863/article/details/70607204 数组和链表是两种基本的数据结构,他们在内存存储上的表现不一样,所以也有各自 ...
- 数据结构(数组结构、链表结构)
本来第一篇文章准备写点关于map的,但是考虑到map中可能也牵扯到数据结构,所以先随便写点就当做铺垫吧! 数据结构: 数据结构是指相互之间存在一种或多种特定关系的数据元素的集合 1.集合 数据结构中的 ...
- 51nod3174 堆积木
3174 堆积木 有 n 种立方体积木,每种积木有无限多个,可以用 a,b,w 来描述,表示长.宽和高. 积木可以搭在一起成为一个塔形,积木 可以放在在积木 上当且仅当,积木 X 底面 可以嵌套进 ...
- java 堆和栈 数据结构_数据结构的栈和堆和程序中的堆和栈
在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到.但对于很多的初学着来说,堆栈是一个很模糊的概念.堆栈:一种数据结构.一个在程序运行时用于存放的地方,这可能是很多初学者的认识 ...
- 数据结构之数组和链表的区别
第一题便是数据结构中的数组和链表的区别 数组(Array) 一.数组特点: 所谓数组,就是相同数据类型的元素按一定顺序排列的集合:数组的存储区间是连续的,占用内存比较大,故空间复杂的很大.但数组的二分 ...
最新文章
- Set_uid set_gid stick_bit 软链接 硬链接
- 相同bit1的最大的数
- php trim用法,php trim函数怎么用?
- NET防SQL注入方法
- Magento 自定义分页代码 How to change pagination design in product listing page in magen
- python 递归遍历目录排序_python下递归遍历目录和文件
- 网格向量必须包含特征点。_【专题研究】基于SVM支持向量机模型的选股策略
- 笔记︱多种常见聚类模型以及分群质量评估(聚类注意事项、使用技巧)
- BZOJ2160 拉拉队排练【Manacher】
- 语言余一个负数_Python 中负数取余问题
- linux挂载百度云bos,百度云存储对象BOS挂载工具
- MMC、SD、TF、SDIO、SDMMC简介
- vue前端上传文件给后端的两种方式
- PHP论坛开发技术总结
- u-boot (1) —— 编译分析
- p二、使用 docker-compose 安装 Prometheus+Alertmanager+Grafana
- PowerBI网关on-premises data gateway无法登录账号的问题及解决方法
- 【SCF CLI实践】腾讯云serverless + 企业微信群机器人,轻松解决告警通知问题
- 快速搭建直播平台教程,美颜SDK接入实现多种美颜特效
- 二进制文件和文本文件到底有什么不同?(二)