hdu 1811 并查集+拓扑排序

App inventor2通过蓝牙控制Arduino Uno LED开关 App inventer2控制Arduino Uno LED开关 如果学会这个小程序,大部分的手机通过蓝牙控制Arduino的功能都可以实现,这个小示例是通过蓝牙模块向Arduino发送"0"和"1",而其它功能要发送其它不同的字符串内容给Arduino. 所需硬件: Arduino Uno JDY-16 蓝牙模块(我的是蓝牙4.2版本) 草帽LED(可选) 手机(我用的是安卓,苹果手机应该也可以,最近其应用商店也有App inventor(AI)伴侣) 软件: Aduino IDE或者Platfom 阅读详情

链接

http://acm.hdu.edu.cn/showproblem.php?pid=1811

解析


先预处理,就是相等的时候,用并查集处理相等的点,之后在处理’>’、’<’的情况,若先不处理相等的情况,会出现建边错误。


代码

#include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
#include <algorithm>
using namespace std;
const int maxn = 100000+10;
int num;
typedef long long LL;
int fa[maxn];
vector<int>g[maxn];
int deg[maxn];
void init() {
    for (int i=0; i<maxn; i++)
        fa[i] = i, g[i].clear(), deg[i] = 0;
}


int Find(int x) {
    return x==fa[x]?x:fa[x] = Find(fa[x]);
}

void Union(int u, int v) {
    u = Find(u);
    v = Find(v);
    if (u != v)
        fa[u] = v;
}
int n;
void topsort(int &flag) {
    queue<int>q;
    for (int i=0; i<n; i++) {
        if (Find(i) == i && deg[i] == 0)
            q.push(i);
    }
    while (!q.empty()) {
        int u = q.front();
        num--;
        q.pop();
        if (!q.empty())
            flag = 1;
        for (int i=0; i<g[u].size(); i++) {
            int v = g[u][i];
            deg[v]--;
            if (deg[v] == 0) 
                q.push(v);
        }
    }
}
int U[maxn], V[maxn];
char c[maxn];
int main()
{
    int m;
    while (scanf("%d%d", &n, &m)!=EOF) {
        init();
        num = n;
        for (int i=0; i<m; i++) {
            scanf("%d %c %d", &U[i], &c[i], &V[i]);
            int u=Find(U[i]), v = Find(V[i]);
            if (c[i] == '=' && u != v)
                Union(u, v), num--;
        }

        for (int i=0; i<m; i++) {
            int u = Find(U[i]), v=Find(V[i]);
            if (c[i] == '>')
            {
                deg[v]++;
                g[u].push_back(v);
            }
            else if (c[i] == '<')
            {
                deg[u]++;
                g[v].push_back(u);
            }
        }
        int flag = 0;
        topsort(flag);
        if (num > 0)
            puts("CONFLICT");
        else if (flag == 1)
            puts("UNCERTAIN");
        else
            puts("OK");
    }
    return 0;
}
【STM32项目】基于Stm32c8t6-镭射激光打印机的设计(完整工程资料源码) 随着打印技术的快速发展,镭射打印技术也开始得到越来越广泛的应用。这种技术可以被用于在木材、塑料、皮革、织物等各种材料上进行图形打印,并且通常比传统机器更快、更准确和更灵活。 阅读详情

相关推荐

[MTK][Android P]如何去掉差分包中的preloader分区

最近碰到一个问题,在进行差分升级的时候,会因为某些原因导致preloader hash值不匹配,升级失败,所以需要在差分升级的时候不升级preloader。 解决的方法,就是在制作AB分区的差分升级包的时候,把目标zip解压出来,把ab_partitions.txt中的分区名去掉,同时把preloader.img去掉 修改如下: Project/build/tools/releasetool...

thonmin的专栏 1434

HDU-1811(拓扑排序+并查集)

