[FZYZOJ 1249] 水果堆

P1249 -- 水果堆

时间限制:1000MS

内存限制:131072KB

Description

grh神犇是个非常牛B的人,他看到前几周zgg的ACM赛里面的题目“抄写程序”,立马知道是合并果子,觉得太没难度,就想自己来合并果子。

于是,他随手从书包中掏出了凤梨,火龙果,杨桃,荔枝,西红柿,汤圆(汤圆也是水果?)等等N个水果…他给每个水果都标上了序号,从1到N。

有时候他会把标号为Q,P的水果所在的水果堆合成到一起,成为一堆。(尽管它们可能已经在同一堆里了),有的时候他因为太强,又忘了自己做过什么,于是他就想知道,标号为Q,P的水果是不是在同一堆里。

Input Format

输入第一行是两个整数N,M(1 <= N,M <= 200000),N表示有多少个水果,M表示他做了多少事。

接下来的M行中,每行包含三个整数T,Q,P,如果T=1,那么表示他把标号为Q和P的水果合成一堆。如果T=2,那么他表示想知道,标号为Q和P的水果是否在同一堆。

Output Format

输出包括若干行。输入每出现一个T=2的操作,输入一行。如果Q和P在同一堆,那么输出same,否则输出diff。

Sample Input

4 5
2 1 3
1 1 3
2 1 3
1 3 4
2 1 4

Sample Output

diff
same
same

Hint

对于20%的数据,保证有n,m<=100;

对于30%的数据,保证有n,m<=1000;

对于全部的数据,保证有n,m<=200000。

【题解】就是很裸的并查集的题目啊。。。

博主太懒不想写代码了

时间: 2024-10-29 19:13:35

[FZYZOJ 1249] 水果堆的相关文章

[FZYZOJ 1247] RP堆

P1247 -- RP堆 时间限制:1000MS 内存限制:131072KB Description 众所周知,zgg天天DR,所以他总是无私地将体内的RP贡献给别人. 但是我们都想知道一个问题,就是为什么能飞使终能保持体内的RP平衡与超高的RP值呢. 原来,zgg体内的RP有一种特殊的存储方式,不同于我们一般人的随机分布,存取困难. 他体内有一个稳定的RP堆,他将各个RP分子从1到N编号,根节点的编号为1,如果某个RP分子X不是叶子节点,那么它的左儿子为RP分子2X,右儿子为RP分子2X+1.

有钱了人民币为你服务,没钱你为人民币服务

有钱了人民为你服务,没钱你为人民服务. 即使生活有一千个理由让你哭,你也要找到一个理由让自己笑,因为这就是人生,我们能做的只是让自己更加坚强,成为更好的自己. 你有你的判断标准 我有我的选择方式 沉默低调 皮实 柔韧 所以低调 不亲口说出来(人怕出名 猪怕肥) 缓冲(脏是因为忘了洗) 感情是无价的 无价的东西 说值钱它就值钱 说不值钱它就一钱不值 所以感情是世界上最重要的东西 也是世上最轻的东西 一件事重要的不是现在怎样 而是将来它会怎样 看清了它的将来 坚定不移的就去做吧 人的能力是在实践中锻

C语言合并果子-贪心算法

/*有几堆水果.每次你把两堆东西移到一起,形成更大的一堆.每个动作消耗的能量是两堆水果的总重量.如何把所有的水果堆在一起,消耗最少的能量?*/ 以上是题目,该题首先要读懂题目,每次移到一起以后都要将数组重新排序再次移动. 1 #include<stdio.h> 2 3 int main(){ 4 5 int t, n, m = 0; 6 int i = 0, j = 0; 7 scanf("%d",&n); 8 int sum[n]; 9 10 for(i = 0;

题目1107:搬水果

题目描述: 在一个果园里,小明已经将所有的水果打了下来,并按水果的不同种类分成了若干堆,小明决定把所有的水果合成一堆.每一次合并,小明可以把两堆水果合并到一 起,消耗的体力等于两堆水果的重量之和.当然经过 n‐1 次合并之后,就变成一堆了.小明在合并水果时总共消耗的体力等于每次合并所耗体力之和. 假定每个水果重量都为 1,并且已知水果的种类数和每种水果的数目,你的任务是设计出合并的次序方案,使小明耗费的体力最少,并输出这个最小的体力耗费值.例如有 3 种水果,数目依次为 1,2,9.可以先将 1

分水果 DP(2015年 JXNU_ACS 算法组暑假第一次周赛)

分水果 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submission(s) : 16   Accepted Submission(s) : 7 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description 给定n个水果,每个水果都有一个重量,分成两堆,怎么分才使得分得的重量

题目1107:搬水果(哈夫曼树)

题目1107:搬水果 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:6189 解决:2178 题目描述: 在一个果园里,小明已经将所有的水果打了下来,并按水果的不同种类分成了若干堆,小明决定把所有的水果合成一堆.每一次合并,小明可以把两堆水果合并到一起,消耗的体力等于两堆水果的重量之和.当然经过 n‐1 次合并之后,就变成一堆了.小明在合并水果时总共消耗的体力等于每次合并所耗体力之和. 假定每个水果重量都为 1,并且已知水果的种类数和每种水果的数目,你的任务是设计出合并的次序方案,使

JavaScript栈和堆内存,作用域

1.栈 stack"和"堆 heap": 简单的来讲,stack上分配的内存系统自动释放,heap上分配的内存,系统不释放,哪怕程序退出,那一块内存还是在那里.stack一般是静态分配内存,heap上一般是动态分配内存. 2.基本类型和引用类型: 基本类型:存放在栈内存中的简单数据段.数据大小确定,内存空间大小可以分配. 引用类型:存放在堆内存中的对象,变量中实际保存的是一个指针,这个指针指向另一个位置.每个空间大小不一样,要根据情况开进行特定的分配. 详见<Javas

堆内存、栈内存分析图

堆内存保存的是真正的数据,简单说是对象的属性信息 栈内存保存的是对内存的地址,简单理解对象名称

JVM学习(2)——技术文章里常说的堆,栈,堆栈到底是什么,从os的角度总结--转载http://www.cnblogs.com/kubixuesheng/p/5202561.html

转载自---http://www.cnblogs.com/kubixuesheng/p/5202561.html 俗话说,自己写的代码,6个月后也是别人的代码--复习!复习!复习!涉及到的知识点总结如下: 堆栈是栈 JVM栈和本地方法栈划分 Java中的堆,栈和c/c++中的堆,栈 数据结构层面的堆,栈 os层面的堆,栈 JVM的堆,栈和os如何对应 为啥方法的调用需要栈 属于月经问题了,正好碰上有人问我这类比较基础的知识,无奈我自觉回答不是有效果,现在深入浅出的总结下: 前一篇文章总结了:JV