【PAT - 甲级1034】Head of a Gang (30分)(并查集)

题干:

One way that the police finds the head of a gang is to check people's phone calls. If there is a phone call between A and B, we say that A and B is related. The weight of a relation is defined to be the total time length of all the phone calls made between the two persons. A "Gang" is a cluster of more than 2 persons who are related to each other with total relation weight being greater than a given threshold K. In each gang, the one with maximum total weight is the head. Now given a list of phone calls, you are supposed to find the gangs and the heads.

Input Specification:

Each input file contains one test case. For each case, the first line contains two positive numbers N and K (both less than or equal to 1000), the number of phone calls and the weight threthold, respectively. Then N lines follow, each in the following format:

Name1 Name2 Time

where Name1 and Name2 are the names of people at the two ends of the call, and Time is the length of the call. A name is a string of three capital letters chosen from A-Z. A time length is a positive integer which is no more than 1000 minutes.

Output Specification:

For each test case, first print in a line the total number of gangs. Then for each gang, print in a line the name of the head and the total number of the members. It is guaranteed that the head is unique for each gang. The output must be sorted according to the alphabetical order of the names of the heads.

Sample Input 1:

8 59
AAA BBB 10
BBB AAA 20
AAA CCC 40
DDD EEE 5
EEE DDD 70
FFF GGG 30
GGG HHH 20
HHH FFF 10

Sample Output 1:

2
AAA 3
GGG 3

Sample Input 2:

8 70
AAA BBB 10
BBB AAA 20
AAA CCC 40
DDD EEE 5
EEE DDD 70
FFF GGG 30
GGG HHH 20
HHH FFF 10

Sample Output 2:

0

题目大意:

警察发现团伙头目的一种方法是检查人们的电话。如果a和B之间有电话,我们说a和B是相关的。关系的权重被定义为两个人之间所有通话的总时间长度。一个“团伙”是一个由2个以上的人组成的群体,他们相互之间有关联,总关联权重大于给定的阈值K。在每一组中,总重量最大的是头部。现在给出一个电话列表,你应该找到团伙和头目。

解题报告:

并查集维护集合元素个数,集合的权值和,每个元素的权值即可。

最后按要求输出答案。

