自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 FZU 1901 Period II(KMP)

又是KMP中next数组的应用。还是判断最大相同前后缀,然后不停的向后跳转,直到next数组为0为止。#include #include #include #include using namespace std;const int N=1e6+5;char str[N];int nextt[N];int ans[N];void makenextt(char str[]

2018-03-22 11:23:16 228 1

原创 Codeforces 923B Producing Snow(优先队列)

第i天产生Vi的雪,同时会融化Ti的雪(包括之前产生的雪,如果已经融化完成则不在考虑),问每一天融化的雪的总的数量。很显然每次都去对前面的雪数进行加减的话,很浪费时间,可以使用优先队列,将前i天的雪量加起来,当优先队列中的元素小于该值时,说明它无法承受这样的减少量,从队列中拿掉,否则说明可以承受这样的减少,这样的话只要用可以承受减少量的雪堆的数量*减少的量再加上前面不可以承受的雪堆的实际减少量

2018-03-17 19:12:22 460

原创 Codeforces 782B The Meeting Place Cannot Be Changed(二分)

给出了很多点和速度,问所有点相聚在一起的最短时间是多少每个点在时间范围内,其对应的速度会形成一个范围,那么如果所有点的范围都存在交集时,这种情况就可能正确,但如果有的点的范围和其他点的最小的范围没有交集的话,时间就要再增大一点,所以利用这个特性来进行二分,寻找答案。#include #include #include using namespace std;const int N=

2018-03-17 18:49:16 218

原创 Codeforces 741C Sonya and Queries(字典树)

数字的每一位分奇偶,向一个集合内实现插入和删除操作,询问某一数字与集合内所有数字的最大匹配数(每一位每一位的匹配)例如:010可以匹配091,但是不可以匹配003;字典树建个数,然后以字符串的方式度入,不满足的位数,也就是前面的部分补0就好了,在最后的节点进行++或--的操作。#include #include #include #include using namespace

2018-03-17 18:41:52 194

原创 POJ3321 Apple Tree(DFS序+线段树)

给出一个多叉树,在任意点上删除或加入苹果,问某一结点的子树上的苹果数量的总数。子树,用DFS序记下入和出的时间,线段树维护一下就好了。vector会TLE。。。。#include #include #include #include #include #include using namespace std;const int N=1e5+5;//vectorvec[N

2018-03-17 14:32:04 256

原创 POJ2155 Matrix(树状数组)

给出一个矩阵,成块的修改一些值,原来是1变0,原来是0变1,询问某个点最后的值。二维树状数组,再利用区间求和单点修改实现,最后只记录修改的次数,结果对2取余即为答案。#include #include #include using namespace std;const int N=1005;int tree[N][N];int n;int lowbit(int i){

2018-03-15 19:53:26 205

原创 HDU4614 Vases and Flowers(线段树+二分)

给出一些花瓶,有两种操作,1.从x位置向后插入y朵花,遇见已经有的就跳过,直到最后一个花瓶为止,输出第一和最后一个花瓶的位置,2.将x和y之间的花瓶清空输出花数。线段树的写法差不多一致,关键是用二分来确定每次查询的左右端点。#include #include #include using namespace std;const int N=500005;struct node{

2018-03-15 11:14:28 234

原创 HDU2594 Simpsons’ Hidden Talents(KMP)

给两个字符串,找到两个字符串的最长相同后缀和前缀。KMP,把两个字符串连接起来,最后一个字符的next数组内容就是最长的长度。两个字符串之间要插入一个其他字符。#include #include #include #include using namespace std;const int N=50005;char str1[N];char str2[N],str[N*1

2018-03-13 21:18:12 169

原创 HDU3336 Count the string(KMP+DP)

计算字符串的每个前缀在字符串里出现的次数。一个KMP+DP,在KMP的next数组中,next[i]=j就表示在前i个字符串当中,从前1到j的j长度字符字串和i-j+1到i的j长度的字符字串相等。那么,每一个位置的字符只要继承它的next[i]位置的数量,再加一就是它当前的数量了。#include #include #include using namespace std;cons

2018-03-13 20:28:39 165

原创 POJ2752 Seek the Name, Seek the Fame(KMP)

题目给出一个字符串,求这个字符串所有的相同前后缀的长度。KMP的next数组的应用,KMP的next数组在失配时向前跳转的下标,所以从最后一个字符开始访问,不停的向前跳转,每次的next数组值就是答案。因为当最后一个字符开始向前跳转的时候,就已经出现了第一个合法的前后缀,第二次再次跳转的时候,实际上就是在第一次出现的前后缀里在寻找合法的前后缀。。。以此类推,可以有第三次,第四次跳转。#in

2018-03-12 18:15:33 187

原创 HDU1358 Period(KMP)