题目链接-HDU1811 开始是在并查集专题看到的这道题,然后就往并查集方向想,考虑了各种加点都没有办法解决问题, 后面看题解发现这道题的主体应该是拓扑排序,并查集仅仅是用来帮助解决“=”这个符号,进行删点处理的 AC代码 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <map&gt

lifeforge的博客 372

DexProtector内存态匿名段检测绕过与dex重组技术

Dex文件是Android应用的核心执行单元,其结构规范(如header_item、class_def_item、code_item)决定了运行时加载与解析的底层逻辑。DexProtector通过将dex数据拆解为多个无文件名、受保护的内存匿名段(如[anon:dp_header]、[anon:dp_code]),规避传统基于文件特征或标准加载路径的检测机制。该策略依赖Android mmap内存管理与ART虚拟机对dex结构的刚性要求,形成可被观测的布局规律。理解其内存态组织原理,结合权限/大小/命名/内

weixin_30855761的博客 689

HDU 1811 Rank of Tetris (并查集 + 拓扑排序)

HDU - 1811 同时复习了一下二者 这道题需要分析的情况比较复杂了 1, 如何处理等于号 把所有相等的点利用并查集缩成一个点 2, 如何判定UNCERTAIN 当队列中同时存在两及以上个点时,此时无法判断二者哪个更厉害 3, 如何判定OK / CONFLICT 这个和普通的toposort一样了,只需要判断读出了多少个点即可 #include&lt;iostream&gt...

STOP 243

光谱分布、光谱辐射通量密度与不同时间段分布光谱(图示)

1、光谱分布图 2 太阳辐射能量图 3、不同时间段的太阳分布光谱图 4、不同波长的光的能量分布主要区域 5、不同波段的使用场景

maopig的专栏 2万+

Auto.js凉了之后,我们该用啥?AutoX.js保姆级环境搭建与第一个脚本实战(2024最新)

本文详细介绍了AutoX.js作为Auto.js替代方案的环境搭建与脚本开发实战指南。从技术生态现状分析到2024最新环境配置,再到编写第一个实用脚本和进阶调试技巧,帮助开发者无缝迁移至AutoX.js平台。特别适合需要手机自动化的JavaScript开发者,涵盖从基础到企业级应用的全套解决方案。

weixin_28737073的博客 389

【HDU 1811 Rank of Tetris】 并查集+拓扑排序

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1811 题目大意:给你一些ranking的比值关系,然后利用这些比值关系进行排名,让你确定是否能制作出排行榜,是的话就输出"OK",否则就请你判断出错的原因,到底是因为信息不完全(输出"UNCERTAIN"),还是因为这些信息中包含冲突(输出"CONFLICT")。如果信息中同时包含冲...

baidui8622的博客 128

【行业解决方案篇十五】【DeepSeek物流优化:车辆路径规划算法】

写完这篇技术解析,突然想起那位多绕150公里的王师傅——现在他的车载平板会实时显示"路径健康度",当偏离最优路线超过5%就自动报警。从节约算法到深度强化学习,从三维装载到时序预测,这些技术最终化作每辆货车少烧的1升柴油,每个快递小哥早回家的1小时。最后说个浪漫的事:系统曾为某偏远山区规划出一条穿越枫叶林的配送路线,不仅节省23公里,还成了网红打卡路线。原来物流优化的尽头,不仅是冰冷的数学,还有人间烟火气的温度。

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 292

HDU 1811 Rank of Tetris(并查集+拓扑排序)

HDU 1811 Rank of Tetris(并查集+拓扑排序) http://acm.hdu.edu.cn/showproblem.php?pid=1811 题意:给你N个点(编号从0到N-1)和M个关系,要你判断这个图的所有点的顺序是否可以全部确定.不过对于任意点的关系可能存在A>B或AB编号,那么A分数大). 分析:输出结果有三种情况:缺少信息(即可拓扑排序),OK(能全排列),冲突

code 2263

科研级YOLOv8 Neck革新:BiFPN双向特征金字塔赋能,让多尺度融合更高效的实战指南

