自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Segment set(普通并查集+计算几何两线段相交与否)

hdu1558 判断两线段相不相交贴的模板,暂时没搞懂#include #include #include #include #include #include #include #include #include #include #include using namespace std;int f[1001];typedef struct point{

2015-07-31 16:56:15 306

原创 A Bug's Life(带权并查集)

hdu1829 这是一道比较简单 好理解的并查集#include #include #include #include #include #include #include #include #include #include #include using namespace std;int f[2001],r[2001];int n,k;int findfa(in

2015-07-31 16:52:25 361

原创 食物链(带权并查集)

Description动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这N个动物所构成的食物链关系进行描述: 第一种说法是"1 X Y",表示X和Y是同类。 第二种说法是"2 X Y",表示X吃Y。 此人对N个动物,用

2015-07-31 16:45:43 316

原创 HDU1828 Picture 周长并 线扫描

题意:给出n个矩形,求他们的轮廓的周长.    以这个图为例 我们只看红色的(横线)不看竖线,他讲的是只扫描一次的做法。  第一次求出的部分是第一次覆盖的长度。  第二次求出的为什么会少了中间那部分.那是因为插入的新线段覆盖了第一条,此时线段树返回的长度是新的那一条的   长度,插入第二条横线后,得到的总的长度-之前总的长度  第三次因为是矩形的上边,是出边,该线段的标记c

2015-07-29 09:46:38 325

原创 HUD 1255 面积覆盖 线扫描

求面积交#include #include #include #include #include #include #include #include #include #include #include using namespace std;#define maxn 11005struct line{ double x1,x2,h; int c;

2015-07-29 09:18:26 252

原创 HDU1542 Atlantis(面积并)

题意:给出n个矩形的 左下角和右上角坐标,计算他们覆盖的面积。#include #include #include #include #include #include #include #include #include #include #include using namespace std;#define maxn 11005struct line{

2015-07-29 08:59:24 320

原创 HDU3746 Cyclic Nacklace(KMP_Next的应用)

题意:给一个字符串,求再在后面添加几个字符串可以使得整个字符串循环。#include #include #include #include #include #include #include #include #include #include #include using namespace std;#define maxn 200000+5int Next[ma

2015-07-27 21:11:28 284

原创 HGU3336 Count the string (KMP Next数组的应用)

题意:给出一个字符串,求它所有前缀在此字符串中出现的次数。分析:一看,肯定是kmp中 next[i] 求以下标i-1结尾的字符串,使得最长的(前缀==后缀)的长度。很好想到,当next非零时,肯定和前缀有匹配,自然ans+1。当一个前缀出现多次,当next[j]!=0,ans+1,j=next[j],一直往前跳,直到next[j]为0,如果不为0,ans+1。这里比较难理解,next[i]表示

2015-07-27 11:01:07 332

原创 Simpsons’ Hidden Talents(KMPnext[]的应用)

题意:给两个字符串,求最大的第一字符串的前缀等于第二个字符串的后缀分析:先把两个字符串连接起来,再求出Next[]。这样next[]数组的最后一位存的就是ans.但是要考虑两个字符串求前后缀发生越界的情况,如图,假如这种情况,两个字符串发生了越界,。此时l1~r1==l2~r2,l1~z1==l2~z2,l2~z2==z3~r2。同时,z2~r1肯定等于z3~r2。=>l1~z1==z3~

2015-07-25 09:26:51 265

原创 KMP模板

#include #include#includeusing namespace std;char s[1000001];int next[10005];//next[i]  0-i字符串最大匹配数/** next[]的含义:x[i-next[i]...i-1]=x[0...next[i]-1]* next[i]为满足x[i-z...i-1]=x[0...z-1]的

2015-07-25 09:20:56 244

原创 UVA11997 K Smallest Sums(并归,优先队列)

题意:有k行数,每行k个数,从每行中抽出一个数,相加得到sum, 求这样的sum的前k小数,并输出。分析:大白书(刘汝佳 著)优先队列章节,假设现在有两行A,B(从小到大排序),求前k小,则:A1+B1A2+B1A3+B1...........  用一个优先队列来维护前k小的值,先把(A1+B1),(A2+B1),(A3+B1)...放入队列,但这k个数不一定是前k

