这题是某年成都区域赛网络赛的一题。

这题思路非常easy,可是从时间上考虑,不妨不要用矩阵存储,我用的链式前向星。

採用线上查询。利用map对字符串编号,由于非常方便。要推荐的朋友,事实上就是朋友的朋友(这里指的是直接朋友,图中即指有直接边相连的)。

所以在寻找时,仅仅须要查找朋友的朋友,并计数。

注意:在输出时不能有对于的空格。

附代码:

#include<iostream>
using namespace std;
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<map>
#include<algorithm> int n,m;
char s11[20],s22[20];
string g[20100],l[20100];
int next[201000],head[2010],key[201000];
int num; void add(int u,int v)
{
key[num]=v;
next[num]=head[u];
head[u]=num++;
} int main()
{
int T,pp=0;
scanf("%d",&T);
while (T--)
{
map<string,int> hash;
int n,m,i,j,k;
string s1,s2;
int cnt=0; num=0; scanf("%d%d",&n,&m);
memset(head,-1,sizeof(head)); for (i=0;i<n;++i)
{
scanf("%s%s",s11,s22);
s1=string(s11);
s2=string(s22);
if (hash[s1]==0)
hash[s1]=++cnt,l[cnt]=s1;
if (hash[s2]==0)
hash[s2]=++cnt,l[cnt]=s2; add(hash[s1],hash[s2]);
add(hash[s2],hash[s1]);
}
printf("Case %d:\n",++pp); for (i=0;i<m;++i)
{
scanf("%s",s11);
s1=string(s11);
int p=hash[s1];
int f[20100],flag[20010];
memset(f,0,sizeof(f));
memset(flag,0,sizeof(flag)); for (k=head[p];k!=-1;k=next[k]) flag[key[k]]=-1; for (k=head[p];k!=-1;k=next[k])
if (key[k]!=p)
{
for (j=head[key[k]];j!=-1;j=next[j])
if (key[j]!=key[k] && key[j]!=p && flag[key[j]]==0)
{
f[key[j]]++;
}
}
int Max=-1;
for (k=1;k<=cnt;++k)
{
Max=max(Max,f[k]);
// printf("%d\n",f[k]);
}
if (Max==0)
{
printf("-\n");
continue;
}
int q=0;
for (k=1;k<=cnt;++k)
if (Max==f[k])
{
g[q++]=l[k];
}
sort(g,g+q);
for (k=0;k<q-1;++k) cout << g[k] << " ";
cout << g[q-1];
cout << endl;
} } return 0;
}

36th成都区域赛网络赛 hdoj4039 The Social Network(建图+字符串处理)的更多相关文章

  1. ACM总结——2017区域赛网络赛总结

    从省赛回来至今4周,每周周末都在打网络赛,每次都是划水,总结下自己弱弱的ACM吧!划水水~~ 首先是新疆赛区,基本上都是图论相关的东西,全靠队友,自己翻水水,实力躺了5道. 然后是沈阳赛区,终于有点贡 ...

  2. 2019 西电ACM校赛网络赛 题解

    今年题目难度有较大提升,总体与往年类似,数学题居多.以下为我通过的部分题解. 赛题链接:http://acm.xidian.edu.cn/contest.php?cid=1053 A - 上帝视角 我 ...

  3. 第八届河南省赛C.最少换乘(最短路建图)

    C.最少换乘 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 94  Solved: 25 [Submit][Status][Web Board] De ...

  4. 2018ICPC徐州区域赛网络赛G(VECTOR+SET,模拟)

    #include<bits/stdc++.h>using namespace std;int x,y;vector<int>v1,v2;long long solve(vect ...

  5. 2018ICPC徐州区域赛网络赛B(逆序枚举或者正序深度搜索)

    #include<bits/stdc++.h>using namespace std;int n,m,k,l;int x[1007],y[1007],z[1007];int dp[1007 ...

  6. Fire Air(华科校赛 网络赛)

    题目 原题链接:https://www.nowcoder.com/acm/contest/106/L 在100000 * 10000的空地上,有n个时间点,每个时间点会在(xi,yi)上种一棵树. 定 ...

  7. Newnode's NOI(P?)模拟赛 第三题 (主席树优化建图 + tarjan)

    题目/题解戳这里 这道题题目保证a,b,ca,b,ca,b,c各是一个排列-mdzz考场上想到正解但是没看到是排列,相等的情况想了半天-然后写了暴力60分走人- 由于两两间关系一定,那么就是一个竞赛图 ...

  8. 4.15 省选模拟赛 编码 trie树 前缀和优化建图 2-sat

    好题 np. 对于20分 显然可以爆搜. 对于50分 可以发现每个字符串上的问号要么是0,要么是1.考虑枚举一个字符串当前是0还是1 这会和其他字符串产生矛盾. 所以容易 发现这是一个2-sat问题. ...

  9. poj 1144 Network 【求一个网络的割点的个数 矩阵建图+模板应用】

    题目地址:http://poj.org/problem?id=1144 题目:输入一个n,代表有n个节点(如果n==0就结束程序运行). 在当下n的这一组数据,可能会有若干行数据,每行先输入一个节点a ...

随机推荐

  1. ExcelApplication 另存Excel的SaveAs函数

    procedure SaveAs(const Filename: WideString; FileFormat: OleVariant; Password: OleVariant; WriteResP ...

  2. protocol buffer使用简介

    之前在工作中用到了protocol buffer(此处简称PB)(主要对数据进行序列化与反序列化,方便网络传输中的编解码),之后发现这是一个好东西,在此稍微记录下该工具如何使用,方便以后查阅 官网地址 ...

  3. webservice调用接口,接口返回数组类型

    1. 其中sendSyncMsg1接口是方法名,Vector实现了List接口,xml是sendSyncMsg1的方法形参 Service service = new Service(); Call ...

  4. Data Types

    原地址: Home / Database / Oracle Database Online Documentation 11g Release 2 (11.2) / Database Administ ...

  5. 重新开始学习javase_集合_Set

    一,Set之HashSet(转:http://blog.csdn.net/zheng0518/article/details/42197337) 1.    HashSet概述: HashSet实现S ...

  6. Qt零基础教程(四)QWidget详解(3):QWidget的几何结构

    Qt零基础教程(四)  QWidget详解(3):QWidget的几何结构 这篇文章里面分析了QWidget中常用的几种几何结构 下图是Qt提供的分析QWidget几何结构的一幅图,在帮助的 Wind ...

  7. [转载]delete指针之后应该赋值NULL

    首先,C++标准规定:delete空指针是合法的,没有副作用.但是,delete p后,只是释放了指针指向的内存空间.p并不会自动被置为NULL,而且指针还在,同时还指向了之前的地址. 问题来了,对一 ...

  8. MVC之序列化

    1.AdminUserInfo.cs [Serializable]序列化类——System.SerializableAttribute 串行化是指存储和获取磁盘文件.内存或其他地方中的对象.在串行化时 ...

  9. WebService传递XML数据 C#DataSet操作XML 解析WebService返回的XML数据

    Webservice传递的数据只能是序列化的数据,典型的就是xml数据.   /// <summary>         /// 通过用户名和密码 返回下行数据         /// & ...

  10. javascript权威指南学习笔记2

    Javascript语言核心(2~12章) 第三章:类型.值.变量 1.数字: overflow(Infinity, -Infinity).underflow(+0,-0) 非数字值:它和任何值都不相 ...