36th成都区域赛网络赛 hdoj4039 The Social Network(建图+字符串处理)
这题是某年成都区域赛网络赛的一题。
这题思路非常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(建图+字符串处理)的更多相关文章
- ACM总结——2017区域赛网络赛总结
从省赛回来至今4周,每周周末都在打网络赛,每次都是划水,总结下自己弱弱的ACM吧!划水水~~ 首先是新疆赛区,基本上都是图论相关的东西,全靠队友,自己翻水水,实力躺了5道. 然后是沈阳赛区,终于有点贡 ...
- 2019 西电ACM校赛网络赛 题解
今年题目难度有较大提升,总体与往年类似,数学题居多.以下为我通过的部分题解. 赛题链接:http://acm.xidian.edu.cn/contest.php?cid=1053 A - 上帝视角 我 ...
- 第八届河南省赛C.最少换乘(最短路建图)
C.最少换乘 Time Limit: 2 Sec Memory Limit: 128 MB Submit: 94 Solved: 25 [Submit][Status][Web Board] De ...
- 2018ICPC徐州区域赛网络赛G(VECTOR+SET,模拟)
#include<bits/stdc++.h>using namespace std;int x,y;vector<int>v1,v2;long long solve(vect ...
- 2018ICPC徐州区域赛网络赛B(逆序枚举或者正序深度搜索)
#include<bits/stdc++.h>using namespace std;int n,m,k,l;int x[1007],y[1007],z[1007];int dp[1007 ...
- Fire Air(华科校赛 网络赛)
题目 原题链接:https://www.nowcoder.com/acm/contest/106/L 在100000 * 10000的空地上,有n个时间点,每个时间点会在(xi,yi)上种一棵树. 定 ...
- Newnode's NOI(P?)模拟赛 第三题 (主席树优化建图 + tarjan)
题目/题解戳这里 这道题题目保证a,b,ca,b,ca,b,c各是一个排列-mdzz考场上想到正解但是没看到是排列,相等的情况想了半天-然后写了暴力60分走人- 由于两两间关系一定,那么就是一个竞赛图 ...
- 4.15 省选模拟赛 编码 trie树 前缀和优化建图 2-sat
好题 np. 对于20分 显然可以爆搜. 对于50分 可以发现每个字符串上的问号要么是0,要么是1.考虑枚举一个字符串当前是0还是1 这会和其他字符串产生矛盾. 所以容易 发现这是一个2-sat问题. ...
- poj 1144 Network 【求一个网络的割点的个数 矩阵建图+模板应用】
题目地址:http://poj.org/problem?id=1144 题目:输入一个n,代表有n个节点(如果n==0就结束程序运行). 在当下n的这一组数据,可能会有若干行数据,每行先输入一个节点a ...
随机推荐
- 阿里云OSS存储开发(一)
Step 1. 初始化一个OSSClient OSSClient是与OSS服务交互的客户端,SDK的OSS操作都是通过OSSClient完成的. 下面代码新建了一个OSSClient: using A ...
- JavaScript--对象-检查一个对象是否是数组
<!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...
- CAS 4.0 配置开发手册(转)
转:http://blog.csdn.net/ahpo/article/details/46412859 1 下载 地址http://downloads.jasig.org/ cas-serve ...
- 用JAVA给JSON进行排版
之前听到朋友的面试题,是如何对JSON进行排版,于是就写了一个Demo,觉得挺有意思的,就贴出来了. 这个就是记录缩进来输出,大家也可以尝试一下其他更好算法来进行输出. 功能:可以把一行的JSON字符 ...
- equals和hashcode
java当中所有的类都继承于Object这个基类,在object中的基类定义了一个equals方法,public boolean equals(Object obj) { return (th ...
- 初涉JavaScript模式 (7) : 原型模式 【三】
组合使用构造函数模式和原型模式 上篇,我们提到了原型模式的缺点,就是每个实例不能拥有自己的属性,因为纯原型模式所有的属性都是公开给每个实例的,故我们可以组合使用构造函数模式和原型模式.构造函数用来定义 ...
- Date.prototype.format,js下的时间格式处理函数
该方法在date的原型中扩展了format方法,使其可以方便的格式化日期格式输出. Date.prototype.format =function(format) { var o = { , //mo ...
- 请给出异步加载js方案
请给出异步加载js方案,不少于两种 默认情况javascript是同步加载的,也就是javascript的加载时阻塞的,后面的元素要等待javascript加载完毕后才能进行再加载,对于一些意义不是很 ...
- windows下apache配置ssl(https)服务器
SSl是为Http传输提供安全的协议,通过证书认证来确保客户端和网站服务器之间的数据是安全, 可以通过apache自带的openssl进行配置: 步骤如下: 1.安装有openssl模板的apache ...
- select options常用操作
1.判断select选项中 是否存在Value="value"的option元素 function jsSelectIsExitItem(objSelect,objItemValu ...