朋友
来源:互联网 发布:苹果手机网络加速软件 编辑:程序博客网 时间:2024/05/01 13:48
题目描述
经过六年的努力,小明终于被一所知名中学录取。优秀的小明总是对一些奇奇怪怪的事情感兴趣,这次他想知道谁在这所新学校拥有的朋友最多,由于大家都才刚报到,所以小明只知道大家两两之间是否是朋友关系。
输入
输入文件friend.in的第一行有两个整数n和m,n表示总人数,m表示总关系数。
接下来n行,每行有2个以空格隔开的整数a和b,表示a和b是朋友,a和b均为1到n之间的整数。不会给出重复的朋友关系。
输出
输出文件friend.out中仅有一行,表示朋友数最多的人所拥有的朋友,每两个整数之间用空格隔开,按照字典序从小到大输出。如果存在多个人朋友数都是最多的情况,请输出字典序最小的那人的答案,具体见样例。
样例输入
3 3
1 2
2 3
1 3
样例输出
2 3
数据范围限制
50%的数据,1 <= n <= 10
80%的数据,1 <= n <= 1000
100%的数据,1 <= n <= 10000,m <= 500000
提示
1、2、3均拥有2个朋友,因此输出字典序较小的1的朋友即可。
1的朋友为2和3,按照字典序从小到大输出,数字之间用空格隔开。
TJ
直接暴力……
BC
var n,m,i,x,y:longint; p:array[1..10000,1..10000]of boolean; nl:array[1..10000,1..2]of int64;procedure kp(l,r:longint);var i,j,mid,mid1:longint; t:array[1..2]of int64;begin i:=l; j:=r; mid:=nl[(l+r)div 2,2]; mid1:=nl[(l+r)div 2,1]; repeat while (nl[i,2]>mid)or(nl[i,2]=mid)and(nl[i,1]<mid1) do inc(i); while (nl[j,2]<mid)or(nl[j,2]=mid)and(nl[j,1]>mid1) do dec(j); if i<=j then begin t:=nl[i]; nl[i]:=nl[j]; nl[j]:=t; inc(i); dec(j); end; until i>j; if l<j then kp(l,j); if i<r then kp(i,r);end;begin assign(input,'friend.in');reset(input); assign(output,'friend.out');rewrite(output); readln(n,m); for i:=1 to m do begin readln(x,y); p[x,y]:=true; p[y,x]:=true; inc(nl[x,2]); inc(nl[y,2]); end; for i:=1 to n do nl[i,1]:=i; kp(1,n); for i:=1 to n do if p[nl[1,1],i] then write(i,' '); writeln; close(input);close(output);end.
阅读全文
1 0
- 朋友
- 朋友
- 朋友
- 朋友
- 朋友?
- 朋友
- 朋友
- 朋友
- 朋友
- 朋友
- 朋友
- 朋友
- 朋友
- 朋友
- 朋友
- 朋友
- 朋友
- 朋友
- httpclient4.5 结合 讯代理 实现IP代理
- Java实现两个复数的加法运算
- mysql 常用函数
- 【C++】C++语法问题
- JavaEE技术——JSP
- 朋友
- Torch7.0安装
- Ajax异步回调函数(callback)
- hdu 6085 Rikka with Candies(bitset容器)
- poj1847Tram的dijkstra解法
- 函数表达式---递归
- activiti xml String方式部署
- 解决从jenkins打开robot framework报告会提示‘Opening Robot Framework log failed ’的问题
- HMM终极版