SDUT 3347 数据结构实验之数组三:快速转置

 

数据结构实验之数组三:快速转置

Time Limit: 1000 ms Memory Limit: 65536 KiB

Problem Description



转置运算是一种最简单的矩阵运算,对于一个m*n的矩阵M( 1 = < m < = 10000,1 = < n < = 10000 ),它的转置矩阵T是一个n*m的矩阵,且T( i , j )=M( j , i )。显然,一个稀疏矩阵的转置仍然是稀疏矩阵。你的任务是对给定一个m*n的稀疏矩阵( m , n < = 10000 ),求该矩阵的转置矩阵并输出。矩阵M和转置后的矩阵T如下图示例所示。
   
   稀疏矩阵M                             稀疏矩阵T

Input

连续输入多组数据,每组数据的第一行是三个整数mu, nu, tu(tu <= 50),分别表示稀疏矩阵的行数、列数和矩阵中非零元素的个数,随后tu行输入稀疏矩阵的非零元素所在的行、列值和非零元素的值,同一行数据之间用空格间隔。(矩阵以行序为主序)

Output

输出转置后的稀疏矩阵的三元组顺序表表示。

Sample Input

3 5 5
1 2 14
1 5 -5
2 2 -7
3 1 36
3 4 28

Sample Output

1 3 36
2 1 14
2 2 -7
4 3 28
5 1 -5

提示:此题依旧是个水题,还是只用结构体数组即可做出,你只要想到思路就能做。