2015-07-23 23:07:54 382

原创 SPOJ GCPC11J Time to live(求一棵树的直径(两个BFS))

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=83468#problem/D题意:给出一棵树,让你找出一个节点,使得所有点到这个节点的最大距离最小分析:可以想到,若是找到这棵树的最大深度length,再除2,即是结果,若是length是奇数,ans+1; 也可以 (length+1)/2,不管奇数偶数。#include #

2015-07-21 23:04:51 531

转载 POJ 1185 炮兵阵地(状态压缩dp)

1. 为何状态压缩:    棋盘规模为n*m,且m≤10,如果用一个int表示一行上棋子的状态,足以表示m≤10所要求的范围。故想到用int s[num]。至于开多大的数组,可以自己用DFS搜索试试看;也可以遍历0~2^m-1,对每个数值的二进制表示进行检查;也可以用数学方法(?) 2. 如何构造状态:    当然,在此之前首先要想到用DP(?)。之后,才考虑去构造

2015-07-21 20:39:51 339

原创 HDU 1281 棋盘游戏(二分匹配,关键点)

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=69427#problem/EDescription小希和Gardon在玩一个游戏:对一个N*M的棋盘,在格子里放尽量多的一些国际象棋里面的“车”,并且使得他们不能互相攻击,这当然很简单,但是Gardon限制了只有某些格子才可以放,小希还是很轻松的解决了这个问题(见下图)注意不能

2015-07-21 15:47:43 423

原创 HDU 3530 Subsequence(单调队列维护)

题意:给n个数的序列,子序列(连续的,题意描述得不是很清楚),要求它的子序列  m分析:和这道题类似POJ 2823Sliding Window分析题意可知,其实就是求一个区间它的最值满足该条件,且该区间最长,则用两个单调队列维护此时序列的最大值q1和最小值q2。现态假设  m加入下列一个点:①该点加入两个队列后会不会存在 q1-q2q1

2015-07-21 10:14:58 468

原创 基因匹配Match(最长公共子序列) NlongN

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82285#problem/F题意:两个串,求最长公共子序列,有n个数,每个数都出现5次。设为a串和b串 分析:首先n。          我们可以把a串作为模式串,b串作为查找串。由于这里每个数只有5次,我们可以先存下a串中的每个数在b串中的5个数的位置,用f[a[i]][j]

2015-07-18 21:19:29 1380

原创 A==B?(java大数做高精度)

import java.math.BigDecimal;import java.math.BigInteger;import java.util.Scanner;public class MyMain { public static void main(String args[]) { Scanner sc=new Scanner(System.in); wh

2015-07-18 10:20:56 389

原创 UVA 10635 Prince and Princess(最长上升子序列)

题意:有n*n的格子用1-n*n不同的数表示,第一个人输入p+1长度的数,第二个人输入q+1个不同的数,问他们最长公共子序列最长是多长。 分析:由于(0那么怎么求这个最长上升子序列呢?假设求1,4,6,3,5,7,最长上升子序列dp[i]:表示长度为i,最小的那个数①加入1,dp[1]=1;②加入4,dp[2]=4;③加入6,dp[3]=6;④加入3,dp[2]=3;⑤加入5,dp

2015-07-17 22:43:38 425

原创 志愿者选拔(单调队列)

Description世博会马上就要开幕了,福州大学组织了一次志愿者选拔活动。 参加志愿者选拔的同学们排队接受面试官们的面试。参加面试的同学们按照先来先面试并且先结束的原则接受面试官们的考查。 面试中每个人的人品是主要考查对象之一。(提高人品的方法有扶老奶奶过街,不闯红灯等) 作为主面试官的John想知道当前正在接受面试的同学队伍中人品值最高的是多少。于是他请你帮忙编写一个

2015-07-16 20:40:03 448

原创 简单BFS ZOJ 1649 Rescue

题意:r->a用时最少,经过'x'需2s,经过'.'1s.思路:用BFS,但是,显然,走的步数少并不代表用的时间少。因此,标记走到每个点用的最少时间,若下次要走到该点,必须比该点用时更少(同时更新该点)。#include #include #include #include #include #include #include #include #include #inclu

2015-07-15 17:06:32 391

空空如也

空空如也

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

TA关注的人

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