首页 > 学院 > 开发设计 > 正文

数据结构实验之数组二:稀疏矩阵

2019-11-14 12:38:14
字体:
来源:转载
供稿:网友

sdut原题链接

数据结构实验之数组二:稀疏矩阵 Time Limit: 5MS Memory Limit: 1000KB

PRoblem Description 对于一个n*n的稀疏矩阵M(1 <= n <= 1000),采用三元组顺序表存储表示,查找从键盘输入的某个非零数据是否在稀疏矩阵中,如果存在则输出OK,不存在则输出ERROR。稀疏矩阵示例图如下: 这里写图片描述

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

Output 输出查询结果,查找成功输出OK,找不到输出ERROR。

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

Example Output OK

Hint

Author xam

以下为accepted代码

#include <stdio.h>#include <stdlib.h>#define MAXN 1004struct node{ int r; int l; int date;};struct node1{ int mu; int nu; int tu; struct node ans[MAXN];};int main(){ int i, x, flag; struct node1 *p; p = (struct node1 *)malloc(sizeof(struct node1)); while(scanf("%d %d %d", &p->mu, &p->nu, &p->tu) != EOF) { flag = 0; for(i = 0; i < p->tu; i++) { scanf("%d %d %d", &p->ans[i].r, &p->ans[i].l, &p->ans[i].date); } scanf("%d", &x); for(i = 0; i < p->tu; i++) { if(p->ans[i].date == x) { flag = 1; break; } } if(flag) printf("OK/n"); else printf("ERROR/n"); } return 0;}/***************************************************User name: jk160630Result: AcceptedTake time: 0msTake Memory: 108KBSubmit time: 2017-02-03 19:53:01****************************************************/
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表