代码实现如下(g++):
#include <bits/stdc++.h>using namespace std;struct st
{int x;int y;int z;
}a[1010],t;int main()
{int i,j,mu,nu,tu;while(~scanf("%d %d %d",&mu,&nu,&tu)){for(i=0;i<tu;i++){scanf("%d %d %d",&a[i].x,&a[i].y,&a[i].z);}for(i=0;i<tu;i++){for(j=0;j<tu-i-1;j++){if(a[j].y>a[j+1].y){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}for(i=0;i<tu;i++){printf("%d %d %d\n",a[i].y,a[i].x,a[i].z);}}return 0;
}/***************************************************
Result: Accepted
Take time: 0ms
Take Memory: 196KB
****************************************************/

 

转载于:https://www.cnblogs.com/jkxsz2333/p/9498477.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253756.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux设备和驱动加载的先后顺序

Linux驱动先注册总线&#xff0c;总线上可以先挂device&#xff0c;也可以先挂driver&#xff0c;那么究竟怎么控制先后的顺序呢。 Linux系统使用两种方式去加载系统中的模块&#xff1a;动态和静态。 静态加载&#xff1a;将所有模块的程序编译到Linux内核中&#xff0c;由do_…

CMOS 图像传感器——Skipping 和 Binning 模式

在通常的CMOS读取方式中&#xff0c;由于像素读取规模的差异&#xff0c;不同的分辨率对应不同的帧率。在通道带宽固定的前提下&#xff0c;想要提高帧率就要考虑是否需要缩小视野&#xff08;外圈裁切&#xff09;。若不希望视野缩小&#xff0c;需要减少采样的分辨率。 常用的…

DAVINCI DM365-368中 linux-2.6.32的移植

http://www.360doc.com/content/12/0318/16/532901_195392228.shtml 很详细的一篇文章&#xff0c;在此感谢了&#xff01; http://www.rosoo.net/a/201001/8316.html DM系列芯片外设详细介绍

Jacoco--测试覆盖率工具

介绍JaCoCo&#xff08;Java Code Coverage&#xff09;是一种分析单元测试覆盖率的工具&#xff0c;使用它运行单元测试后&#xff0c;可以给出代码中哪些部分被单元测试测到&#xff0c;哪些部分没有没测到&#xff0c;并且给出整个项目的单元测试覆盖情况百分比&#xff0c;…

HTML 标记大全参考手册

1.文件结构 文件类型 <HTML></HTML> &#xff08;放在文档的开头与结尾&#xff09; 文件主题 <TITLE></TITLE> &#xff08;必须放在「文头」区块内&#xff09; 文头 <HEAD></HEAD> &#xff08;描述性资料&#xff0c;如「主题」&#…

APB协议学习

APB(Advanced Peripheral Bus) 1、APB的概述与特点 APB主要用于低带宽的周边外设之间的连接&#xff0c;例如UART、1284等&#xff0c;它的总线架构不像AHB支持多个主模块&#xff0c;在APB里面唯一的主模块就是APB 桥。其特性包括&#xff1a;两个时钟周期传输&#xff1b;无…

私有协议栈开发

通信协议从广义上区分&#xff0c;可以分为公有协议和私有协议。由于私有协议的灵活性&#xff0c;它往往会在某个公司或者组织内部使用&#xff0c;按需定制&#xff0c;也因为如此&#xff0c;升级起来会非常方便&#xff0c;灵活性好。绝大多数的私有协议传输层都基于TCP/IP…

制作NFS

最近学习NFS&#xff0c;用本地测试. 以下是我的测试过程 环境 ubuntu 10.4 vm 7.1 终端 ifconfig 得到 ubuntu资料 INET ADDR 192.168.0.4 BCAST 192.168.0.255 MASK 255.255.255.0 一 安装NFS $ sudo apt-get install nfs-kernel-server $ sudo apt-get install nfs…

【笔记篇】C#笔记2

返回目录&#xff1a;目录请戳这里~ C#数组 基本概念不提。。int[] a; bool[] b new bool[10]; float[] c {0.5, 57.0, 233.3, 12345.67 }; double[] d new double[/*3*/]{233.33, 1926.0817, 4396.0 }; 然后数组和指针有很大的不同。。。 Array类不会用…… 有多维数组和…

SFB 项目经验-51-某上市企业2千人Exchange 2013升级2016高可用之伤01

SFB 项目经验-51-某上市企业2千人Exchange 2013升级2016高可用之伤01&#xff08;带病撰写项目实战笔记&#xff09;问题描述&#xff1a;2000人企业使用Exchange 2013邮件服务器标准版&#xff0c;n年!1&#xff09;问题1&#xff1a;标准版仅支持5个邮箱数据库。2&#xff09…

数字图像处理——2D降噪

图像降噪处理主要分为2D&#xff08;空域&#xff09;与3D降噪&#xff08;时域/多帧&#xff09;&#xff0c;而2D降噪由于相关的实现算法丰富&#xff0c;效果各异&#xff0c;有着丰富的研究价值。理解2D降噪算法的流程&#xff0c;也对其他的增强算法有很大的帮助&#xff…

项目开发(Require + E.js)

最近在做的几个项目&#xff0c;分别用了不同的框架跟方式&#xff0c;有个H5的项目&#xff0c;用了vue框架&#xff0c; 这个项目我还没有正式加入进去&#xff0c; 等手头的这个项目完成就可以去搞vue了&#xff0c; 现在手头的这个项目是一个招聘的项目&#xff0c; 用到了…

五个常用的Linux监控脚本代码

bash中 2>&1 & 的解释 1、首先&#xff0c;bash中0&#xff0c;1&#xff0c;2三个数字分别代表STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO&#xff0c;即标准输入&#xff08;一般是键盘&#xff09;&#xff0c;标准输出&#xff08;一般是显示屏&#xff0c;准…

AHB协议学习

1. 简介 AHB(Advanced High Performance Bus)总线规范是AMBA(Advanced Microcontroller Bus Architecture) V2.0总线规范的一部分&#xff0c;AMBA总线规范是ARM公司提出的总线规范&#xff0c;被大多数SoC设计采用&#xff0c;它规定了AHB (Advanced High-performance Bus)、A…

jquery lazy load

LazyLoad是一个Js编写的Jq插件,它可以延迟加载页面中的图片,在浏览器可视范围中的图片会被加载。如何使用&#xff1a;LazyLoad依赖于Jquery&#xff0c;在html的结尾处 ,就是在</body>前。<script type"text/javascript" src"jquery.js"><…

linux内核中的循环缓冲区

Linux内核中的循环缓冲区&#xff08;circular buffer&#xff09;为解决某些特殊情况下的竞争问题提供了一种免锁的方法。这种特殊的情况就是当生产者和消费者都只有一个&#xff0c;而在其它情况下使用它也是必须要加锁的。 循环缓冲区定义在include/linux/kfifo.h中&#xf…

js的规范写法ES5(自己以后按照这样写)

1、引号的使用&#xff0c;单引号 优先&#xff08;如果不是引号嵌套&#xff0c;不要使用双引号&#xff09; 正常情况&#xff1a;console.log(hello there) 双引号转码&#xff1a; $("<div classbox>") 2、空格的使用问题&#xff1a;&#xff08…

删除本地git的远程分支和远程删除git服务器的分支

在项目中使用git管理代码后&#xff0c;有些时候会创建很多不同名称的分支&#xff0c;以此区分各个分支代码功能。 而随着代码的合并&#xff0c;以前的分支就可能不再需要保存了&#xff0c;所以就要对没有用的分支进行删除&#xff0c;包括紧急回滚时从中抽取某一个版本记录…

数字图像处理——引导滤波

一、概述 引导滤波是由何恺明等人于2010年发表在ECCV的文章《Guided Image Filtering》中提出的&#xff0c;后续于2013年发表。引导过滤器根据局部线性模型原理&#xff0c;通过考虑引导图像的内容来计算过滤输出&#xff0c;引导图像可以是输入图像本身或另一个不同的图像。具…

Ubuntu 18.04换国内源

2019独角兽企业重金招聘Python工程师标准>>> 参考文档&#xff1a; https://blog.csdn.net/zhangjiahao14/article/details/80554616 https://blog.csdn.net/xiangxianghehe/article/details/80112149 1.复制源文件备份&#xff0c;以防万一 我们要修改的文件是sour…