F. 汤圆防漏理论
ghc很喜欢吃汤圆,但是汤圆很容易被粘(zhān)漏。
根据多年吃汤圆经验,ghc总结出了一套汤圆防漏理论:
互相接触的汤圆容易粘(zhān)在一起,并且接触面积不同,粘(zhān)在一起的粘(nián)度也不同。
当ghc要夹起一个汤圆时,这个汤圆和现在碗里与这个汤圆接触的所有汤圆之间的粘(nián)度的和,如果大于汤圆的硬度,这个汤圆就会被粘(zhān)漏。
今天ghc又要煮汤圆啦,今天要煮
个汤圆,并且摆盘的方法已经设计好:
汤圆按照
编号,有
对汤圆互相接触,用
表示编号为
和
的两个汤圆互相接触,粘(nián)度为
。
汤圆当然是越软越好吃,但是ghc的厨艺只允许把所有汤圆煮成同样的硬度。那么,汤圆的硬度最小可以是多少,可以满足吃的过程中,存在一种夹汤圆的顺序,使得没有汤圆会被粘(zhān)漏呢?
注意:
不考虑汤圆的重力作用;
不能同时夹多个汤圆;
吃完汤圆一定要喝点汤。
Input
第一行是一个正整数
,表示测试数据的组数,
对于每组测试数据,
第一行是两个整数
,
接下来
行,每行包含三个整数
,
同一对汤圆不会出现两次。
Output
对于每组测试数据,输出一行,包含一个整数,表示汤圆硬度的最小值。
Sample Input
1
4 6
1 2 2
1 3 2
1 4 2
2 3 3
2 4 3
3 4 5
Sample Output
6
#include<bits/stdc++.h> using namespace std; const int N = 1e5 + ; using LL = long long;
using P = pair<LL, int>; LL cnt[N];
int n, m; set<P> edge[N]; priority_queue<P, vector<P>, greater<P> > Q; void Work(){
LL ans = ;
for(int i = ; i <= n; i++){
Q.push({cnt[i], i});
}
while(!Q.empty()){
auto tmp = Q.top(); Q.pop();
if(tmp.first != cnt[tmp.second]) continue;
int u = tmp.second;
ans = max(ans, tmp.first);
for(auto p : edge[u]){
int v = p.second;
cnt[v] -= p.first;
edge[v].erase({p.first, u});
Q.push({cnt[v], v});
}
}
cout << ans << endl;
} int main(){
int T;
cin >> T;
while(T--){
cin >> n >> m;
for(int i = ; i <= n; i++) {
edge[i].clear();
cnt[i] = ;
} int u, v, w;
for(int i = ; i <= m; i++){
cin >> u >> v >> w;
cnt[u] += w;
cnt[v] += w;
edge[u].insert({w, v});
edge[v].insert({w, u});
}
Work();
} }
F. 汤圆防漏理论的更多相关文章
- 北京师范大学第十六届程序设计竞赛决赛 F 汤圆防漏理论
链接:https://www.nowcoder.com/acm/contest/117/F来源:牛客网 汤圆防漏理论 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他 ...
- python 格式化输出详解(占位符:%、format、f表达式)——上篇 理论篇
0 - 占位符介绍 要实现字符串的拼接,使用占位符是的一种高效.常用的方式. 举个例子,下面是不使用占位符的一种写法,直接使用加号拼接字符串 name = "Li hua" age ...
- 2018BNU校赛总决赛
题解是qls的题解我就懒得写了23333 A塞特斯玛斯塔 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld ...
- 进阶篇:4.3)DFA设计指南:防错设计( 防呆设计)
本章目的:每一个装配步骤都有设计防错. 1.前言 关于防错设计,作者有想说的话: 1)防错设计是DFA重要的一条.因为太过重要,作者单独开一分章写! 2)只有理解了设计防错的重要,才会去设计防错特征. ...
- ThinkPHP 汉字转成多种形式拼音
模型: <?php namespace Admin\Model; use Think\Model; /** * 汉字转拼音 * @author huangguojin */ class ZHMo ...
- C#高级编程笔记 (1至6章节)数组,类/方法/泛型
2.3变量 var 类型推断 type 类的分类 如:type nametype = name.GetType(); //取变量name的类型 const 常量 const int painame ...
- IT基础架构规划方案二(计算机系统与机房规划规划)
计算机系统规划 服务器硬件选型规划方案 根据对某集团的实际调研,获取了企业业务应用系统的建设情况,随着企业信息化建设的推进,需要对各种信息化管理系统和应用系统的服务器选型进行选 ...
- Netty之有效规避内存泄漏
有过痛苦的经历,特别能写出深刻的文章 —— 凯尔文. 肖 直接内存是IO框架的绝配,但直接内存的分配销毁不易,所以使用内存池能大幅提高性能,也告别了频繁的GC.但,要重新培养被Java的自动垃圾回收惯 ...
- CODEVS 2055 集合划分
[题目描述] 对于从1到N(1<=N<=39)的连续整数集合,划分成两个子集合,使得每个集合的数字之和相等. 举个例子,如果N=3,对于{1,2,3}能划分成两个子集合,他们每个的所有数字 ...
随机推荐
- BOM:浏览器对象
1.window是javascript的顶级对象 window有很多内置方法 如 alert open 自定义函数 2.window是bom的顶级对象,通常情况下,可以省略 window ...
- ARTS打卡计划第九周
Algorithms: https://leetcode-cn.com/problems/merge-two-sorted-lists/submissions/ 合并两个链表 Review: “Pu ...
- php反序列化笔记
普通的魔法方法 public,private,protected属性序列化后的不同 绕过wakeup session反序列化 phar反序列化 1.普通的魔法方法 __construct() 创建一个 ...
- Qt学习之如何启动和终止一个线程
先来给出每个文件的相关代码然后再加以分析 //*************dialog.h**************// #ifndef DIALOG_H #define DIALOG_H #incl ...
- 以下示例使用一个 x,y 坐标列表创建了一个多边形几何对象。然后使用裁剪工具来裁剪具有多边形几何对象的要素类。
import arcpy # Create an Array object. # array = arcpy.Array() # List of coordinates. # coordList = ...
- leetcode-hard-array-179 Largest Number-NO
mycode 写的很复杂,还报错... 参考: class Solution: # @param {integer[]} nums # @return {string} def largestNum ...
- ORACLE数据库黑/白名单
编辑sqlnet.ora文件 #开启ip限制功能tcp.validnode_checking=yes#允许访问数据库的IP地址列表,多个IP地址使用逗号分开tcp.invited_nodes=(10. ...
- C#实现MJPEG服务器
实现流写入,将图像作为mjpeg写入 public class MjpegWriter : IDisposable { , }; , , , }; private string _Boundary; ...
- [go]匿名结构体
匿名结构体声明 使用匿名结构体 声明并初始化
- 【Taro全实践】修改radio组件的大小
需求是将radio选中后颜色改为橙色.大小改成合适大小. 1.改颜色 <Radio color='#FF7464'></Radio> 2.改大小 <Radio style ...