800. Similar RGB Color class Solution { int getn(int k){ return (k+8)/17; } string strd(int k){ char ret[3]; if(k<=9){ ret[1]=char(k+'0'); ret[0]=char(k+'0'); } else{ ret[0]=char(k-10+'a'); ret[1]=char(k-10+'a'); } ret[2]='\0'; return string(ret); }…
http://www.lydsy.com/JudgeOnline/problem.php?id=2959 用两个并查集维护双联通分量的编号和合并. #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> #include<queue> using namespace std; ; int n,m; ]={},si…
True Liars Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 16338    Accepted Submission(s): 5724 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3038 Description: After having drifted about in a…
题目传送门(内部题135) 输入格式 第一行包含一个整数$T$,表示数据组数. 对于每组数据,第一行两个整数$h,w$,表示棋盘大小. 接下来$h$行,每行一个长度为$w$的字符串,每个位置由为$o,x,e$中一个.如果这个位置为$e$表示没有硬币,如果是$o$表示正面朝上,否则表示反面朝上. 输出格式 共$T$行,每行一个整数表示小$M$的分数. 样例 样例输入: 12 5exexexeoex 样例输出: 数据范围与提示 $10\%$的数据,保证答案都为$0$或$1$. $30\%$的数据,保…
721. 账户合并 给定一个列表 accounts,每个元素 accounts[i] 是一个字符串列表,其中第一个元素 accounts[i][0] 是 名称 (name),其余元素是 emails 表示该帐户的邮箱地址. 现在,我们想合并这些帐户.如果两个帐户都有一些共同的邮件地址,则两个帐户必定属于同一个人.请注意,即使两个帐户具有相同的名称,它们也可能属于不同的人,因为人们可能具有相同的名称.一个人最初可以拥有任意数量的帐户,但其所有帐户都具有相同的名称. 合并帐户后,按以下格式返回帐户:…
有木有非常吊 加强 加强版   啊  ,看了都不敢做了   .后来先做了食物链这个我还是看过的.但还是A不掉,没明确神魔意思 .总而言之.大牛的博客是个好东西.我就那么看了一下,还是不懂怎莫办啊,哎,就那样就A掉了. ... . .. 今天我们来谈一下这个并查集的删除操作,依据我对大牛的理解啊,这个并查集的删除操作并非把原来的节点删除掉,而是用一个替身替掉,如今的这个点仅仅是用作桥梁的作用,即是没用的,del  ,,,del  ,...删除,那些被删掉的就从n開始给他们一个地址,然后即例如以下代…
思路:设r(x)表示节点x与根结点的关系,px表示x的根结点.记录每个节点与其父节点的关系,就能很方便知道每个节点以及和它的父节点的关系. struct node{ int par; //父亲节点 int rel; //与父节点的关系 }a[maxn]; //关系:0表示同类, 1表示父节点吃子节点, 2表示子节点吃父节点 现在给定节点x和y,它们的关系是rel,如何判断这句话是真还是假? 利用find函数找到它们的根结点px和py,以及它们和各自根结点的关系r(x)和r(y),如果px!=py…
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=66964#problem/E 题目思路:主要有两种思路:1.带权并查集2.挑战程序上的算法(个人理解也算是带权并查集的一种,但是更易懂,思路更清晰) (介绍挑战上的算法) 将整个数组开到3倍,分3个组,每个组之间的关系确定x,y的关系(判定假话),x,y的关系确定合并哪些组的元素 挑战程序P88 #include <iostream> #include <cstdio&…
Segment set Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3699    Accepted Submission(s): 1394 Problem Description A segment and all segments which are connected with it compose a segment set…
Description 现在我们的手头有N个软件,对于一个软件i,它要占用Wi的磁盘空间,它的价值为Vi.我们希望从中选择一些软件安装到一台磁盘容量为M计算机上,使得这些软件的价值尽可能大(即Vi的和最大). 但是现在有个问题:软件之间存在依赖关系,即软件i只有在安装了软件j(包括软件j的直接或间接依赖)的情况下才能正确工作(软件i依赖软件j).幸运的是,一个软件最多依赖另外一个软件.如果一个软件不能正常工作,那么它能够发挥的作用为0. 我们现在知道了软件之间的依赖关系:软件i依赖软件Di.现在…