自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 HDU 2473 Junk-Mail Filter

带删除操作的并查集,在于并查集各种操作的深入了解,由于存在删除操作,为了使删除操作简单需要在初始化的时候对每个相应的节点创建一个相应的虚拟父节点,然后删除的操作的时候总是删除相应的子节点,是删除操作变的简单,期初自己是对每个父节点利用set维护其相应的子节点,让后在合并和删除的时候进行相应的维护,想法很正确但是代码提交后栈溢出,没找到错在哪了,于是果断采用的别的方法进行求解~~~STA

2013-11-27 19:21:55 544

原创 HDU 3367

贪心+并查集~~~#include #include #include #include #include #include #define inf 0x3f3f3f3f#define INF 0x3f3f3f3f3f3f3f3fLLusing namespace std;const int MAXN = 10010;const int MAXM = 10001

2013-11-27 16:08:29 581

原创 HDU 4081 Qin Shi Huang's National Road System

题目大意为: 去掉一条生成树上的边,使得这条边想对应的p之和比上生成树中剩余边的权值之和最大...要求解此题我们首先应该明确一个观念,那就是固定一条边,如何求得在该边固定情况下的最小生成树。在此我们需要借助求解次小生成树的思想:首先求得最小生成树,对于固定边,我们只需要删除最小生成树上的路径上的最长边,然后将加入即可。 u-->v路径上的最长边可以在求解最小生成树的过程中进行相应的求解

2013-11-25 21:07:10 492

原创 HDU 2489 Minimal Ratio Tree

枚举加最小生成树~~~#include #include #include #include #include #include #define inf 1000000//#define inf 0x3f3f3f3f#define INF 0x3f3f3f3f3f3f3f3fLLusing namespace std;const int MAXN = 20;

2013-11-25 20:00:30 465

原创 HDU 4750 Count The Pairs

离线并查集,求解思路和HDU 3938是相同的。。。#include #include #include #include #include #include #include #include #define inf 0x3f3f3f3f#define INF 0x3f3f3f3f3f3f3f3fLLusing namespace std;const int

2013-11-23 19:05:47 622

原创 HDU 3938 Portal

离线并查集~~~#include #include #include #include #include #include #include #include #define inf 0x3f3f3f3f#define INF 0x3f3f3f3f3f3f3f3fLLusing namespace std;const int MAXN = 10010;con

2013-11-23 15:10:03 527

原创 HDU 3926 Hand in Hand

题目描述的意思判断两个给定的特殊图是否同构?有关图同构的定义参照百度百科:图论当中的术语,假设G=(V,E)和G1=(V1,E1)是两个图,如果存在一个双射m:V→V1,使得对所有的x,y∈V均有xy∈E等价于m(x)m(y)∈E1,则称G和G1是同构的,这样的一个映射m称之为一个同构,如果G=G1,则称他为一个自同构.图同构的算法便是根据上述的性质进行求解的,反正我是不会,但是对求解

2013-11-23 13:48:23 632

原创 HDU 1811 Rank of Tetris

并查集(处理等号)+拓扑排序#include #include #include #include #include #include #include #define inf 0x3f3f3f3f#define INF 0x3f3f3f3f3f3f3f3fLLusing namespace std;const int MAXN = 10010;const i

2013-11-23 12:57:15 608

原创 HDU 1598 find the most comfortable road

题意:找到从起点到终点的一条路,而且这条路经过的边的最大权值与最小权值之差最小,输出这个差.起初看到这题目的时候感觉这题目n#include #include #include #include #include #include #define inf 0x3f3f3f3f#define INF 0x3f3f3f3f3f3f3f3fLLusing na

2013-11-23 10:30:17 584

原创 LA 3211 Now or Later

最小值最大问题:二分+2SAT判定~~#include #include #include #include #include #include #include using namespace std;const int MAXN = 2020;const int INF = 0x3f3f3f3f;inline int max(int a, int b){

2013-11-16 09:59:50 666

原创 Ubuntu 12.04.3 LTS 安装 Qt5.1.1

参考文档如下:http://blog.csdn.net/astonqa/article/details/9767043http://www.qtcn.org/bbs/apps.php?q=diary&uid=139371&a=detail&did=14551.进入http://qt-project.org/downloads下载 Qt 5.1.1 for Linux32-bit,得

2013-11-11 21:21:19 932

原创 生成树计数问题

相关生成树计数的问题可以参考周冬的论文...SPOJ HIGHHighways#include #include #include #include #include #include #define zero(x) (((x)>0?(x):(-x))<1e-15)using namespace std;const int MA

2013-11-10 10:02:22 706

原创 POJ 2349 Arctic Network

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=33862#problem/K最小生成树变形问题, 题目大意就是求解最小的D使得大于D的边被删除之后剩余图的连通分量的个数小于等于S.我们容易知道删除最小生成树上大于第S长的边删除恰好可以将该最小生成树分解成S个连通分量,且每个连通的分量内的距离均小于等于D.我想了一个大胆的想法一个图中

2013-11-09 10:10:30 532

原创 SGU 323 Aviamachinations

最小生成树的经典题目.http://acm.hust.edu.cn/vjudge/contest/view.action?cid=33862#problem/H首先容易知道我们必须从小到大枚举航空公司,然后对该航空公司占有的边直接加入到生成树中,然后为了保证该生成树的边的权值总和最小,因此剩余的边只能从最小生成树的边中取,因此我们在预处理的时候需要求解一次最小生成树,保存最小生成树上的

