关注
import java.util.*;
public class Demo02 {
public static class MyMap{
public TreeMap<Integer, HashSet<Integer>> _map;
public MyMap() {
this._map =new TreeMap<>();
}
void put(int maleNum, int femaleNum){
if(_map.containsKey(maleNum)){
_map.get(maleNum).add(femaleNum);
}else {
HashSet<Integer> tmp=new HashSet<>();
tmp.add(femaleNum);
_map.put(maleNum,tmp);
}
}
int getMaxLinkCount(){
int maxSize=0;
Set<Map.Entry<Integer, HashSet<Integer>>> entries = _map.entrySet();
for(Map.Entry<Integer, HashSet<Integer>> iter:entries){
maxSize=Math.max(iter.getValue().size(),maxSize);
}
return maxSize;
}
int getMaxLinkKey(int maxSize){
Set<Map.Entry<Integer, HashSet<Integer>>> entries = _map.entrySet();
for(Map.Entry<Integer, HashSet<Integer>> iter:entries){
if(iter.getValue().size()==maxSize){
return iter.getKey();
}
}
return -1;
}
Set<Integer> remove(int key){
Set<Integer> res=null;
if(_map.containsKey(key)){
res=_map.remove(key);
}
return res;
}
void removeValue(int key,int value){
_map.get(key).remove(value);
if(_map.get(key).size()==0){
_map.remove(key);
}
}
}
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int n=in.nextInt();
int m=in.nextInt();
MyMap maleMap=new MyMap();
MyMap femaleMap=new MyMap();
for(int i=0;i<m;i++){
int tmp1=in.nextInt();
int tmp2=in.nextInt();
maleMap.put(tmp1,tmp2);
femaleMap.put(tmp2,tmp1);
}
int count=0;
ArrayList<Integer> res=new ArrayList<>();
while (maleMap._map.size()>0){
count++;
int max1=maleMap.getMaxLinkCount();
int max2=femaleMap.getMaxLinkCount();
int max=Math.max(max1,max2);
MyMap toRemove=max1<max2?femaleMap:maleMap;
int key=toRemove.getMaxLinkKey(max);
Set<Integer> set=toRemove.remove(key);
MyMap another=max1<max2?maleMap:femaleMap;
for(int iter:set){
another.removeValue(iter,key);
}
res.add(key);
}
System.out.println(count);
Collections.sort(res);//这句话当时忘加了。。。a了9%
for(int iter:res){
System.out.println(iter);
}
}
}
查看原帖
点赞 6
牛客热帖
更多
正在热议
更多
# 实习如何「偷」产出? #
8876次浏览 112人参与
# 除了主业以外,你还有哪些其他收入? #
1792次浏览 42人参与
# 实习打杂,要跑路吗 #
5435次浏览 80人参与
# 风评不好的公司,你会去吗? #
39284次浏览 257人参与
# 校园里的破防时刻 #
3085次浏览 42人参与
# 职场新人体验 #
7121次浏览 82人参与
# 蔚来求职进展汇总 #
92420次浏览 769人参与
# 为什么那么多公司毁约 #
180590次浏览 1338人参与
# 第一份工作应该选高薪还是热爱? #
75273次浏览 727人参与
# 设计人如何选offer #
126758次浏览 746人参与
# 学历贬值真的很严重吗? #
27094次浏览 186人参与
# 一人推荐一个值得去的通信/硬件公司 #
187636次浏览 1864人参与
# 秋招结束之后的日子 #
77202次浏览 940人参与
# 你觉得早上几点上班合适? #
74003次浏览 308人参与
# 你觉得现在还能进互联网吗? #
16008次浏览 178人参与
# 秋招签约后的心态变化 #
84457次浏览 824人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
93956次浏览 696人参与
# 双非能在秋招上岸吗? #
223719次浏览 1182人参与
# 外包能不能当跳板? #
38303次浏览 229人参与
# 打工人的工作餐日常 #
55533次浏览 439人参与