思路:用map将每个字符串与一个数字进行对应,然后暴力统计就好了

#include<cstring>
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<map>
#include<vector>
#include<string>
#define Maxn 2010
using namespace std;
int fr[Maxn][Maxn],mul[Maxn][Maxn],Max[Maxn];
char str[Maxn][];
map<string,int> g;
vector<int> head[Maxn*];
vector<int> ans[Maxn*];
int cmp(int a,int b)
{
return strcmp(str[a],str[b])<;
}
int main()
{
int t,n,q,i,j,k,Case=,u,v;
scanf("%d",&t);
char s1[],s2[];
while(t--)
{
memset(fr,,sizeof(fr));
memset(mul,,sizeof(mul));
memset(Max,,sizeof(Max));
g.clear();
scanf("%d%d",&n,&q);
for(i=;i<=*n;i++)
head[i].clear(),ans[i].clear();
int cnt=;
for(i=;i<=n;i++)
{
scanf("%s %s",&s1,&s2);
if(!g[s1]){
g[s1]=++cnt;
strcpy(str[cnt],s1);
}
if(!g[s2]){
g[s2]=++cnt;
strcpy(str[cnt],s2);
}
u=g[s1],v=g[s2];
head[u].push_back(v);
head[v].push_back(u);
fr[u][v]=fr[v][u]=;
}
int sz;
for(i=;i<=cnt;i++){
sz=head[i].size();
for(j=;j<sz;j++){
u=head[i][j];
int ss=head[u].size();
for(k=;k<ss;k++){
v=head[u][k];
if(!fr[i][v]&&i!=v)
mul[i][v]++,Max[i]=max(Max[i],mul[i][v]);
}
}
}
for(i=;i<=cnt;i++){
for(j=;j<=cnt;j++){
if(j==i) continue;
if(mul[i][j]==Max[i]&&Max[i])
ans[i].push_back(j);
}
sort(ans[i].begin(),ans[i].end(),cmp);
}
printf("Case %d:\n",++Case);
//cout<<q<<endl;
for(i=;i<=q;i++){
scanf("%s",s1);
u=g[s1];
if(ans[u].empty())
printf("-");
else{
sz=ans[u].size();
v=ans[u][];
printf("%s",str[v]);
for(j=;j<sz;j++){
v=ans[u][j];
printf(" %s",str[v]);
}
}
printf("\n");
}
}
return ;
}

hdu 4039 暴力的更多相关文章

  1. hdu 4039 The Social Network

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4039 题目分类:字符串+bfs 题意:给一个人际关系图,根据关系图,给一个人推荐一个人认识 题目分析: ...

  2. HDU 6351暴力枚举 6354计算几何

    Beautiful Now Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)T ...

  3. HDU 5944 暴力

    Fxx and string Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)T ...

  4. hdu 4952 暴力

    http://acm.hdu.edu.cn/showproblem.php?pid=4952 给定x,k,i从1到k,每次a[i]要是i的倍数,并且a[i]大于等于a[i-1],x为a0 递推到下一个 ...

  5. hdu 4708(暴力+找规律)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4708 思路:由于N不大,并且我们可以发现通过旋转得到的4个对角线的点的位置关系,以及所要旋转的最小步数 ...

  6. HDU - 6183 暴力,线段树动态开点,cdq分治

    B - Color itHDU - 6183 题目大意:有三种操作,0是清空所有点,1是给点(x,y)涂上颜色c,2是查询满足1<=a<=x,y1<=b<=y2的(a,b)点一 ...

  7. HDU 5386 暴力

    题目 也是个坑题,可惜没有发现这是个水题,被矩阵的气势吓住了,其实后来做出来的人挺多,就应该想到没那么难了.(两个队友陷入DP无法自拔,没有想换题的打算). 题意:告诉初始矩阵,目的矩阵,告诉n个步骤 ...

  8. hdu 4039 2011成都赛区网络赛I ***

    两层搜索,直接for循环就行了,还要注意不能是自己的朋友 #include<cstdio> #include<iostream> #include<algorithm&g ...

  9. hdu 4007 暴力or线段树 ***

    尼玛,INF不能定义太大,找标程对拍了好久 #include<cstdio> #include<iostream> #include<algorithm> #inc ...

随机推荐

  1. Regular Expression--Good parts

    匹配URL的正则表达式 <!doctype html><html lang="en"><head> <meta charset=" ...

  2. 守护进程和inetd超级服务器

    守护进程: 1 系统启动时,由系统初始化脚本启动.一般在/etc目录下,或者以/etc/rc开头的目录 2 许多网络服务器由inetd超级服务器启动 3 cron守护进程按规则定期执行一些程序 4 用 ...

  3. 关于request.getsession(true|false)

    request.getSession(true):若存在会话则返回该会话,否则新建一个会话.request.getSession(false):若存在会话则返回该会话,否则返回NULL

  4. PL/pgSQL的anyelement例子

    http://www.postgresonline.com/journal/archives/239-The-wonders-of-Any-Element.html 定义函数 pgsql=# CREA ...

  5. CSS实现标题右侧“更多”

    HTML < h2>< a h ref="#" >标题< /a> < span>更多…< /span> < /h2 ...

  6. C# DateTime 日期加1天 减一天 加一月 减一月 等方法

    //今天 DateTime.Now.Date.ToShortDateString(); //昨天,就是今天的日期减一 DateTime.Now.AddDays(-).ToShortDateString ...

  7. Codeforces Round #308 (Div. 2) C. Vanya and Scales dfs

    C. Vanya and Scales Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/552/p ...

  8. java建立二叉树,递归/非递归先序遍历,递归/非递归中序遍历,层次遍历

    import java.util.LinkedList; import java.util.Scanner; import java.util.Stack; //structure of binary ...

  9. Handler具体解释

    首先下载Android api 进行查阅 ,API下载地址:http://pan.baidu.com/s/1i33dTGT 以下的描写叙述假设那里错了,请大家吐槽,我也是第一次学习,共同进步 Hand ...

  10. Swift 自己主动引用计数机制ARC

    Swift 使用自己主动引用计数(ARC)这一机制来跟踪和管理你的应用程序的内存.通常情况下,Swift 的内存管理机制会一直起着作用,你无须自己来考虑内存的管理.ARC 会在类的实例不再被使用时,自 ...