AC代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<stack>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define FF first
#define SS second
#define ll long long
#define pb push_back
#define pm make_pair
using namespace std;
typedef pair<int,int> PII;
const int MAX = 2e5 + 5;
map<string,int> mp;
string NAME[MAX];
char s1[5],s2[5];
int n,K;
int tot,f[MAX],num[MAX],V[MAX];
int val[MAX];
int getf(int v) {return f[v] == v ? v : f[v] = getf(f[v]);
} 
void merge(int u,int v,int w) {int t1 = getf(u),t2 = getf(v);if(t1 == t2) {V[t1] += w;return;}f[t2] = t1;num[t1] += num[t2];V[t1] += V[t2]+w;
}
vector<int> boss;
PII pr[MAX];
struct Node {string name;int num;
} ans[MAX];
int top;
bool cmp(Node a,Node b) {return a.name < b.name;
}
int main()
{cin>>n>>K;for(int w,i = 1; i<=n; i++) {scanf("%s%s%d",s1,s2,&w);if(mp.find(s1) == mp.end()) mp[s1] = ++tot,NAME[tot] = s1,num[tot] = 1,f[tot] = tot;if(mp.find(s2) == mp.end()) mp[s2] = ++tot,NAME[tot] = s2,num[tot] = 1,f[tot] = tot;val[mp[s1]] += w;val[mp[s2]] += w;merge(mp[s1],mp[s2],w);}for(int i = 1; i<=tot; i++) {if(f[i] == i && num[i] > 2 && V[i] > K) boss.push_back(i),pr[i].first = i,pr[i].second = val[i]; }for(int i = 1; i<=tot; i++) {int tar = getf(i);if(val[i] > pr[tar].second) {pr[tar].first = i; pr[tar].second = val[i];}}for(auto x : boss) {ans[++top].name = NAME[pr[x].first];ans[top].num = num[x];}sort(ans+1,ans+top+1,cmp);printf("%d\n",top);for(int i = 1; i<=top; i++) {cout << ans[i].name << " " << ans[i].num << endl;}return 0 ;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/439470.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重读经典(CLIP上):《Learning Transferable Visual Models From Natural Language Supervision》

CLIP 论文逐段精读【论文精读】这一次朱毅博士给大家精读的论文是 CLIP&#xff0c;来自于 OpenAI&#xff0c;是图像文本多模态领域一个里程碑式的工作。 CLIP 的影响力可见一斑&#xff0c;如果按照沐神之前讲的如何判断一个工作的价值来说&#xff0c;CLIP 应该就是 1001001…

TFS准备(一)

一、TFS概念&#xff1a; TFS全称Team FoundationServer&#xff0c;是应用程序生命周期管理的服务端&#xff0c;功能包括如图功能&#xff1a;源代码管理&#xff0c;版本控制&#xff0c;团队开发协作&#xff0c;统一集成&#xff0c;测试管理等。 二、TFS安装要求&#…

【PAT - 甲级1094】The Largest Generation (25分)(dfs建树)

题干&#xff1a; A family hierarchy is usually presented by a pedigree tree where all the nodes on the same level belong to the same generation. Your task is to find the generation with the largest population. Input Specification: Each input file contai…

重读经典(CLIP下):《Learning Transferable Visual Models From Natural Language Supervision》

上文链接&#xff1a;重读经典&#xff08;CLIP上&#xff09;&#xff1a;《Learning Transferable Visual Models From Natural Language Supervision》 5. 实验 现在我们已经知道 CLIP 是如何进行预训练的以及作者为什么选用对比学习来预训练 CLIP&#xff0c;接下来我们就…

TFS创建团队项目(三)

打开Visual Studio 2013&#xff0c;视图-团队资源管理器-连接图标&#xff08;插头图标&#xff09; 当前是没有TFS服务器&#xff0c;点击服务器按钮 添加&#xff0c;并在URL地址栏里输入装有TFS的服务器IP地址&#xff08;配置完TFS后有这个URL&#xff1a;http://tfs-serv…

【PAT - 甲级1007】Maximum Subsequence Sum (25分)(前缀和)

题干&#xff1a; Given a sequence of K integers { N​1​​, N​2​​, ..., N​K​​ }. A continuous subsequence is defined to be { N​i​​, N​i1​​, ..., N​j​​ } where 1≤i≤j≤K. The Maximum Subsequence is the continuous subsequence which has the l…

详解4D毫米波雷达数据集(VOD)Multi-class Road User Detection with 3+1D Radar in the View-of-Delft Dataset

Multi-class Road User Detection with 31D Radar in the View-of-Delft Dataset本文介绍一个新的自动驾驶数据集&#xff1a;VOD&#xff0c;论文收录于 ICRA2022。下一代毫米波雷达除了提供距离、方位和多普勒速度外&#xff0c;还会提供高度信息。 在本文中&#xff0c;作者…

自动驾驶之心:毫米波雷达-视觉融合感知方法(前融合/特征级融合/数据级融合)

毫米波雷达-视觉融合感知方法&#xff08;前融合/特征级融合/数据级融合&#xff09;分享一个自动驾驶之心的报告&#xff1a;毫米波雷达与视觉融合目标检测。 作者主页为&#xff1a;https://www.zhihu.com/people/nacayu 文章目录1. 毫米波雷达与相机融合检测背景2. 主流融合…

【PAT - 甲级1095】Cars on Campus (30分)(模拟)

题干&#xff1a; Zhejiang University has 8 campuses and a lot of gates. From each gate we can collect the in/out times and the plate numbers of the cars crossing the gate. Now with all the information available, you are supposed to tell, at any specific t…

TFS中的迭代(五)

从团队资源管理器中打开迭代选项。 TFS在新建完团队项目后会自动为本团队项目新建迭代子项&#xff0c;包含发布和冲刺。第一级为团队项目TestProject&#xff0c;第二层为发布&#xff0c;第三层为冲刺&#xff0c;这样的层次一共可以建14层。 这些选项可以编辑&#xff0c;添…

2022百度ApolloDay技术开放日:文心大模型在自动驾驶感知中的落地应用

2数据处理大模型技术是自动驾驶行业近年的热议趋势&#xff0c;但能否落地应用、能否用好是关键难题。百度自动驾驶依托文心大模型特色优势&#xff0c;率先实现技术应用突破。百度自动驾驶技术专家王井东表示&#xff1a;文心大模型-图文弱监督预训练模型&#xff0c;背靠文心…

【PAT - 甲级1155】Heap Paths (30分)(栈,dfs,二叉树)

题干&#xff1a; In computer science, a heap is a specialized tree-based data structure that satisfies the heap property: if P is a parent node of C, then the key (the value) of P is either greater than or equal to (in a max heap) or less than or equal to…

TFS中的工作项(六)

TFS中的工作项 在VS中打开团队资源管理器 工作项有功能&#xff0c;产品积压工作项&#xff0c;任务&#xff0c;测试用例&#xff0c;Bug&#xff0c;障碍&#xff0c;它们之间的关系是&#xff1a;一个产品或应用&#xff0c;有一系列功能&#xff0c;功能最大&#xff0c;可…

单目3D物体检测模型(CaDDN): Categorical Depth Distribution Network for Monocular 3D Object Detection

本文介绍一篇单目3D物体检测模型&#xff1a;CaDDN&#xff0c;论文收录于 CVPR2021。 单目3D物体检测的主要挑战在于准确预测物体深度&#xff0c;由于缺乏直接的距离测量&#xff0c;因此必须根据物体和场景线索来推断物体深度。过去许多方法试图直接估计深度来辅助3D检测&am…

【PAT - 甲级1003】Emergency (25分)(Dijkstra,最短路条数,双权值最短路)

题干&#xff1a; As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams in each city and the length of each road between any pair of…

抠图、换背景、正装图证件照制作方法

本篇灵感是最近又要使用别的底色的正装照的图片。上学的时候&#xff0c;要求证件照的底色是蓝底、党员档案里要求图片的底色是红底、 将来上班的证件照要求是白底&#xff0c;并且无论是考研还是找工作都是制作简历的时候&#xff0c;根据简历的样板不同需要更换不同的底色。 …

TFS的Web门户工作项(七)

在TFS的web门户中有更丰富和更全面的设置和数据展示。 Web门户如图有A&#xff0c;B&#xff0c;C&#xff0c;D四部分组成。A部分为团队项目和项目切换&#xff0c;登录人员和登录人员切换。B部分是Web门户主要功能的菜单&#xff0c;C部分是当前团队项的一些信息的展示&#…

详解多视角3D检测模型 BEVDepth: Acquisition of Reliable Depth for Multi-view 3D Object Detection

本文介绍一个多视角的3D检测模型&#xff1a;BEVDepth&#xff0c;论文收录于 AAAI2023。在这篇文章中&#xff0c;作者提出了一种新的具有可信深度估计的三维物体检测器。本文提出的BEVDepth通过利用激光雷达显式深度监督来提高图像深度估计的可信度。作者引入了摄像机感知深度…

TFS版本管理(八)

目前TFS支持两种版本管理方式&#xff0c;一种是自带的TFS版本控制&#xff0c;一种是Git&#xff0c;后一种是分布式&#xff0c;并且分支功能相对强大&#xff0c;关于Git可以找更详细的资源学习。 如果没有创建项&#xff0c;在web门户中代码下的资源管理器是空的。 团队资…

【PAT - 甲级1006】Sign In and Sign Out (25分)(STLmap)

题干&#xff1a; At the beginning of every day, the first person who signs in the computer room will unlock the door, and the last one who signs out will lock the door. Given the records of signing ins and outs, you are supposed to find the ones who have …