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

这题思路非常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. How JSP work.

    A JSP page exists in three forms: JSP source code: consists of a mix of HTML template code. Java lan ...

  2. 七.生成n位随机字符串

    --1.借助newid() go --创建视图(因为在函数中无法直接使用newid()) create view vnewid as select newid() N'MacoId'; go --创建 ...

  3. 关于User&nbsp;Defined&nbsp;Runtime&nbsp;Attributes的小技巧

    在用XIB里自定制view,button,label...的一些属性时,例如边框宽度,边框颜色等,如下图:

  4. C#设置IP地址,启用禁用适配器

    界面效果图如下: 报表界面 说下关键代码 需要开启 Windows Management Instrumentation服务(默认已经开启),在程序中需要增加 Management引用. 主要有Net ...

  5. Git 远程仓库的管理和使用

    要参与任何一个 Git 项目的协作,必须要了解该如何管理远程仓库.远程仓库是指托管在网络上的项目仓库,可能会有好多个,其中有些你只能读,另外有些可以写.同他人协作开发某 个项目时,需要管理这些远程仓库 ...

  6. ucenter 通信原理

    1.用户登录discuz,通过logging.php文件中的函数uc_user_login对post过来的数据进行验证,也就是对username和password进行验证. 2.如果验证成功,将调用位 ...

  7. 【行为型】Memento模式

    备忘录模式顾名思义就是一种能有备忘作用的设计模式,其目的是在对象外部保存其在某一时刻的状态信息,并且在任何需要的时候,都可以通过备忘录中保存的状态数据恢复对象在当时情形下的状态. 备忘录模式旨在对象的 ...

  8. Python新手学习基础之函数-可变参数**

    可变参数( ** ) 讲好了一颗*,那如果函数的最后一个参数带有 ** 前缀: 所有正常参数之外的其他的关键字参数都将被放置在一个字典中传递给函数. 要好好理解* 和 ** 两种可变参数哦~ 看个** ...

  9. [转] .NET 3.5中MSChart组件的ImageLocation属性含义

    在.NET程序/网站中如果要生成统计图表/图形,以前可以采用OWC(Office Web Components),如OfficeXP组件OWC10.Office2003组件OWC11.OWC采用COM ...

  10. WINDOWS自启动程序的10大隐身之所

    Windows启动时通常会有一大堆程序自动启动.不要以为管好了“开始→程序→启动”菜单就万事大吉,实际上,在Windows XP/2K中,让Windows自动启动程序的办法很多,下文告诉你最重要的两个 ...