给出一个字符串,问这个字符串的所有前缀是否油循环节,并且说出有几个循环节构成KMP算法可以的next数组可以用来计算循环节。#include #include #include using namespace std;const int N=1000005;int nextt[N];char str[N];void makenextt(char p[],int len){

2018-03-11 20:09:53 161

原创 codeforces 706D(01字典树)

给出很多操作,能向一个集合里增加元素,也能减少元素,查询某一个值在这个集合里的最大异或值01字典树,在节点上新开一个记录节点出现的次数,查询的时候用次数做判断,没有出现的话就相当与没有这个节点就好了。#include #include using namespace std;const int N=200005;struct node{ int val[2]; i

2018-03-11 18:56:30 288

原创 UVA11235 Frequent values(RMQ)

题目大意:给出一个升序的序列,对于一系列的询问(i,j),回答i到j中出现次数最多的数字。白书上的例题QAQ,游码编程建立对应的序号与段与最远到达的区间的序号,用RMQ查询一下即可。#include #include #include #include using namespace std;const int N=100005;int val[N];//第i段的值int d

2018-03-09 21:04:25 275

原创 HDU3974 Assign the task(DFS序+线段树)

题目大意:给出一种的人员之间上下级的关系,其实就是一棵多叉树,当boss获得一个任务时,boss的员工们也会立即获得这个任务,不论员工原来拥有怎样的任务,查询对于某一时刻某一个员工对怎样的任务。像是线段树,但是多叉和查询怎样解决,对于这样的子树问题,一下的更新某个根的子树,可以用DFS序,将这棵树重新编号,用入时间戳和出时间戳再将其投映到线段树内,每次更改时将入和出时间戳之间都更新,查询时由于

2018-03-09 20:15:09 277

原创 HDU6191Query on A Tree (可持久化字典树+dfs序)

题目大意:给出一棵树,告诉点与点之间的关系和每个点上的权值,询问对于每个点的子树的所有点上的值与给定数字的异或的最大值是多少。异或求最大值,用01字典树来维护,至于子树的问题,用dfs序维护一下每棵子树的出入信息,在查询的时候用出子树的点减去入子树的点的前一个点,只要该某个节点上仍然有节点经过即可。其余就和普通的01字典树求异或差不多了#include #include #includ

2018-01-29 20:49:56 455 1

原创 HDU4825Xor Sum (01字典树)

题目说分别给出n个数字和m个询问,问对于每次询问的数字,从n个数字里找出一个数字使得其异或值为最大,问这个数字是多少。做法是01字典树。异或是无进制加法,如果给出的数字某一位上是0(二进制下),那么匹配1,一定使的异或后的值是最大的,如果是1(二进制下),匹配0,异或后一定是最大值,当在字典树上没有0或者1时再选择1或者0,按照这个顺序从字典树的高位向低位匹配。#include #inc

2018-01-29 15:29:19 223

原创 HDU1540Tunnel Warfare(线段树)

题目大意是说有很多地道,三种操作:D摧毁某个点,使得点两边断掉;Q查询和某些点相连的点的数量;R修复最近被破坏的地道。用线段树维护两个值,一个最大值,一个最小值各自独立(初始最大值置0,最小值置n+1)当摧毁某个点的时,将最大值的对应点改为其下标,将最小值对应的点改为其下标,查询时,查询比这个点小的值中的最大值和比这个点大值中的最小值。这样的两个值相减得到的即使联通区间的数目+1。代码

2018-01-28 20:30:37 210

原创 HDU4027Can you answer these queries? (线段树)

题目大意:给出一串数字,两种操作:每次给出一个区间,将区间内的数字全部开根号;区间内的数字求和。不用区间更新,每次只用单点更新即可,判断区间长度是否等于区间和,如果是就不再更新了,这样相当于每次开根号的时候是将不是全一的区间做了单点更新,其实复杂度并不高。代码如下:#include #include #include #include #include using names

2018-01-26 10:24:23 232

原创 牛客训练赛10 B栈和排序(栈)

题目大意:给你一个1->n的排列和一个栈,入栈顺序给定你要在不打乱入栈顺序的情况下,对数组进行从大到小排序 当无法完全排序时,请输出字典序最大的出栈序列因为要按照字典序输出,直接做一遍循环,从1开始直接把从当前位置到n的之间的最大的数字之间的数字全部压栈,然后弹掉栈顶最大的数组,如此往复,直至最后再将栈里的元素全部弹出就好了。代码:#include

2018-01-23 19:58:31 786

原创 HDU5510(Bazinga)(KMP)

BazingaTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 6280    Accepted Submission(s): 1927Problem DescriptionLadies and gentlem

2018-01-17 20:23:45 292

原创 POJ1700 Crossing River(贪心)

Crossing RiverTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 17179 Accepted: 6490DescriptionA group of N people wishes to go across a river with only o

