题目链接
这道题stl解决
#include<bits/stdc++.h>
using namespace std;
map<vector<int>,int> mp;
set<pair<int,vector<int>>> s;//在默认排序中,pair首先对first进行升序排序;
int main()
{
int n,m,t;
cin>>n>>m;
vector<int> v;
for(int i=0;i<n;i++){
v.clear();
for(int j=0;j<m;j++){
cin>>t;
v.push_back(t);
}
if(!mp.count(v)) mp[v]=1; //这是将数据不重复的存里面;
else mp[v]++;
}
//cout<<mp.size()<<endl;
for(auto i:mp){ //关键字auto自动为i分配数据类型;//map中也有first 和 second 这个与pair类型是一样的;
s.insert({-i.second,i.first});//注意pair如何存储;
}
cout<<s.size()<<endl;
for(auto i:s){
cout<<-i.first;
for(int j=0;j<m;j++)
cout<<" "<<i.second[j]; //这里不要搞混;
cout<<endl;
}
return 0;
}