随笔分类 -  数据结构

摘要:Doom Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 1401 Accepted Submission(s): 368 Problem 阅读全文
posted @ 2017-04-29 21:05 gongpixin 阅读(271) 评论(0) 推荐(0)
摘要:Calculator Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 521 Accepted Submission(s): 170 Pro 阅读全文
posted @ 2017-04-29 21:04 gongpixin 阅读(358) 评论(0) 推荐(0)
摘要:1012: [JSOI2008]最大数maxnumber Description 现在请求你维护一个数列,要求提供以下两种操作:1、 查询操作。语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值。限制:L不超过当前数列的长度。2、 插入操作。语法:A n 功能:将n加上t,其 阅读全文
posted @ 2017-04-24 16:22 gongpixin 阅读(238) 评论(0) 推荐(0)
摘要:d.n个村庄m条路,求最少修多少条路可以连通所有的村庄 s.并查集求出集合个数,减1即为答案 c. #include<iostream> #include<stdio.h> #include<string.h> using namespace std; #define MAXN 1024 int f 阅读全文
posted @ 2015-12-03 20:16 gongpixin 阅读(186) 评论(0) 推荐(0)
摘要:链接:线段树求矩形面积并 扫描线+离散化1、给定平面上若干矩形,求出被这些矩形覆盖过至少两次的区域的面积.2、看完线段树求矩形面积并 的方法后,再看这题,求的是矩形面积交,类同。求面积时,用被覆盖2次以上的那一段乘以扫描线的距离即可,具体实现见代码。3、/*HDU 1255 覆盖的面积求矩形面积交(... 阅读全文
posted @ 2015-11-14 16:50 gongpixin 阅读(509) 评论(0) 推荐(0)
摘要:1、给了每条线段的颜色,存在颜色覆盖,求表面上能够看到的颜色种类以及每种颜色的段数。 2、线段树区间更新,单点查询。 但是有点细节,比如: 输入: 2 0 1 1 2 3 1 输出: 1 2 这种情况如果不处理,那么由于是检查点的颜色,会检查到0,1,2,3的颜色都为1,认为是一段连续的,就会输出 阅读全文
posted @ 2015-11-12 10:55 gongpixin 阅读(234) 评论(0) 推荐(0)
摘要:1、给出了一个序列,你需要处理如下两种询问。 "C a b c"表示给[a, b]区间中的值全部增加c (-10000 ≤ c ≤ 10000)。 "Q a b" 询问[a, b]区间中所有值的和。 "C a b c"表示给[a, b]区间中的值全部增加c (-10000 ≤ c ≤ 10000)。 阅读全文
posted @ 2015-11-11 20:04 gongpixin 阅读(232) 评论(0) 推荐(0)
摘要:题意:求坐标0到x间的点的个数思路:线段树,主要是转化,根据题意的输入顺序,保证了等级的升序,可以直接求出和即当前等级的点的个数,然后在把这个点加入即可。注意:线段树下标从1开始,所以把所有的x加1存储。#include#include#includeusing namespace std;#def... 阅读全文
posted @ 2015-08-18 12:37 gongpixin 阅读(329) 评论(0) 推荐(0)
摘要:题意:区间和思路:线段树#include#includeusing namespace std;#define MAXN 50005int ans;struct node{ int left,right,sum; int mid(){ return (left+right)... 阅读全文
posted @ 2015-08-18 11:35 gongpixin 阅读(240) 评论(0) 推荐(0)
摘要:题意:求坐标0到x间的点的个数 思路:树状数组,主要是转化,根据题意的输入顺序,保证了等级的升序,可以直接求出和即当前等级的点的个数,然后在把这个点加入即可。 注意:树状数组下标从1开始(下标为0的话会出错),所以把所有的x加1存储。 #include<iostream> #include<stdi 阅读全文
posted @ 2015-08-18 10:19 gongpixin 阅读(219) 评论(0) 推荐(0)
摘要:题意:区间和 思路:树状数组 #include<iostream> #include<stdio.h> #include<string.h> using namespace std; int n,c[50005]; int lowbit(int i){ return i&-i; } void upd 阅读全文
posted @ 2015-08-17 15:33 gongpixin 阅读(236) 评论(0) 推荐(0)
摘要:题意:给出点、边,判断是不是一棵树 思路:问题是如何判断是不是树? 我总结了一下,但不官方,正确性待验证。 1.入度<=1(根节点为0,其他为1) 2.不能有环 3.只有一个根节点 #include<iostream> #include<stdio.h> #include<string.h> usi 阅读全文
posted @ 2015-08-14 19:19 gongpixin 阅读(204) 评论(0) 推荐(0)
摘要:注:这道题思路很乱,先记下,日后理清 题意:给出一些节点,判断这些节点构成的是不是一棵树 思路:感觉很简单,但是思路又很乱,当时想的判断条件是: 1.入度不能大于1(树根为0,其他节点为1) 2.所有节点必须在一棵树中(判断所有节点是否在一棵树中) 3.在节点相连的时候,不能是同一棵树中的节点(否则 阅读全文
posted @ 2014-08-12 16:23 gongpixin 阅读(277) 评论(0) 推荐(0)
摘要:思路:直接用并查集,最后找到 0 所在的集合,把 集合中的 人数 输出即可 阅读全文
posted @ 2014-07-30 15:20 gongpixin 阅读(186) 评论(0) 推荐(0)
摘要:思路详见课本 P 213 思路:直接用并查集,最后看 p 和 q 是否 在一个 集合中 即可。属于同一集合,则 可以通信;否则失败。 阅读全文
posted @ 2014-07-29 12:05 gongpixin 阅读(248) 评论(0) 推荐(0)
摘要://思路详见课本 P 214 页 思路:直接用并查集,set [ k ] 存 k 的朋友所在集合的代表元素,set [ k + n ] 存 k 的敌人 所在集合的代表元素。 阅读全文
posted @ 2014-07-29 11:10 gongpixin 阅读(170) 评论(0) 推荐(0)