自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 重拾博客

本来想写一篇总结的,但心中有的那些想法就是不能构成一张网,反正就是一句话:有梦想者不至于走投无路。占坑,以后开始写博客了。

2015-11-23 13:56:00 373

原创 hdu 1506

题意:求一段区间内的最大连续和,且该段区间的值要大于等于这段区间的最小值,并和 = 最小值*区间长度;解题思路:利用单调栈可求.

2014-09-25 23:52:19 474

原创 scu 3329

题意:现有n*m矩阵,求矩阵的最大矩形面积且该矩形只含0;解题思路:如何利用单调栈来解决这个问题?先将A[][]的0变为1,1变为0矩阵A[][],我们可以先来预处理每一行,第i行与第i-1行的关系如果A[i][j]是1,则A[i][j] += A[i-1][j]; 且对于每一行可以等价于下图:所以对于每一行我们都可以用单调栈来求每一个最

2014-09-25 23:40:57 580

原创 poj 2796(单调栈)

题意:求 一段区间范围内的和*这段区间的最小值最大输出最大值和该区间的左右端点解题思路:利用单调栈的思想O(n)(递增栈:栈底最小,栈顶遇到比他小的值出栈)(递减栈:  与上述相反)首先我们可以预处理前缀和定义一个结构体:struct node{int L,R;};//这里我们利用递增栈的思想我们先将第

2014-09-25 23:23:57 405

原创 hdu 4768(二分)

题意:学校内有N个社团,且由于该学校的人数众多,所以第i个社团分发广告时,是从Ai开始,到Ai+K*Ci解题思路:  二分,因为学生最多只能出现一个,所以当我们二分到一个区间时,统计该区间得到广告数的总数,如果是偶数且肯定在更大的区间内,如果是奇数,则再更小的区间内。注意:可能会超int,且Ci可能为零。#includ

2014-08-01 23:18:00 554

原创 poj 3122(二分)

题意:现在有N个饼,现在要给F+1(包括他自己)分相同大小的pie,求每个人最多能分多少,且每个饼至少要分>=1的pie解题思路:二分结果注意:无

2014-08-01 23:09:32 454

原创 poj 3518(二分)

题意:给你一个数,求离他再那俩个素数之间。如 12 就在 11 与13之间,求已得的两个素数的距离。解题思路:打素数表+二分注意:无

2014-08-01 23:05:30 467

原创 poj 3273(二分+贪心)

题意:有N天,第i天消耗money_i钱数,现在让你将这N天分成M份,且必须是连续的,求M份中消耗的和的最小值。解题思路:二分消耗结果,看是否能分成M份,如果M,份说明和太小,以此作为二分依据。注意:无#include #include #include #define MAXN0 100010

2014-08-01 22:57:56 442

原创 hdu 4190(二分)

题意:给你N个城市每个城市有相应的人口,有B个选票箱,要求每个城市都至少有一个选票箱,且先要使N个城市中得选票箱的票数的最大值最小化。解题思路:二分结果,求上界注意:无

2014-07-30 23:40:02 489

原创 hdu 1551(二分)

题意:给你N根网线,要求分成K等份,求能等分的最大长度解题思路:二分结果,求上界注意:注意精度

2014-07-30 23:27:07 554

原创 hdu 4893(线段树 成段更新+区间合并)

题意:给你大小为n的序列,该序列的初始值为0,有3种操作1.序列的第K个位置增加d2.询问一段区间的和3.将一段区间中得每一个数值都改为一个最小的fibonacci数,且该fibonacci数与区间内对应的值距离最近。解题思路:可以用线段树来解决该问题,且线段树中得域:lazy标记:表示当前某区间更新的标记sum:

2014-07-30 23:17:12 420

原创 hdu 2647(逆序拓扑排序)

题意:就是已经知道某个人得工资要大于另外一个人的工资,且每个人的基础工资为888,求发给所有人工资的总和最小。解题思路:利用逆拓扑排序,且得到一个入度为零的点时,他的工资是所有通往他的点的钱的最大值。注意:

2014-07-22 21:36:13 560

原创 hdu 4857(逆序拓扑排序)

题意:中文题解题思路:利用逆拓扑排序,然后在逆序输出即为答案。解释:首先我们建立逆向邻接表,进行对每个结点入度的计算,并用一个ans数组来存放最终的答案,且我们可以判断出的是当前结点入度为零的点出发的所有点都将在该点之后存放在ans数组中,且当我们遇到多个入度为零的的结点时,我们选择度数大的结点先放入到ans中,为什么?因为当这样我们能保证富裕的

