清点代码库

这里我们把问题简化一下:首先假设两个功能模块如果接受同样的输入,总是给出同样的输出,则它们就是功能重复的;其次我们把每个模块的输出都简化为一个整数(在 int 范围内)。于是我们可以设计一系列输入,检查所有功能模块的对应输出,从而查出功能重复的代码。你的任务就是设计并实现这个简化问题的解决方案。

输入格式:
输入在第一行中给出 2 个正整数,依次为 N ( ≤ 1 0 4 ) 和 M ( ≤ 1 0 2 ) N(≤10^ 4 )和 M(≤10^ 2 )N(≤10 
4
 )和M(≤10 
2
 ),对应功能模块的个数和系列测试输入的个数。

随后 N 行,每行给出一个功能模块的 M 个对应输出,数字间以空格分隔。

输出格式:
首先在第一行输出不同功能的个数 K。随后 K 行,每行给出具有这个功能的模块的个数,以及这个功能的对应输出。数字间以 1 个空格分隔,行首尾不得有多余空格。输出首先按模块个数非递增顺序,如果有并列,则按输出序列的递增序给出。

注:所谓数列 { A 1 , . . . , A M A_1 , ..., A_MA 
1
​
 ,...,A 
M
​
  } 比 { B 1 , . . . , B M B_1 , ..., B_MB 
1
​
 ,...,B 
M
​
  } 大,是指存在 1 ≤ i < M 1≤i<M1≤i<M,使得 A 1 = B 1 , . . . , A i = B i A_1 =B_1 ,...,A _i =B_iA 
1=B 
1
​
 ,...,A 
i
​
 =B 
i
​
  成立,且 A i + 1 > B i + 1 A_i+1 >B_i+1A 
i
​
 +1>B 
i
​
 +1 。

输入样例:
7 3
35 28 74
-1 -1 22
28 74 35
-1 -1 22
11 66 0
35 28 74
35 28 74
输出样例:
4
3 35 28 74
2 -1 -1 22
1 11 66 0
1 28 74 35
————————————————
版权声明:本文为CSDN博主「Eternity_GQM」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/eternity_memory/article/details/123548686
View Problem
map<vector<int>,int> mp;
struct dian{
    int val;
    vector<int>p;
    bool operator <(const dian &t)const
    {
        if(val==t.val) return p<t.p;
        return val>t.val;
    }
}node[M];
View Code

map,结构体的强大应用。 map里面存 vector, sort里面直接排序vector。

posted @ 2022-04-16 16:39  VxiaohuanV  阅读(29)  评论(0编辑  收藏  举报