【NOIP】关押罪犯

带权并查集,其实这种并查集的核心就是“向量”

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<algorithm>
 4 using namespace std;
 5 int n,m,p[20001],r[20001];      //0表示在同一监狱,1表示在不同监狱 
 6 struct node{
 7     int a,b,c;
 8 }d[100000];
 9 int cmp(node x,node y){
10     return x.c>y.c;
11 }
12 int findp(int x){
13     if(p[x]!=x){
14         int px=findp(p[x]);     //找到真正的根结点 
15         r[x]=(r[p[x]]+r[x])%2;  //更新当前结点x和真正根结点px的关系r[x],括号里的r[x]是和旧的父结点的关系 
16         p[x]=px;
17     }
18     return p[x];
19 }
20 int main()
21 {
22     int ok=0;
23     scanf("%d%d",&n,&m);
24     for(int i=1;i<=n;i++) p[i]=i;
25     for(int i=0;i<m;i++)
26         scanf("%d%d%d",&d[i].a,&d[i].b,&d[i].c);
27     sort(d,d+m,cmp);
28     for(int i=0;i<m;i++){
29         int x=d[i].a,y=d[i].b,z=d[i].c;
30         int px=findp(x),py=findp(y);
31         if(px!=py){                   //两者不在同一集合,需要把x,y放在不同监狱,也就是向量(x,y)为1 
32             p[px]=py;                 //据此可以算出(px,py)的值,也就是r[px] 
33             r[px]=(1+r[y]-r[x])%2;
34         } 
35         else{
36             if(!((r[y]-r[x]+2)%2)){   //根据向量关系,两者在同一个监狱 
37                 ok=1;
38                 printf("%d",z);
39                 break;
40             }
41         }
42     }
43     if(!ok) printf("0");
44     return 0;
45 } 

 

转载于:https://www.cnblogs.com/sulley/p/8068233.html

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

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

相关文章

数学之路(3)-机器学习(3)-机器学习算法-SVM[7]

SVM是新近出现的强大的数据挖掘工具&#xff0c;它在文本分类、手写文字识别、图像分类、生物序列分析等实际应用中表现出非常好的性能。SVM属于监督学习算法&#xff0c;样本以属性向量的形式提供&#xff0c;所以输入空间是Rn的子集。 图1 如图1所示&#xff0c;SVM的目标是找…

Dalvik指令备忘

跳转指令 if-eq vx, vy, 目标 如果vx vy注2&#xff0c;跳转到目标。if-ne vx,vy, 目标 如果vx ! vy注2&#xff0c;跳转到目标。 if-lt vx,vy, 目标 如果vx < vy注2&#xff0c;跳转到目标。 if-ge vx, vy, 目标 如果vx > vy注2&#xff0c;跳转到目标。 if-gt vx,vy, …

CPU、GPU、FPGA、ASIC等AI芯片特性及对比

1、前言 目前&#xff0c;智能驾驶领域在处理深度学习AI算法方面&#xff0c;主要采用GPU、FPGA 等适合并行计算的通用芯片来实现加速。同时有部分芯片企业开始设计专门用于AI算法的ASIC专用芯片&#xff0c;比如谷歌TPU、地平线BPU等。在智能驾驶产业应用没有大规模兴起和批量…

个人博客03

昨天编写登录界面、注册界面的代码。 今天依旧做这些。 遇到的问题为数据库连接不上。转载于:https://www.cnblogs.com/qilin20/p/8068555.html

人工智能Ai芯片层出不穷,GPU、FPGA、ASIC用于人工智能的优势和劣势对比

人工智能&#xff08;AI&#xff09;主要包括三大要素&#xff0c;分别是数据、算法和算力。其中数据是基础&#xff0c;正是因为在实际应用当中的数据量越来越大&#xff0c;使得传统计算方式和硬件难以满足要求&#xff0c;才催生了AI应用的落地。而算法是连接软件、数据、应…

dom和bom

先看几个两个例题&#xff1a; 星座对应日期&#xff1a; <select id"s1">   <option>a</option>   <option>b</option>   <option>c</option>   <option>d</option>   </select>   <se…

分享自己针对Automation做的两个成熟的框架(QTP 和Selenium)

自己在google code中开源了自己一直以来做的两个自动化的框架&#xff0c;一个是针对QTP的一个是针对Selenium的&#xff0c;显而易见&#xff0c;一个是商业的UI automation工具&#xff0c;一个是开源的自动化工具。 只是代码&#xff0c;可能你直接看的话&#xff0c;有点不…

全景视频拼接关键技术

一、原理介绍 图像拼接(Image Stitching)是一种利用实景图像组成全景空间的技术&#xff0c;它将多幅图像拼接成一幅大尺度图像或360度全景图&#xff0c;图像拼接技术涉及到计算机视觉、计算机图形学、数字图像处理以及一些数学工具等技术。图像拼接其基本步骤主要包括以下几…

