/****************************************************************************************************
只能用坑爹来形容。。。PE能judge成WA。。。
****************************************************************************************************/
#include <iostream>
#include <functional>
#include <algorithm>
//#include <hash_map> //Visual C++ lib
#include <complex>
#include <cstdlib>
#include <cstring>
#include <fstream>
#include <sstream>
#include <utility>
#include <bitset>
#include <cctype>
#include <cstdio>
#include <limits>
#include <memory>
#include <string>
#include <vector>
#include <cmath>
#include <ctime>
#include <queue>
#include <stack>
#include <list>
#include <map>
#include <set>
using namespace std;
#define LOWBIT(x) ( (x) & ( (x) ^ ( (x) - 1 ) ) )
#define CLR(x, k) memset((x), (k), sizeof(x))
#define CPY(t, s) memcpy((t), (s), sizeof(s))
#define SC(t, s) static_cast<t>(s)
#define LEN(s) static_cast<int>( strlen((s)) )
#define SZ(s) static_cast<int>( (s).size() )
typedef double LF;
//typedef long long LL; //GNU C++
//typedef unsigned long long ULL;
typedef __int64 LL; //Visual C++ 2010
typedef unsigned __int64 ULL;
typedef pair<int, int> PII;
typedef pair<LL, LL> PLL;
typedef pair<double, double> PDD;
//typedef hash_map<int, int>::iterator HMI;
typedef map<int, int>::iterator MI;
typedef vector<int>::iterator VI;
typedef list<int>::iterator LI;
typedef set<int>::iterator SI;
template <typename T>
T sqa(const T &x)
{
return x * x;
}
template <typename T>
T gcd(const T &a, const T &b)
{
if (!a || !b)
{
return max(a, b);
}
T t;
while (t = a % b)
{
a = b;
b = t;
}
return b;
}
template <typename T>
T ext_gcd(T a, T b, T &x, T &y)
{
if (!b)
{
x = 1;
y = 0;
return a;
}
T d = ext_gcd(b, a % b, x, y);
T t = x;
x = y;
y = t - a / b * y;
return d;
}
const int INF_INT = 0x3f3f3f3f;
const LL INF_LL = 0x7fffffffffffffffLL; //15f
const double oo = 10e9;
const double eps = 10e-9;
const double PI = acos(-1.0);
const int MAXN = 2004;
const int MAXE = MAXN << 1;
const int MAXL = 100;
const int MAXC = 26;
int test, n, m;
struct Node
{
Node *next[MAXC];
int id;
}node[MAXN * MAXL], * const root = node;
int ncnt;
struct Edges
{
int end;
int next;
}edges[MAXE];
int ecnt, head[MAXN];
string name[MAXN];
int icnt;
int vcnt[MAXN];
int stop, S[MAXN];
string ans[MAXN];
bool vis[MAXN];
void initTrie()
{
ncnt = 1;
for (int i = 0; i < MAXC; ++i)
{
root->next[i] = NULL;
}
root->id = -1;
return ;
}
Node * createNode()
{
Node *ptr = &node[ncnt++];
for (int i = 0; i < MAXC; ++i)
{
ptr->next[i] = NULL;
}
ptr->id = -1;
return ptr;
}
int find(const string &ss)
{
int buf;
Node *ptr = root;
for (int k = 0; k < SC(int, ss.length()); ++k)
{
buf = ss[k] - 'a';
if (NULL == ptr->next[buf])
{
return -1;
}
ptr = ptr->next[buf];
}
return ptr->id;
}
void insert(const string &ss, const int &_id)
{
int buf;
Node *ptr = root;
for (int k = 0; k < SC(int, ss.length()); ++k)
{
buf = ss[k] - 'a';
if (NULL == ptr->next[buf])
{
ptr->next[buf] = createNode();
}
ptr = ptr->next[buf];
}
ptr->id = _id;
return ;
}
void add_edge(int u, int v)
{
edges[ecnt].end = v;
edges[ecnt].next = head[u];
head[u] = ecnt++;
return ;
}
bool bfs(const int &u)
{
CLR(vcnt, 0);
CLR(vis, false);
int v, w;
stop = 0;
int maxi = 0;
vis[u] = true;
for (int i = head[u]; i != -1; i = edges[i].next)
{
v = edges[i].end;
vis[v] = true;
}
for (int i = head[u]; i != -1; i = edges[i].next)
{
v = edges[i].end;
for (int j = head[v]; j != -1; j = edges[j].next)
{
w = edges[j].end;
if (vis[w])
{
continue ;
}
++vcnt[w];
if (vcnt[w] == maxi)
{
S[stop++] = w;
}
else
{
if (vcnt[w] > maxi)
{
maxi = vcnt[w];
stop = 0;
S[stop++] = w;
}
}
}
}
return stop != 0;
}
bool cmp(const string &sa, const string &sb)
{
return sa < sb;
}
bool _cmp(const int &a, const int &b)
{
return name[a] < name[b];
}
void ace()
{
int cas = 1;
string s1, s2;
int u, v;
for (cin >> test; test--; ++cas)
{
cin >> n >> m;
ecnt = 0;
CLR(head, -1);
initTrie();
icnt = 0;
for (int i = 0; i < n; ++i)
{
cin >> s1 >> s2;
u = find(s1);
if (-1 == u)
{
name[icnt] = s1;
insert(s1, icnt);
u = icnt++;
}
if (s1 == s2)
{
continue ;
}
v = find(s2);
if (-1 == v)
{
name[icnt] = s2;
insert(s2, icnt);
v = icnt++;
}
if (u != v)
{
add_edge(u, v);
add_edge(v, u);
}
}
cout << "Case " << cas << ":" << endl;
while (m--)
{
cin >> s1;
u = find(s1);
if (-1 == u)
{
puts("-");
continue ;
}
if (!bfs(u))
{
puts("-");
continue ;
}
for (int i = 0; i < stop; ++i)
{
ans[i] = name[ S[i] ];
}
sort(ans, ans + stop, cmp);
cout << ans[0];
for (int i = 1; i < stop; ++i)
{
cout << " " << ans[i];
}
cout << endl;
}
}
return ;
}
int main()
{
ace();
return 0;
}相关推荐
能量机关 STM32HAL库开发大疆A板WS2812B彩灯(PWM+DMA)
本文主要目的是为了制作RoboMaster比赛能量机关的灯条控制,模拟比赛场中大符,搭建出类似场地道具,以供视觉测试 使用的是RoboMaster开发板A型,芯片为STM32F427IIH6,使用的灯条为WS2812B。 采用PWM+DMA控制,使用CUBEMX配置底层,keil5编辑烧录代码 实现:一共五片扇叶,每片扇叶均实现流水灯+常亮颜色 参考文章在后面会标记出来
HDU 4039 The Social Network bfs
算了下复杂度好像是n^3 就感觉不大好做。结果n^31a。。。 #include #include #include #include #include #include #include #include using namespace std; #define eps 1e-9 #define PI acos(-1.0) #define N 1005 #define inf
别再到处找密钥了!手把手教你搞定Halcon 24.11/25.05的试用授权(附每月更新提醒)
本文详细介绍了Halcon 24.11/25.05试用授权的获取与配置方法,包括解密新版授权机制、快速配置指南、每月更新规律及多版本共存管理技巧。帮助开发者避免常见授权问题,提升工作效率,特别适合机器视觉领域的初学者和专业人士。
HDU - 4039 The Social Network (BFS)
题目:HDU - 4039 The Social NetworkThe social network system (SNS) helps people to keep connecting with their friends. Every user in SNS has a friends list. The user can read news posted by the users in h
飞塔防火墙CVE-2022-40684漏洞复现:手把手教你搭建靶场环境(附调试技巧)
本文详细指导如何搭建Fortinet飞塔防火墙CVE-2022-40684认证绕过漏洞的靶场环境,涵盖虚拟机部署、网络配置、调试模式开启及漏洞原理分析。通过手把手教程,读者可掌握漏洞复现与深度调试技巧,深入理解该认证绕过漏洞的利用与防御。
XCAT集群管理实战:从裸机到节点批量部署
在数据中心与HPC集群运维中,裸机配置与操作系统批量部署是关键环节。PXE引导、IPMI带外管理等基础技术为自动化装机提供了底层支持,而集群管理工具则将这些能力整合为可扩展的运维体系。XCAT作为一款开源集群管理工具,通过数据库驱动的方式统一管理DHCP、TFTP、HTTP等服务,实现从裸机发现、系统安装到电源控制的全流程自动化。本文从XCAT的核心设计出发,详细介绍了环境准备、安装配置、节点定义、镜像分发及常见问题排查,帮助运维人员快速构建高效的集群部署流程,降低规模化管理的复杂度。
hdu 4039 The Social Network bfs
照着题目的意思打代码就行了,这里我是用邻接表建的图。 先把A的所有朋友找到(统称为B),并且标记,再去找B的朋友,如果B的朋友不是A的朋友,按字典序输出出现次数最多的。 View Code #include <iostream> #include <string> #include <map> #include <queue&g...
Docker容器n8n中 read/write files from disk 无法读取容器内文件解决方案
《n8n文件读写Docker部署常见问题解决方案》摘要:针对n8n 1.90.2版本在Docker环境下文件读写失败问题,本文分析常见错误包括路径错误(ENOENT)、权限不足(EACCES)及节点误用问题。核心解决方案为:1)通过-v参数挂载宿主机目录到容器(如/files);2)使用新版Read/WriteFilesfromDisk节点操作文件;3)确保权限设置正确。提供可直接导入的示例工作流JSON,演示从CSV读取到结构化数据处理的全流程。特别强调已部署用户需重新挂载卷的正确操作方式,并附解决方案对
HDU4039 The Social Network(bfs)
The social network system (SNS) helps people to keep connecting with their friends. Every user in SNS has a friends list. The user can read news posted by the users in his friends list. Friend relation
(持续更新中!)详解【计算机类&面试真题】军队文职考试 ——第二期(真题+解析)| 网络协议的三个核心要素;交互式系统中的非剥夺策略;中断和陷入的区别;可变分区管理中的硬件机制;数据库系统的优点
本篇博客将讨论军队文职面试(计算机类)的几个关键问题。我们将介绍网络协议的核心要素(帮助你理解网络通信的基本原理)、交互式系统中的非剥夺策略(解释为何这是一个优秀的策略以及其对用户体验、系统稳定性和可预测性的影响)、中断和陷入的区别(从引起原因、处理机制、权限级别和应用等方面进行阐述)、可变分区管理的硬件机制以及数据库系统与文件系统的优点比较。通过阅读本文,您将深入了解这些话题,为面试准备和实际应用提供有价值的知识。
【MATLAB】嵌入式ADC/DAC控制工程
摘要:本文针对嵌入式ADC/DAC应用中存在的量化误差、采样噪声、输出漂移等问题,提出基于MATLAB的仿真优化方案。通过构建完整的ADC/DAC仿真模型,实现了采样建模、数字滤波、误差校准和闭环控制仿真。方案采用滑动平均滤波抑制ADC噪声,双校准参数补偿DAC固有误差,并将算法轻量化移植至STM32平台。实测表明,该方案使ADC采样波动从±25mV降至±5mV,DAC输出偏差从42mV降至18mV,显著提升了模拟量交互精度和系统稳定性。整套方案资源占用低,适配各类嵌入式高精度控制场景,具有较高的工程应用价
成都赛区网选 HDU 4039 The Social Network(BFS)
给出n个人物关系,p个查询,询问每个人的推荐好友(公共好友最多的且不是好友的人)。 将人物看作点,存在好友关系看作边,则题意转化为查询与某点最短路径长度为2的最多路径的点。 这样直接构图后BFS即可,将深度为2的存进队列查询次数,注意下输出格式和数组的大小,人是有可能超过10
计算机控制技术及应用
《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。
hdu 4039
题意:一个好友推荐系统,就是像微博那个推荐一样,你有多少个好友关注了他,这题只要你找出最多好友关注的那个,如有多个,按字典序输出推荐的好友。 很容易的想到直接bfs两层查找统计即可,一般都是用map,但要注意优化,sort那里没有优化就tle了,我直接把第二层的且不是他好友的全
RU DOS版、EFI版32bit/64bit BIOS常用工具
DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。
LinePhone3.2.7(android端最新版本) sip客户端
SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/
hdu 4039 暴力 The social network
题意:给出N对好友关系,之后Q次提问,问可以对该用户推荐的相识度最高的好友; 解: 纯暴力啊。第一次写又是T又是CE又是RE的,没办法了。重新搞一遍。用了十多分钟重写了一遍,然后重新交了,WA了,还好没T。昨天晚上改了改初始化,还是没过。今天早上看了一遍,将初始化向量的n改成了 2 * n,找不出错了,就交了。神一般地过了。一样的思路,我觉得基本一样的代码,为什么第一次的T了呢。。。
【水STL】hdu 4039
#include #include #include #include #include #include #include #include #include #include #include #include #include #include
推荐朋友 - LintCode
拼多多笔试第三题 除了题目具体方法值得注意外,数据的输入格外注意 题目 描述 给n个人的朋友名单,告诉你user,请找出user最可能认识的人。(他和user有最多的共同好友且他不是user的朋友) n <= 500。 好友关系是相互的。(b若出现在a的好友名单中,a一定出现在b的好友名单中) 每个人的好友关系不超过 m 条,m <= 3000。 如果有两个人和user的共同好友...
The-social-network
题目: HDU - 4039 The Social Network The social network system (SNS) helps people to keep connecting with theirfriends. Every user in SNS has a friends list. The user can read news posted bythe users i
oracle客户端最小安装教程,Oracle客户端安装教程
第一次尝试编写java昨晚手贱,不小心把环境变量path里面都东西全删除了 然后上百度搜了一波又一波 最后还是复制达达的 感动 然后还是不行,最后发现错误竟然是分号用了汉字的分号而不是英文的分号 这个问题在编写C语言也出现 ...【BZOJ 1877】 [SDOI2009]晨跑Description Elaxia最近迷恋上了空手道,他为自己设定了一套健身计划...
HDU 4013 图论 树的最小表示
/******************************************************************************* 去年上海赛区热身赛的一道题,树的最小表示模板题。解法就是用二进制枚举所有可能的联通子图,然后 求所有联通子图的最小表示,要注意的是对于某一个联通子图,最小表示需要枚举联通子图里的所有的点,然 后从这些点开始进行dfs,dfs过程中进
HDU 4121 模拟
/**************************************************************************************************** 坑爹的模拟题~注意这两种情况:黑方的将能直接飞过去杀了红方的将,还有将走一步能把红方别的子给吃了。。。 ******************************************
HDU 3644 计算几何 模拟退火
/* * ===================================================================================== * * Filename: hdu3644.cpp * * Description: Calculate Geometry -- Simulated annealing * *
HDU 4049 状态压缩DP
/******************************************************************************* 去年北京赛区网络赛水题,状态压缩DP,一开始TLE,然后发现是没初始化,应该用空间换时间来着, 接着WA,搞了半天没搞明白。。。最后发现发现一个小小的纰漏~~~ 解法就是建立状态dp[M][1 << N],用第一个状态表示
HDU 1512 左式堆 + 并查集
/* * ===================================================================================== * * Filename: hdu1512.cpp * * Description: Leftist Heap + Union Find Set * * Version
HDU 4036 物理坑爹题
/******************************************************************************* 坑爹的地方比较多,首先所有质量都是没用的,因为无摩擦力;其次坐标最好都用double表示;还有那个 土豆是的坐标是相对于第一个peak的坐标,第四貌似有土豆可以不在peak的范围内。。。以后找min/max值 还是用第一个元素做标记
HDU 3656 DLX重复覆盖
/********************************************************************************* 纠结了良久,这个题是DLX的重复覆盖问题,以前还没见过,最后套了晓天大牛的模板,水过了。 还是模板题。。。因为最后的答案必然是某两点的距离,所以离散化一下所有距离后二分再套用DLX 重复覆盖模板就能AC了~赞一下神函数uniq
4292



被折叠的 条评论
为什么被折叠?



