SDUT 3347 数据结构实验之数组三:快速转置
数据结构实验之数组三:快速转置
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
输出转置后的稀疏矩阵的三元组顺序表表示。
Example Input
3 5 5 1 2 14 1 5 -5 2 2 -7 3 1 36 3 4 28
Example Output
1 3 36 2 1 14 2 2 -7 4 3 28 5 1 -5
DQE:
#include <iostream>
#include <cstdio>
using namespace std;
struct TS
{
];
int nu,mu,tu;
};
void zz(TS f,TS &z)
{
z.tu=f.tu;z.nu=f.mu;z.mu=f.nu; //jscpy
]={},cpot[]={};
int i;
;i<=f.tu;i++)
{
num[f.data[i].j]++;
}
cpot[]=;
;i<=z.nu;i++)
{
cpot[i]=cpot[i-]+num[i-];
}
;i<=z.tu;i++)
{
int zi=f.data[i].j;
int zn=cpot[zi];
z.data[zn].e=f.data[i].e;
z.data[zn].i=f.data[i].j;
z.data[zn].j=f.data[i].i;
cpot[zi]++;
}
}
int main()
{
TS f,z;
while(scanf("%d %d %d",&f.nu,&f.mu,&f.tu)!=EOF)
{
int i;
;i<=f.tu;i++) //in
{
scanf("%d %d %d",&f.data[i].i,&f.data[i].j,&f.data[i].e);
}
zz(f,z);
;i<=z.tu;i++) //out
{
printf("%d %d %d\n",z.data[i].i,z.data[i].j,z.data[i].e);
}
}
;
}
/***************************************************
User name: ***
Result: Accepted
Take time: 0ms
Take Memory: 464KB
Submit time: 2016-10-12 16:19:44
****************************************************/
SDUT 3347 数据结构实验之数组三:快速转置的更多相关文章
- SDUT-3347_数据结构实验之数组三:快速转置
数据结构实验之数组三:快速转置 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 转置运算是一种最简单的矩阵运算,对于一个 ...
- SDUT OJ 数据结构实验之链表三:链表的逆置
数据结构实验之链表三:链表的逆置 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descri ...
- SDUT 3311 数据结构实验之串三:KMP应用
数据结构实验之串三:KMP应用 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 有n个小朋友 ...
- SDUT OJ 数据结构实验之二叉树三:统计叶子数
数据结构实验之二叉树三:统计叶子数 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descr ...
- SDUT OJ 数据结构实验之串三:KMP应用
数据结构实验之串三:KMP应用 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descrip ...
- SDUT OJ 数据结构实验之排序三:bucket sort
数据结构实验之排序三:bucket sort Time Limit: 250 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem D ...
- SDUT 3400 数据结构实验之排序三:bucket sort
数据结构实验之排序三:bucket sort Time Limit: 150MS Memory Limit: 65536KB Submit Statistic Problem Description ...
- SDUT 3375 数据结构实验之查找三:树的种类统计
数据结构实验之查找三:树的种类统计 Time Limit: 400MS Memory Limit: 65536KB Submit Statistic Problem Description 随着卫星成 ...
- SDUT 3342 数据结构实验之二叉树三:统计叶子数
数据结构实验之二叉树三:统计叶子数 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 已知二叉 ...
随机推荐
- bzoj2764 基因补全
Description 在生物课中我们学过,碱基组成了DNA(脱氧核糖核酸),他们分别可以用大写字母A,C,T,G表示,其中A总与T配对,C总与G配对.两个碱基序列能相互匹配,当且仅当它们等长,并且任 ...
- 战胜忧虑<3>——学会接受不可避免的事实。
学会接受不可避免的事实. 对必然的事情愉快地承受,就像杨柳承受风雨,水接受一切容器,我们也要承受一切事实. 故事: 在美国庆祝陆军在北非获胜的那一天,我接到国防部送来的一封电报,我的侄儿——我最爱的一 ...
- 最全的Android源码目录结构详解
Android 2.1|-- Makefile|-- bionic (bionic C库)|-- bootable (启动引 ...
- 四层LB和七层LB
总结: 基于MAC地址玩的是二层(虚拟MAC地址接收请求,然后再分配到真实的MAC地址), 基于IP地址玩的是三层(虚拟IP地址接收请求,然后再分配到真实的IP地址), 基于IP地 ...
- 队列(Queue)--环形队列、优先队列和双向队列
1. 队列概述 队列和堆栈都是有序列表,属于抽象型数据类型(ADT),所有加入和删除的动作都发生在不同的两端,并符合First In, First Out(先进先出)的特性. 特性: ·FIFO ·拥 ...
- CE_现金银行总行分行设定详解(案例)
2014-07-14 Created By BaoXinjian
- php 预定义接口
Traversable Traversable { } 作用:检测一个类是否可以使用 foreach 进行遍历的接口. php代码中不能用.只有内部的PHP类(用C写的类)才可以直接实现Travers ...
- linux命令(2):df 磁盘占用
在这里先讲讲linux命令df的资料: df 命令: linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况.可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信 ...
- 基于jquery的表单校验插件 - rjboy的Validform使用体验
官方地址:http://validform.rjboy.cn/document.html 引用js后再加上以下css就可以使用了 .Validform_checktip{ margin-left:8p ...
- 【Java】图片高质量缩放类
package com.test; import com.sun.image.codec.jpeg.JPEGImageEncoder; import com.sun.image.codec.jpeg. ...