pat 甲级 1034. Head of a Gang (30)

1034. Head of a Gang (30)

时间限制
100 ms
内存限制
65536 kB
代码长度限制
16000 B
判题程序
Standard
作者
CHEN, Yue

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 threshold, 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

题意:gang是一个帮派群体,现在给出一张图,找到这张图上的所有帮派以及每个帮派的头目和帮派人数。其中要成为一个帮派,要满足以下要求:
1:帮派人数大于等于3 2:帮派中人与人的通话总时长要高于一个界限threshhold.
思路:dfs
AC代码:
#define _CRT_SECURE_NO_DEPRECATE
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<string>
#include<set>
#include<queue>
#include<map>
using namespace std;
#define INF 0x3f3f3f
#define N_MAX 10000+5
typedef long long ll;
struct gang{int num;string head;gang() {}gang(int num,string head):num(num),head(head) {}bool operator < (const gang&b) {return head < b.head;}
};
vector<gang>res;
int n,m, threshold;
map<string, int>Map;
bool is_connect[N_MAX][N_MAX];
string name[N_MAX];
int weight[N_MAX],vis[N_MAX];int max_time = 0, id,num=0,sum=0; bool flag = 0;
void dfs(int x) {sum += weight[x];num++;if (sum/2 > threshold)flag = true;vis[x] = true;if (max_time < weight[x]) {max_time = weight[x];id = x;}for (int i = 1; i < n;i++) {if (!is_connect[x][i]||vis[i])continue;dfs(i);}
}int main() {while (cin>>m>>threshold) {n = 1;//n-1为人数for (int i = 0; i < m;i++) {string from, to; int cost;cin >> from >> to >> cost;if (Map[from] == 0) { Map[from] = n; name[n++] = from; }if (Map[to] == 0) { Map[to] = n; name[n++] = to; }is_connect[Map[from]][Map[to]] = 1;is_connect[Map[to]][Map[from]] = 1;weight[Map[from]] += cost; weight[Map[to]] += cost;}for (int i = 1; i < n;i++) {max_time = 0,flag = 0,num=0,sum=0;if (!vis[i]){dfs(i);if (flag&&num>2) {res.push_back(gang(num, name[id]));}}}sort(res.begin(),res.end());printf("%d\n",res.size());for (int i = 0; i < res.size();i++) {printf("%s %d\n",res[i].head.c_str(),res[i].num);}}return 0;
}

 

转载于:https://www.cnblogs.com/ZefengYao/p/8570696.html

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

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

相关文章

有人说 GPT3 是“暴力美学”的结晶,它的工作原理你知道吗?| 动图详解

来源&#xff1a;CSDN如今&#xff0c;在科技领域掀起了一股GPT3的热潮。大规模语言模型&#xff08;比如GPT3&#xff09;的潜力惊艳了我们。虽然这些模型还没有成熟到大多数企业将之直接面对消费者&#xff0c;但却展示出一些智慧的火花&#xff0c;并让人坚信其将会加速自动…

android的listview多选功能,Android ListView实现单选及多选等功能示例

本文实例讲述了Android ListView实现单选及多选等功能的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;在项目中也遇到过给ListView的item添加选择功能。比如一个网购APP&#xff0c;有个历史浏览页面&#xff0c;这个页面现点击item单选/多选及全选删除功能。当…

git 生成ssh key_ubuntu git生成ssh key (公钥私钥)配置github或者码云

Git是分布式的代码管理工具&#xff0c;远程的代码管理是基于SSH的&#xff0c;所以要使用远程的Git则需要SSH的配置。github的SSH配置如下&#xff1a;设置Git的user name和email&#xff1a;git config --global user.name "xx"git config --global user.email &qu…

ThinkPHP5模型操作中的自动时间戳总结

ThinkPHP5中提供了非常优秀的自动时间戳功能。使用起来非常方便。 但是官网手册中的说明还是不是很详尽&#xff0c;因此整理再次&#xff0c;以方便后续使用时查阅。 一、一般情况下的自动填充create_time,update_time两个字段 对于固定的时间戳和时间日期型的字段&#xff0c…

android圆形头像 demo,Android图像处理之绘制圆形头像

在Android中&#xff0c;绘制圆形和绘制图片都是很容易的事情&#xff0c;但是绘制圆形图片就有点难倒人了。以前为了偷懒就直接去github上找一个开源项目&#xff0c;后来才发现绘制圆形图片其实也是很简单的事。绘制圆形图片也需要两个步骤&#xff1a;绘制圆形和绘制图片&am…

芯片项目烂尾怎么办?国家发改委回应了!

来源&#xff1a;北京日报客户端芯片项目烂尾的报道近日引发关注。对此&#xff0c;国家发改委新闻发言人孟玮在今日&#xff08;20日&#xff09;上午举行的例行发布会上回应&#xff0c;将会同有关部门强化顶层设计&#xff0c;狠抓产业规划布局&#xff0c;努力维护产业发展…

idea中二级包为什么创建不了_IDEA通过Maven打包JavaFX工程(OpenJFX11)

1 概述 最近研究JFX&#xff0c;写出来了但是打包不了&#xff0c;这。。。尴尬。。。 IDEA的文档说只支持Java8打成jar包&#xff1a; 尝试过直接使用Maven插件的package&#xff0c;不行&#xff0c;也尝试过Build Artifacts&#xff0c;也不行&#xff0c;各种奇奇怪怪的问题…

鸿蒙系统发布会16号几点,华为鸿蒙手机系统正式定档发布,12月16日于我们见面...

#华为鸿蒙系统#大家都知道&#xff0c;华为手机已经无法预装谷歌GMS服务了&#xff0c;对于大部分海外用户来说&#xff0c;GMS服务还是相当重要的&#xff0c;谷歌全家桶内置了地图、搜索、视频娱乐等功能&#xff0c;但凡是搭载了安卓系统的智能手机&#xff0c;那么就无法离…

二叉树和红黑二叉树

二叉树是树形结构的一个类型&#xff0c;由一个根节点和左子树、右子树组成。排序二叉树特性&#xff1a;左子树上的值均小于根节点的值&#xff1b;右子树的值均大于根节点的值。&#xff08;相当于链表&#xff09;平衡二叉树任何节点的两个子树的最大高度差为1&#xff0c;被…

Gartner发布2021年重要战略科技趋势

来源&#xff1a;Gartner公司全球领先的信息技术研究和顾问公司Gartner于今日发布企业机构在2021年需要深挖的重要战略科技趋势。分析师们在本周举行的Gartner IT Symposium/Xpo大会美洲站虚拟会议上展示了自己的发现。Gartner研究副总裁Brian Burke表示&#xff1a;“各企业职…

html右侧分为两个框架,html – 两个框架一个滚动条

我正在尝试创建两个框架并使它们一起滚动,例如,如果页面顶部有更改的菜单栏 –我正在使用旋转木马 – 或底部的页脚,必须作为页面的一部分出现.我希望页面看起来像一个也能够滚动的页面,但页面实际上由两个框架组成.用这个……/p>"http://www.w3.org/TR/xhtml1/DTD/xht…

pause pod 什么是pod_Kubernetes 自主式Pod清单 干货太多先马住慢慢看

在讲资源清单之前&#xff0c;先给大家介绍一下究竟什么是Kubernetes资源&#xff1f;有几种资源&#xff1f;① 资源分类&#xff1a;① 1 工作负载&#xff1a;pod、rs(ReplicasSet)、deploy(Deployment)、sts(StatefulSet)、ds(DaemonSet)、job、cronjob① 2 服务发现及负…

不会Python开发的运维终将被淘汰?

Python语言是一种面向对象、直译式计算机程序设计语言&#xff0c;由Guido van Rossum于1989年底发明。Python语法简捷而清晰&#xff0c;具有丰富和强大的类库&#xff0c;具有可扩展性和可嵌入性&#xff0c;是现代比较流行的语言。 一、最流行的语言 IEEE Spectrum 的数据记…

8大领域、6大机遇!读懂2020年AI医疗新风向

来源 | 工业互联网创新中心、36氪研究院编辑 | 蒲蒲蓝皮书如下未来智能实验室的主要工作包括&#xff1a;建立AI智能系统智商评测体系&#xff0c;开展世界人工智能智商评测&#xff1b;开展互联网&#xff08;城市&#xff09;云脑研究计划&#xff0c;构建互联网&#xff08;…

对口高考 html语言,VB对口高考模拟试题1

《VB》对口高考模拟试题1一、选择题。(每个1分&#xff0c;共30分)1、某一VB工程含F1、F2两个窗体&#xff0c;执行“F1&#xff0e;Show: F2&#xff0e;Hide”语句后&#xff0c;F1、F2窗体显示的结果为()。A、都显示B、都不显示C、仅显示F1窗体D、仅显示F2窗体2、删除列表框…

LinkedList源码详解

public class LinkedList<E>extends AbstractSequentialList<E>implements List<E>, Deque<E>, Cloneable, java.io.Serializable LinkedList继承自AbstractSequenceList、实现了List及Deque接口。 AbstractSequenceList提供List接口的骨干实现,以减少…

arduino uno r3单片机封装图_Arduino教程 | 初识Arduino

前一段时间偶然进入创客空间并接触到了开源硬件&#xff0c;小编表示十分感兴趣。于是这周打算汇总一下网络上现有的一些关于Arduino的及教程进行分享。首先感谢一下各位原作者&#xff0c;在此表示十分感谢~什么是Arduino&#xff1f;Arduino是一个能够用来感应和控制现实物理…

神经网络原来是这样和数学挂钩的

来源&#xff1a;遇见数学近几年&#xff0c;有几个被媒体大肆报道的事件&#xff0c;如下表所示。如上所示&#xff0c;深度学习作为人工智能的一种具有代表性的实现方法&#xff0c;取得了很大的成功。那么&#xff0c;深度学习究竟是什么技术呢&#xff1f;深度学习里的“学…

鸿蒙os开发小程序,9岁小学生展示鸿蒙OS开发:这操作太秀了

华为的鸿蒙 OS 正在迅速成熟&#xff0c;这背后离不开无数开发者的支持。近日&#xff0c;鸿蒙 OS 技术社区就向大家介绍了一位特殊的鸿蒙开发者&#xff0c;今年只有 9 岁&#xff0c;还是个小学生 ……在鸿蒙社区&#xff0c;这位小开发者坐在镜头前&#xff0c;向大家演示了…

python 列表推导式

列表推导式的格式&#xff1a; [表达式 for 变量 in 列表] 或者 [表达式 for 变量 in 列表 if 条件] 举例&#xff1a; #!/usr/bin/python # -*- coding: utf-8 -*-li [1,2,3,4,5,6,7,8,9] print [x**2 for x in li]print [x**2 for x in li if x>5]print dict([(x,x*10) …