2014-07-22 21:33:20 747

原创 zoj 3780(拓扑排序)

题意:有一个N’N的板,刚开始板上的所有元素都是其他颜色(不是黑,也不是白),且涂得方法有两种。1、涂一行,使该行的所有元素都变成黑色。2.、涂一列,是该列的所有元素都变成白色。解题思路:我们先考虑一下两种情况,就是有一行上得元素存在白点;有一列上得元素存在黑点。对于第一种情况,我们是否可以得到该行肯定事先涂黑的,然后在出现白点的列上,涂

2014-07-22 21:06:15 723

原创 hdu 4324(拓扑排序)

题意:有N个人,两两之间满足一种关系,比如 A love B 但是 B don‘t love A现在让你找一个三角,满足 (A,B and C) , A loves B, B loves C and C loves A.存在输出Yes ,否则输出No解题思路:可以用拓扑排序来判断当前有向图是否存在环,但是现在要求的环是满足三角关系,所以我们可以先用邻接表来存

2014-07-22 20:53:03 452

原创 hdu 1285(拓扑排序)

题意:中文题解题思路:利用优先队列来存储入度为0的点,这样可以维护字典序注意:这里求得是字典小最小(题目有歧义)

2014-07-22 20:38:13 621

原创 poj 2155 (二维线段树的成段更新)

题意:原矩形所有的元素都为0,改变一个子矩形 ,使该矩形上的0变1,1变0,询问某一点为多少。解题思路:利用二维线段树域值C来记录某个该矩形经过几次操作,然后在询问时算操作的总数即可,奇数为1,偶数相反。注意:无

2014-07-20 16:07:38 468

原创 hdu 4819 二维线段树点更新

题意:算一个子矩形内的最大和最小的平均值,并将该平均值更新到该子矩形的中心(该矩形的边为奇数)解题思路:利用二维线段树的点更新和query即可注意:二维线段树的在点更新时,需先更新局部的子区间,然后更新全局区间

2014-07-20 16:04:07 466

原创 hdu 1823 二维线段树点更新

题意:中文题解题思路:利用二维线段树的点更新即可注意:二维线段树的在点更新时,需先更新局部的子区间,然后更新全局区间

2014-07-20 15:56:38 455

原创 hdu 1542(扫描线+线段树区间更新)