在文件夹下新建BiFPN.py,将上述BiFPNLayer和BiFPN类的代码写入其中。这一步是为了让YOLOv8的代码架构能识别我们的自定义Neck模块。

m0_64661770的博客 153

【华为OD机试】真题A卷-Linux发行版的数量(Python)

【华为OD机试】真题A卷-Linux发行版的数量(Python):Linux操作系统有多个发行版,distrowatch.com提供了各个发行版的资料。这些发行版互相存在关联,例如Ubuntu基于Debian开发,而Mint又基于Ubuntu开发,那么我们认为Mint同Debian也存在关联。 发行版集是一个或多个相关存在关联的操作系统发行版,集合内不包含没有关联的发行版。给你一个nxn的矩阵isConnected,其中isConnected[i][i]=1表示第i个发行版和第j个发行版直接

u014481728的博客 943

hdu1811(并查集+拓扑排序)

HDU 1811

天道酬勤 514

AI编码规则:从提示工程到自动化,提升大模型生成代码质量

在软件工程领域,代码质量是保障软件可维护性、安全性和团队协作效率的核心。其背后遵循着从基础语法规范到架构设计原则的一系列工程实践。随着大语言模型(LLM)在代码生成任务中的广泛应用,如何确保AI生成的代码符合这些工程标准,成为一个关键的技术挑战。这涉及到将人类工程师积累的最佳实践,转化为机器可理解、可执行的明确约束。通过系统化的**编码规则**定义与集成,例如构建涵盖安全、风格、架构的多层次规则集,并将其融入**提示工程**或自动化工作流,可以显著引导AI产出更健壮、规范的代码。这种方法的价值在于,它能将模

weixin_42525189的博客 642

HDU 1811 Rank of Tetris (并查集预处理 + 拓扑排序)

链接 :  http://acm.hdu.edu.cn/showproblem.php?pid=1811 题目为中文。 可以考虑把rating相同的人放到一个集合里 集合里的人可以认为按照编号排序的,可以使用并查集。 预处理了之后可以考虑在同一个集合里不会出现两个不同的rating 出现即为矛盾 否则可以 以两个集合的根节点建边。 图建好了之后可以保证每个点里面的人的rating相

__ElemenT 633

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

HDU1811 并查集+拓扑排序

http://acm.hdu.edu.cn/showproblem.php?pid=1811  这题非常经典,花了一个下午才攻克.加强自己的基础吧. 利用并查集将 '='等号两边的数字并入到一个同一个集合,然后构建邻接表进行拓扑排序. 1: 元素出现相等又不想等的情况  矛盾 2: 有独立的点   不确定 3:拓扑排序时入度为 0 的点有多个   矛盾 4: 正确 #incl

计科菜鸟的天地. 1407

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

HDU1811 拓扑排序判环+并查集

HDU Rank of Tetris 题目:http://acm.hdu.edu.cn/showproblem.php?pid=1811 题意:中文问题就不解释题意了。 这道题其实就是一个拓扑排序判圈,我的博客里面其他几篇拓扑排序判圈的套路一样。但是这道题与他们不同的的是在大小关系里面存在一种 “=”的关系,这就意味的那些序号不同的点,实际上是一个点。共享入度和出度。我们可以通过并查集将他们...

weixin_30600503的博客 137

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

HDU 1811 Rank of Tetris(并查集+拓扑排序)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1811题意:给出n个点,m个关系。 u > v表示u的rating高于v的。 u < v表示u的rating低于v的。 u = v表示u的rating等于v的,则最后的排序按照标号大小来排。 问给定的关系,如果存在矛盾,输出CONFLICT,如果存在不确定的,输出UNCERTAIN;都没有输出OK。思路:

Where amazing happens 427

HDU 1811 Rank of Tetris(邻接表+拓扑排序+优先队列+并查集)

好题。 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1811 分析: #include <bits/stdc++.h> using namespace std; const int N = 10010; vector<int> mp[N]; int vis[N]; int a[N*2], b[N*2]...

