并查集
Cliu__
自己选择的路,就算跪着也要走完!
展开
-
洛谷P2814 家谱
查询祖先的题目,自然是要用到并查集了,不过在输入,数据的处理上要注意细节,名字的前面’# + ?’等字符显然是分类的,可以先输入一个字符,然后判断后分别处理。还有map关联两个字符串就可以了,不用再进行编号-字符的转换,并查集时一定要注意祖先的初始化。#include<iostream> #include<cstdio> #include<map> #include<cstring> using n原创 2017-07-21 17:57:59 · 373 阅读 · 0 评论 -
codevs 2546奇偶游戏
奇偶 【题目描述】 给定一个M格排成一行的储藏柜,每个格子能放一个物品;再给出N个条件,每个条件形同如下:A B odd/even,表示第A个格子到第B个格子之间(包括两端)放了奇数(odd)个物品或者偶数(even)个物品。 现在给出这N个条件,请你求出K,使得第1个条件到第K个条件全部能满足,而K+1不能满足。(K显然唯一) 【输入格式】 第一行一个整数M。 第二行一个整数N。 接原创 2017-08-03 15:54:05 · 554 阅读 · 0 评论 -
洛谷P1197 星球大战
解题思路: 由判断联通问题想到并查集维护,但是如果每次询问都删去点跑dfs的话,显然是超时的。于是想到反着做,将删点问题转化为连边。 首先先处理出全部询问的星球被毁的联通块数,然后倒着加入询问,将与询问点联通的点遍历,记录联通块数。 输出技巧,因为是倒着处理的,可以将结果压入栈中。用栈储存结果。 详见代码 #include<iostream> #include<cstdio>原创 2017-08-04 23:41:56 · 435 阅读 · 0 评论 -
2017日照夏令营 day1 t3 等式 洛谷P1955 程序自动分析
题目大意: 对于每一个式子,要么是 xi = xj 的形式,要么是 xi ̸= xj 的形式。现在我给出这 n 个式子,你要告诉我,这 n 个式子是否可能同时成立。解题思路: 1.首先,如果被要求相等的式子在后面被要求不相等显然是不合法的,不相等同理。 2.我们可以想到用并查集维护等式的关系,如果被要求相等就加入并查集,然后用并查集验证不等的情况,如果式子在相等的集合中,就输出NO。 3.小原创 2017-08-07 11:53:37 · 1815 阅读 · 0 评论