hdu 4039 暴力
思路:用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 暴力的更多相关文章
- hdu 4039 The Social Network
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4039 题目分类:字符串+bfs 题意:给一个人际关系图,根据关系图,给一个人推荐一个人认识 题目分析: ...
- HDU 6351暴力枚举 6354计算几何
Beautiful Now Time Limit: 5000/2500 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)T ...
- HDU 5944 暴力
Fxx and string Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)T ...
- 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 递推到下一个 ...
- hdu 4708(暴力+找规律)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4708 思路:由于N不大,并且我们可以发现通过旋转得到的4个对角线的点的位置关系,以及所要旋转的最小步数 ...
- HDU - 6183 暴力,线段树动态开点,cdq分治
B - Color itHDU - 6183 题目大意:有三种操作,0是清空所有点,1是给点(x,y)涂上颜色c,2是查询满足1<=a<=x,y1<=b<=y2的(a,b)点一 ...
- HDU 5386 暴力
题目 也是个坑题,可惜没有发现这是个水题,被矩阵的气势吓住了,其实后来做出来的人挺多,就应该想到没那么难了.(两个队友陷入DP无法自拔,没有想换题的打算). 题意:告诉初始矩阵,目的矩阵,告诉n个步骤 ...
- hdu 4039 2011成都赛区网络赛I ***
两层搜索,直接for循环就行了,还要注意不能是自己的朋友 #include<cstdio> #include<iostream> #include<algorithm&g ...
- hdu 4007 暴力or线段树 ***
尼玛,INF不能定义太大,找标程对拍了好久 #include<cstdio> #include<iostream> #include<algorithm> #inc ...
随机推荐
- 给js function的参数设置默认值
C# 中 function func(a,b=1){//具体方法} js 中 function func(a,b){ a= arguments[0] || 10; b= arguments[1] || ...
- 转载 使用WiX Toolset创建.NET程序发布Bootstrapper(安装策略管理)(一&二)——初识WiX
转载fromVan Pan 的专栏 http://blog.csdn.net/rryqsh/article/details/8274832 http://blog.csdn.net/rryqsh/ ...
- canvas加载gif
http://ernestdelgado.com/public-tests/gifoncanvas/ <!DOCTYPE html><html><head> < ...
- 使用Machin公式计算
使用Machin公式计算,并使用百亿进制+末项位数控制,这里可算出数万位(比最简PI快80倍),源代码约40行,在本网页中. 计算公式 PI=16arctg(1/5)-4arctg(1/239),其中 ...
- Java学习笔记之继承
一.继承的基础 在Java术语中,被继承的类叫超类(superclass)或者父类,继承超类的类叫子类(subclass). 举例说明: class Box { public double width ...
- 【M31】让函数根据一个以上的对象类型来决定如何虚化
1.考虑下面的问题,游戏软件中有角色A,B,角色又可以细化为A1,A2,A3:B1,B2,B3,两类角色之间相互攻击.即A1可以攻击B1,B2,B3,B1可以攻击A1,A2,A3.C++的多态,只根据 ...
- CodeForces 176C Playing with Superglue 博弈论
Playing with Superglue 题目连接: http://codeforces.com/problemset/problem/176/C Description Two players ...
- 丢失全部控制文件,noresetlogs重建控制文件,alter database open
測试2: (1)一致性的全备 SQL> shutdown immediate; $ cp -rf $ORACLE_BASE/oradata/boss/*.dbf /oradata/bossbak ...
- 2012 East Central Regional Contest 解题报告
昨晚各种莫名其妙卡题. 不过细看这套题还挺简单的.全是各种暴力. 除了最后一道题计算几何看起来很麻烦的样子,其他题都是很好写的吧. A. Babs' Box Boutique 题目大意是给出不超过10 ...
- 柯南君 :Oracle 分区技术 之 怎样支撑大数据操作?
前段时间.看了罗女士( 资深技术顾问 - Oracle 中国 顾问咨询部)关于<大批量数据处理技术的演讲>视频.感觉受益良多,结合多年的知识积累,柯南君给大家分享一下: 交流内容: 一.O ...