Part8 多态性 8.1运算符重载

1运算符重载的规则C 几乎可以重载全部的运算符&#xff0c;而且只能够重载C中已经有的。不能重载的运算符&#xff1a;“.”、“.*”、“::”、“?:”重载之后运算符的优先级和结合性都不会改变。 重载的两种形式&#xff1a;   1 重载为类的非静态成员函数&#xff1b;   …

H面试程序(29):求最大递增数

要求&#xff1a;求最大递增数 如&#xff1a;1231123451 输出12345 #include<stdio.h> #include<assert.h> void find(char *s) {int maxleng 0;int length 1;int pos 0;int i 0;while(s[i] !\0){ if((s[i])<0||(s[i]>9)){assert(0);}if((s[i1]-0) &g…

reorder-list

/*** Definition for singly-linked list.* class ListNode {* int val;* ListNode next;* ListNode(int x) {* val x;* next null;* }* }*///思路:通过不同的首结点获取到不同的尾结点,然后拼接public class Solution {public ListNode get…

四大主流芯片架构(X86、ARM、RISC-V和MIPS)

目前市场上主流的芯片架构有 X86、ARM、RISC-V和MIPS四种&#xff1a; 序号架构特点代表性的厂商运营机构发明时间1X86性能高&#xff0c;速度快&#xff0c;兼容性好英特尔&#xff0c;AMD英特尔1978年2ARM成本低&#xff0c;低功耗苹果&#xff0c;谷歌&#xff0c;IBM&…

微博预计要火一阵的SleepSort之Shell及C实现

今日在微博看到如此奇妙的代码。竟然还有新的sort算法&#xff0c;对于我这样的渣渣必须研究一下&#xff0c;代码例如以下&#xff1a; #!/bin.bash function f() {sleep "$1" //sleep 这么多secho "$1" }while [ -n "$1" ] //第一个參数不为空…

相关类以及常用方法

1、system&#xff1a;(系统相关类&#xff09; 常用方法&#xff1a; a) : system.arraycopy(制定数组&#xff0c;开始复制的位置&#xff0c;目标数组&#xff0c;开始粘贴的位置&#xff0c;需要复制的长度) 。 将指定源数组中的数组从指定位置复制到目标数组的指定位…

2021-11-15

本文将重点围绕国产CPU的发展历程与当前产业链各领军企业的布局情况作详尽解读&#xff08;并包含特大号独家整理的最新进展&#xff09;&#xff0c;具体如下&#xff1a; 1、国产CPU发展历程回溯 2、飞腾&#xff1a;PK生态的主导者 3、鲲鹏&#xff1a;快速崛起的领导者 …

关于在ubuntu下配置AMD显卡驱动的总结

同样先卸载先前版本 代码:sudo sh /usr/share/ati/fglrx-uninstall.sh代码:sudo apt-get remove --purge fglrx fglrx_* fglrx-amdcccle* fglrx-dev*重启 代码:sudo reboot下载驱动&#xff0c;右边直接有ubuntu32位和64位驱动链接&#xff1a;http://support.amd.com/en-us/do…

Python3中的hasattr()

Python3已经将此内置函数移除了。查阅Python v3.0 documentation发现可以使用 hasattr(object, name)内置函数来完成callable的功能&#xff0c;方式如下&#xff1a; 3.0之前&#xff1a;callable(func) 3.0之后&#xff1a;hasattr(func, __call__) 这两者结果是相同的。 转载…

计算机结构简图

北桥,南桥是主板上芯片组中最重要的两块了.它们都是总线控制器.他们是总线控制芯片.相对的来讲,北桥要比南桥更加重要.北桥连接系统总线,担负着cpu访问内存的重任.同时连接这AGP插口,控制PCI总线,割断了系统总线和局部总线,在这一段上速度是最快的.南桥不和CPU连接通常用来作I/…

原始Ajax

var $ { request:function(obj){ //1. 获得xmlhttprequest对象兼容性处理 var xhr; //undefined未定义 try{ //主流浏览器里面的ajax对象 xhr new XMLHttpRequest(); }catch(e){ //IE低版本的浏览器 xhr new ActiveXObject("Microsoft.XMLHTTP"); } //2. 建立和…

Servlet 与 Ajax 交互一直报status=parsererror

Servlet 与 Ajax 交互一直报statusparsererror 原因&#xff1a;servlet 返回的数据不是 Json 格式 1、JS代码为&#xff1a; 1 var jsonStr {clusterNum:2,iterationNum:3,runTimes:4};2 $.ajax({3 type: "post",4 //http://172.2…