成龙大侠的博客 227

hdu1811 Rank of Tetris(拓扑排序+并查集)

转自: https://blog.youkuaiyun.com/su20145104009/article/details/47337581 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1811 题目思路: 1:先建图,然后寻找入读为0的顶点 2:然后找到与这个顶点有关的边和点,删去边,点的入度-1 3.继续寻找下一个入度为0的顶点。。重复2. 对...

行云出岫 160

HDU1811 Rank of Tetris【拓扑排序+并查集】

Rank of Tetris Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 14982 Accepted Submission(s): 4227 Problem Description 自从Lele开发了Rating系统,他的Te...

海岛Blog 637

hdu1811 并查集+拓扑排序

Rank of Tetris 自从Lele开发了Rating系统,他的Tetris事业更是如虎添翼,不久他遍把这个游戏推向了全球。 为了更好的符合那些爱好者的喜好,Lele又想了一个新点子:他将制作一个全球Tetris高手排行榜,定时更新,名堂要比福布斯富豪榜还响。关于如何排名,这个不用说都知道是根据Rating从高到低来排,如果两个人具有相同的Rating,那就按这几个人的RP从高到低来排。 终...

爱草莓的团长的博客 323

hdu 1811 - 拓扑排序+并查集

解题思路:相等的要用并查集缩点,然后再拓扑排序一下就行。 代码: #include #include #include #include #include #include #include using namespace std; typedef long long ll; #define inf 0x3f3f3f3f const int mx = 1e4+5,mod = 1e9+7

过路人丶的博客 338

HDU 1811 并查集+拓扑排序

Rank of Tetris 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1811 Problem Description 自从Lele开发了Rating系统,他的Tetris事业更是如虎添翼,不久他遍把这个游戏推向了全球。 为了更好的符合那些爱好者的喜好,Lele又想了一个新点子:他将制作一个全球Tetris高手排行榜,定时更新,名堂要比福布斯富...

weixin_30951231的博客 151

HDU1811并查集+拓扑排序

题目 Rank of Tetris 自从Lele开发了Rating系统,他的Tetris事业更是如虎添翼,不久他遍把这个游戏推向了全球。 为了更好的符合那些爱好者的喜好,Lele又想了一个新点子:他将制作一个全球Tetris高手排行榜,定时更新,名堂要比福布斯富豪榜还响。关于如何排名,这个不用说都知道是根据Rating从高到低来排,如果两个人具有相同的Rating,那就按这几个人的RP从高到低来排。 终于,Lele要开始行动了,对N个人进行排名。为了方便起见,每个人都已经被编号,分别从0到N-1,并且编

陈颜的博客 213

【并查集+拓扑排序】【HDU1811】【Rank of Tetris】

题意:给你3种关系 A=B,A>B,A 解 1.读入数据先处理 =号 用并查集的祖先作为代表元素,其他相等点都 等于 跟这个点重叠。 再读入 ‘’ 来建图进行拓扑排序   2.将所有入度为0的点加入队列,再从队列中取出一个点,对其所连的边的入度进行-1,如果使入度=0则加入队列,直至队列为空 3.如果进入队列的点 小于 总点数(非N,N-重点) 则有矛盾 如果有队

学习之路 503

[HDU 1811]Rank of Tetris[拓扑排序][并查集]

题目链接:[HDU 1811]Rank of Tetris[拓扑排序][并查集] 题意分析: 给出的关系中是否存在矛盾,是否无法确定关系?两者都有,输出"矛盾"即可。 解题思路: 排名大小关系,很容易想到拓扑排序。问题在于,什么情况下是不确定的?当处理队列中有多个点时,就是不能确定的情况,因为后继操作可以选择多个不同的开始。需要注意的是本题存在等于的情况,这时需要将相等的两者合并,合并之后

闲停 518
上一篇: hdu 5772 最大权闭合图
下一篇: hdu 3926 并查集
nielaishan
博客等级 码龄11年 7粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值