题意:求矩形面积的并解题思路:先将x坐标离散化,扫描线从底向上扫描。所以通过步骤,我们只记录平行与x走的线段,定义结构体struct segment{int l,r,h;// l表示该选段的左坐标,r表示该线段的有坐标,h表示改线         段的高度bool flag;//表示该线段是所在矩形的上边还是下边};所以我

2014-07-20 15:53:44 459

原创 hdu 3308(区间和并)

题意:求最长上升子序列的最大长度。两种操作:Q: 某一段区间的最长上升子序列的最大长度为多少U: 某一点 = val解题思路:如果单单求最长上升子序列,我们可以通过dp,或者分治的思想来求。因为此处操作多,所以上述方法不可行。我们在线段树的结点里增加几个域:lsum :  表示从当前结点的最左端开始的上升子序列的长度rsu

2014-07-20 15:33:22 512

原创 poj 3667(区间合并)

题意:有N个房间有两种操作:1 表示当前有Di个人要入住,且房间号必须连续,并输出最左边满足要求的,没有满足要求的输出02 表示从Xi房间开始总共Di个房间要退房。解题思路:在线段树的结构体里增加几个域值:lsum : 表示从该结点的左端点开始的连续的个数。rum : 同上相反sum : 表示该结点最大连续值

2014-07-20 15:08:05 448

原创 uestc Another LCIS(区间更新,区间合并)

题意:求最长上升子序列的最大长度。两种操作:q: 某一段区间的最长上升子序列的最大长度为多少a: 某一段区间都加上val解题思路:如果单单求最长上升子序列,我们可以通过dp,或者分治的思想来求。因为此处操作多,所以上述方法不可行。我们在线段树的结点里增加几个域:lsum :  表示从当前结点的最左端开始的上升子序列的长度rsu

2014-07-20 14:46:32 426

原创 poj 2528(线段树区间更新)

题意:有n条线段按照顺序进行覆盖,问最后可见的线段有多少。解题思路:我们可以对每条线段编号,然后在线段树内定义一个变量c,且c>0时表示当前该结点被第c种线段覆盖,且c==-1表示当前结点被多种线段覆盖,所以在统计时只要判断当前结点的c是否为-1,如果是继续向下访问,如果不是则直接统计。注意:这里要判断种类有多少,所以要去

2014-07-20 14:24:39 420

原创 poj 2886(线段树单点更新)

poj 2886题意:有N个人,顺时针围成一个圈,现指定第K个人先跳出,然后报一个数A,A>0,表示从跳出的人(跳出的人不算)左边第一个人开始的第A个人跳出,A解题思路:首先我们可以算出当前如果有N个人它的反素数(注意:反素数可以利用dfs求

2014-07-20 14:08:39 440

原创 hdu 1394 线段树单点更新

hdu 1题意:有一个序列,a1,a2,.......,an,现在要使该序列经如下变换:a1, a2, ..., an-1, an (where m = 0 - the initial seqence)a2, a3, ..., an, a1 (where m = 1)a3, a4, ..., an, a1, a2 (where m = 2)

2014-07-20 13:52:16 438

原创 ACdream 1124 喵喵的遗憾

题意:中文题。。。。解题思路:fibonacci 模 p 的最小周期.假设NP(m)表示m的最小周期,满足:        NP(ab) = lcm(NP(a),NP(b)); 当且仅当(a,b)= 1;        NP(p^d) = NP(p)*p^(d-1);当且仅当p为素数  如果p为素数,则        (p

2014-07-07 00:17:36 505

原创 菜鸟对于hash思想的总结

菜鸟对于hash思想的总结:     首先hash的作用就是为了使所谓的访问复杂度能够达到O(1)水平。利用hash还要学会防止相应的冲突,也是映射能够一一对应的保证。      常用的hash函数有:      1. 在解决八数码问题时,利用了康托展开,因为逆序数的范围为0~8,对应的康托展开项数为九项,两者之间存在一一对应的关系。       对应题目:hdu

2014-07-06 17:02:27 490

原创 hdu 1425

题意:中文题。。。。(水题)解题思路:利用桶排序的思想(hash)可求注意:无

2014-07-06 16:39:20 706

原创 hdu 1228

题意:中文题。。。。(水题)解题思路:利用字符串hash或map可求注意:无#include #include #include #include #include #include using namespace std;map mp;char str1[50];int num1,num2;void pr

2014-07-06 16:36:59 398

原创 hdu 1880

题意:中文题。。。。解题思路:利用字符串hash或map可求注意:无#include #include #include #include #define MAXN 110#define MAZE 100010#define mod 100003char mz[MAXN],gn[MAXN],str[MAXN],s

2014-07-06 16:34:17 499

原创 hdu 1075

hdu 1075题意:就是用将火星文用英语代替。解题思路:利用字符串hash或map可求注意:无

2014-07-06 16:30:33 628

原创 hdu 2594

题意:给你两个字符串,判断一个串的前缀是否是另一个串的后缀,求长度最长的满足条件的串。解题思路:利用字符串hash可求注意:无

2014-07-06 16:24:17 440

原创 hdu 4277

题意:给你N个长度的木棍,这些木棍都要用上组成三条边,并能构成三角形,问这样所构成的三角形有多少个不同。解题思路:因为N注意:剪枝,和hash的构造。#include #include #include #include #include #include using namespace std;#define MAXN 100

2014-07-06 16:17:22 498

原创 hdu 1381

题意:判断字符串中有多少个长度为N的子串,且字符总类不会超过NC种。解题思路:字符串hash注意:无//字符串hash#include #include #include #include #include using namespace std;typedef

2014-07-06 16:06:05 669

原创 hdu 4082

题意:就是给你n个点,选三个点构成一个三角形,算相似三角形最多的有几个。解题思路:因为点最多只有18个所以三个for,因为判断三角相似,所以只要将其的边排序,然后算出三个角,进行比较即可。注意:判断重点,判断是否共线。

2014-07-06 16:01:05 559

原创 hdu 4821

题意:就是有一个字符串S,要求找到符合以下几种情况S的子串的个数.情况1: 该子串的长度为L*M请况2: 该子串的字串被分为M个,在该M个子子串中不存在相同.(子串不同:出发的下标不同)解题思路:对于该问题的核心有两点:因为总串的长度比较大,所以判段字符串时否出现相同,不可能用平常的比较方法,第二如何判断两个相同的字符串到底在那个子串中。对于第一点,

2014-07-06 15:51:50 652

原创 hdu 1043(八数码问题)

题意:省略

2014-07-02 22:43:37 659

原创 codeforces 430B

题目意思:

2014-05-12 15:47:58 743

原创 codeforces 430A

题目原意:  在一维坐标系下

2014-05-12 15:36:16 545

空空如也

空空如也

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

TA关注的人

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