2013-11-08 19:51:22 764

原创 ZOJ 2760 How Many Shortest Path

题目大意为:求解不相交的最短路径的条数,在这里每条边只能经过一次.自己首先想到了最小费用最大流,因为最小费用最大流在增广的时候总是选择费用最小的增广路进行增广,我们记录第一次增广时的费用,然后记录最小费用最大流在增广的时候能够增广多少次,然后理所当然的交了上去WA. 后来自己画了一个图发现,最小费用最大流在增广的时候,边的选择是任意的,由于一次增广导致一条边被用了,然后该条边对这条最短路无所谓

2013-11-07 22:46:21 520

原创 UESTC 1546 Bracket Sequence

这题掉了一句话,调了N久~~~#include #include #include #include #include using namespace std;const int MAXN = 100010;int setv[MAXN<<2], XOR[MAXN<<2], sum[MAXN<<2], maxv[MAXN<<2], minv[MAXN<<2];int

2013-11-06 20:25:31 737

原创 UESTC - 1425 Another LCIS

线段树的题目~~#include #include #include #include #include using namespace std;const int MAXN = 100010;int max_len[MAXN<<2], lcis[MAXN<<2], rcis[MAXN<<2], lleft[MAXN<<2], rright[MAXN<<2], add

2013-11-06 17:01:36 685

原创 POJ 3225 Help with Intervals

这个题目就两个关键点,搞明白就没什么问题:1.关于集合运算的推导规约,知道集合是什么东西就一定会推导!      U:把区间[l,r]覆盖成1    I:把[-∞,l)(r,∞]覆盖成0        D:把区间[l,r]覆盖成0    C:把[-∞,l)(r,∞]覆盖成0 , 且[l,r]区间0/1互换    S:[l,r]区间0/1互换2.倍化区间处

2013-11-06 14:01:38 544

原创 POJ 2528 Mayor's posters

本题的难点在于离散化,对于离散化由于做过这方面的题目做的并不是很多,其实离散化的目的就是使得给出数据便于处理的一种方法,从原始到目标数据的一一映射,相比于原始数据目标数据更容易处理,且目标数据仍然满足原始数据满足的一些条件,离散化的过程中往往用到排序,关键是怎样建立这种一一映射的关系,还得做几道相关的题目理解一下,本题的离散化也是非常的经典,具体看程序吧...#include #

2013-11-05 10:09:32 587

原创 UVA - 11992 Fast Matrix Operations

白书上的例题,维护R棵线段树~~~#include #include #include #include #include #include using namespace std;const int MAXN = 100010;const int INF = 0x3f3f3f3f;int addv[21][MAXN<<2], setv[21][MAXN<<2], su

2013-11-04 21:46:29 621

原创 HDU 4521 小明系列问题——小明序列

此题是属于最长上升子序列的一个变种问题,增加的限制条件为:最长上升子序列相邻的两项在原序列中下标之差要大于d,解决此问题的第一种方法便是对O(nlogn)的LIS算法进行变形,但由于此题的元素取值范围为10^5,我们便可以在求解的过程中用线段树维护:对于j,在1-->j-d-1范围内dp值,线段树的叶子节点的值表示以当前节点为尾且满足上述约束条件的dp值,这样在状态转移时每次查询的时间复杂度由O(

2013-11-04 11:48:43 670

原创 UVALive - 3938 "Ray, Pass me the dishes!"

白书上讲的已经很明白了....#include #include #include #include #include #include #include #include #include using namespace std;const int MAXN = 500010;typedef long long ll;ll max_sum[MAXN<<2

2013-11-04 09:11:16 762

原创 CodeForces 19D Points

离散化+线段树~~~#include #include #include #include #include #include #include #include using namespace std;const int MAXN = 200010;struct Point{ int x, y; Point() {} Point(int t

2013-11-01 20:36:42 1187

原创 HDU 4288 Coder

http://acm.hdu.edu.cn/showproblem.php?pid=4288这题思路是参考别人的,线段树节点存储的信息: len[rt]:相应的区间内的元素的个数 mod[rt][5]:相应的取模为0,1,2,3,4的和,另外此题还需要相应的离散化~~~#include #include #include #include #include using nam

2013-11-01 16:19:36 573

原创 反素数

参见百度百科:http://baike.baidu.com/link?url=6CBrDsXMVeF3zmNwL_ugd-OEeVuVyxRFJVRnt59BJxSPiLVAzc7dEqvlxhl4topCBRE5FjeRoO-JNO3HRLU1Da其中反素数有两个重要的性质:性质一:反素数的素因子分解中素因子必须保证是从小到大连续的.  PS:因为如果不连续我们总能构造一个比其小的数

2013-11-01 11:00:42 702

原创 POJ 2886 Who Gets the Most Candies?

线段树+反素数反素数:http://baike.baidu.com/link?url=6CBrDsXMVeF3zmNwL_ugd-OEeVuVyxRFJVRnt59BJxSPiLVAzc7dEqvlxhl4topCBRE5FjeRoO-JNO3HRLU1Da首先利用反素数求解出1-->n范围内的数p满足p的约数的个数最多,然后我们便需要模拟出队操作,其中出队操作可以用线段树在O(log

2013-11-01 10:13:14 588

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除