期末程序复习之串和矩阵压缩的小测试

1:利用三元组完成矩阵加法

【问题描述】

以三元组表存贮的稀疏矩阵A,B ,两个矩阵的行数为m,列数为n,非零元个数分别为num1 和num2。试完成程序,完成A+B。

【输入形式】

第一行输入稀疏矩阵A,B的行数m和列数n(假设两个矩阵行数列数相同),

第二行输入稀疏矩阵A,B的非零元个数num1和num2;

以下各排分别输入对应的三元组,头num1组为A中的元素,接下来num2组为B的元素,同一个矩阵的元素按照行递增排列,第一行规定为1,同一行的元素按照列递增排列,第一列规定为1。

【输出形式】

为相应的三元组,以回车分开,如果结果全部为0,则输出 -1 -1 -1

【样例输入】

3 3

2 4

1 1 5

2 3 1

1 1 5

1 2 6

3 2 1

2 1 1

【样例输出】

1 1 10

1 2 6

2 1 1

2 3 1

3 2 1

【样例说明】

对于上面的运行范例,相当于下图的矩阵相加。
期末程序复习之串和矩阵压缩的小测试_第1张图片
【评分标准】

题目思路

在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵;与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵。定义非零元素的总数比上矩阵所有元素的总数为矩阵的稠密度。

模拟题意即可

2:kmp计算一个字符串是由多少个重复的子串构成的

【问题描述】

计算一个字符串是由多少个重复的子串构成的。

提示:字符串长度为len,kmp算法求出next数组0~len的值,要包含len的next值。

如ababab的next值是-1 0 0 1 2 3 4。Len%(len-Next[len])==0 求出 Len/(len-Next[len])的值3即为解。

【输入形式】

【输出形式】

【样例输入】

abcabc

【样例输出】

2

【样例输入】

aaaa

【样例输出】

4

【样例说明】abcabc由abc重复两次构成
【评分标准】

题目思路

一个kmp的题目。。。kmp一直不太会随便水一下应该就能过了

你可能感兴趣的:(期末)