2018-01-14 10:49:11 216

原创 HDU5975 Aninteresting game(树状数组)

Aninteresting gameTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 537    Accepted Submission(s): 216Problem DescriptionLet’s pla

2018-01-13 18:29:05 380

原创 HDU5972 Regular Number(bitset)

Regular NumberTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1645    Accepted Submission(s): 446Problem DescriptionUsing regula

2018-01-13 17:02:39 300

原创 ZOJ3826(Hierarchical Notation)

Hierarchical NotationTime Limit: 2 Seconds      Memory Limit: 131072 KBIn Marjar University, students in College of Computer Science will learn EON (Edward Object Notation), which is a hiera

2017-10-28 20:36:33 330

原创 HDU4456(Crowd) 二维树状组+坐标旋转

CrowdTime Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2663    Accepted Submission(s): 640Problem DescriptionCity F in the souther

2017-09-27 23:01:10 393

原创 POJ2777 Count Color(线段树+染色)

Count ColorTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 47394 Accepted: 14318DescriptionChosen Problem Solving and Program design as an optional co

2017-09-24 18:50:16 302

原创 ACM-ICPC2017北京网络赛(I) Minimum

时间限制:1000ms单点时限:1000ms内存限制:256MB描述You are given a list of integers a0, a1, …, a2^k-1.You need to support two types of queries:1. Output Minx,y∈[l,r] {ax∙ay}.2. Let ax=y.

2017-09-24 11:14:49 432

原创 POJ2528 Mayor's posters(线段树+离散化+染色)

Mayor's postersTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 68924 Accepted: 19861DescriptionThe citizens of Bytetown, AB, could not stand that the

2017-09-22 20:34:28 274

原创 POJ2299 Ultra-QuickSort(树状数组)

题目链接

2017-08-19 10:37:43 343

原创 HYSBZ(1067) 降雨量(RMQ)

题目链接题目大意:X年是自Y年以来降雨量最多的,很明显X年的降雨量应该大于Y年,并且X到Y年的降雨量均应该小于X年和Y年。对于每一次的询问分情况讨论:1.如果X和Y年的降水量均为知,则maybe;2.如果X年的降水量已知,Y年的降水量未知,当X和Y年之间的最大降水量小于X的降水量时为maybe;3.如果X年的降水量未知,Y年的降水量已知,当X和Y年之间的最大降水量小于Y的降水量

2017-08-19 09:42:14 369

原创 UVA10935 Throwing cards away I(队列)

题目链接题目大意:给定数字n,表示有n张卡片放在桌面上,序号从1-n,第一张卡在最上面,第n张卡在最下面,每次丢掉最上面的卡片,然后将现在的第一张放在所有卡牌的最下面,求所有被丢掉的卡牌的最后留下来的。代码如下:#include #include #include #include using namespace std;queueque;int main(){

2017-08-18 19:28:29 254

原创 UVA10763 Foreign Exchange

题目链接题目大意:给定N对数字,形如(A,B),对于每一对数字,都要出现(B,A),则输出YES,否则输出NO对于每一对数字,让小数在前,大数在后,然后再对所有数字排序,从第一个开始每两个判断,如果出现两对数字不一样就是NO,否则YES代码如下:#include #include #include #include using namespace std;const in

2017-08-18 19:13:35 260

原创 POJ2985 The k-th Largest Group(treap+并查集)

题目链接Input1st line: Two numbers N and M (1 ≤ N, M ≤ 200,000), namely the number of cats and the number of operations.2nd to (m + 1)-th line: In each line, there is number C specifying t

2017-08-18 18:49:01 451

原创 HDU4585 Shaolin(treap)

题目链接InputThere are several test cases.In each test case:The first line is a integer n (0 The monks are listed by ascending order of jointing time.In other words, monks who joined S

2017-08-18 18:23:55 289

原创 LA4329 Ping pong(树状数组)

题目链接一群乒乓爱好者组织比赛,给出一群乒乓爱好者的技能值,每场比赛需要两名选手和一名裁判。裁判必须在选手中间,并且技能值也在选手中间,问一共能组织多少种比赛?选手的技能值:A1······Ai······An;假设在A1到Ai内有c个选手的技能值比Ai小,即有(i-1-c)个选手的技能值比Ai大;假设在Ai到An内有d个选手的技能值比Ai小,即有(n-i-d)个选手的技能值比Ai

2017-08-14 15:50:36 347

原创 POJ2761 Feed the dogs(treap)

Feed the dogsTime Limit: 6000MS Memory Limit: 65536KTotal Submissions: 21225 Accepted: 6719DescriptionWind loves pretty dogs very much, and she has n pet dogs.

2017-08-14 09:38:18 270

空空如也

空空如也

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

TA关注的人

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