自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(209)
  • 收藏
  • 关注

转载 P2634 [国家集训队]聪聪可可

点分治傻逼题。。。直接DP就行了#include<iostream>#include<stdio.h>#include<string.h>#include<algorithm>#define LL long longusing namespace std;const int maxx = 2e5+6;in...

2019-09-30 21:31:00 120

转载 HDU-4807-Lunch Time(二分+费用流,思维)

这道题非常好,如果没有真正弄懂费用流算法的人,只会套模版的人是肯定做不出来的。 我们其实这样考虑,费用流真正的思想是吧费用作为长度,然后跑最短路,同时保证路上的流量不为0,也就是增广; 跑到终点后,回溯把路上的流量进行修改。一直这样下去直到无法增广。 这道题也是一样,我们把路径长度看成费用,路径限制看成流量限制。 每次增广到终点后,得到的dis[t]代表源点到...

2019-09-30 10:40:00 122

转载 易错分析

注意建边add(u,v),有可能函数内部已经加了双向边,记住不要再加add(v,u)如果认为一定正确的解答,突然运行了很久之后出错,考虑是否有没有注意到的边界条件,如0,1等情况转载于:https://www.cnblogs.com/bluefly-hrbust/p/11601439.html...

2019-09-28 09:05:00 117

转载 hihocoder1994 树与落叶 DFS+前缀和+二分

DFS找到节点删除的时间,删除的时间其实就是子树的最长链,然后给每个点打一个时间戳,然后求每个时间点对应删除的节点的个数,对于1-max_time时间戳求一个前缀和,然后二分找到和m距离最近的那一天#include<iostream>#include<algorithm>#include<string.h>#include<s...

2019-09-28 02:12:00 101

转载 [Offer收割]编程练习赛108 - 树上的最短边 树链剖分

直接点权下放到边权,每次查询从dfs序的st[u]+1,ed[v]之间查询,#include<iostream>#include<stdio.h>#include<string.h>#include<algorithm>#define lson rt<<1#define rson rt<&l...

2019-09-27 19:54:00 146

转载 【模板】左偏树(可并堆)

#include<iostream>#include<algorithm>#include<stdio.h>#include<string.h>using namespace std;const int maxx = 2e5+6;struct node{ int rt,l,r,val,pos,dis;...

2019-09-25 01:00:00 66

转载 P2993 [FJOI2014]最短路径树问题 点分治+最短路

这道题还是非常简单的,由于我们要保证最小字典序,因此我们需要把边进行排序,然后从大到小插入,因为链式前向星是倒着存的。我们只需要先跑一个最短路,然后查询边是不是在最短路上,这个可以通过枚举边并用dist[v]=dist[u]+edge[i]判断即可,如果是的话我们在这个边上打上标记。并进行一次DFS打上标记,保证是一颗树。然后就简单了,直接点分治查询子树链的长度和节点个树。然后...

2019-09-23 21:09:00 116

转载 E - D Tree HDU - 4812 点分治+逆元

这道题非常巧妙!!!我们进行点分治的时候,算出当前子节点的所有子树中的节点,到当前节点节点的儿子节点的距离,如下图意思就是当前节点的红色节点,我们要求出红色节点的儿子节点绿色节点,所有绿色的子树节点的到当绿色的点权乘积有如下的情况:1*5*7 3*6*72*5*7 4*6*7然后我们要想办法查询其他链上到红色节点的乘积,比如蓝色的所有子树到红色节点的乘...

2019-09-22 20:12:00 85

转载 20182019-acmicpc-asia-dhaka-regional F .Path Intersection 树链剖分

直接进行树链剖分,每次对路径区间内的所有点值+1,线段树进行维护,然后查询线段树的最大值的个数!!!查询线段树区间最大值个数,可以先维护区间和,在维护区间最值,如果区间和等于区间最值乘以区间长度,那么直接返回长度!!!清空的时候,直接减去,不要直接重新建树#include<bits/stdc++.h>#define LL long long#defin...

2019-09-22 15:27:00 150

转载 POJ 2114 Boatherds 点分治

这道题是求等于k的,和求<=k的基本上是如出一辙,需要注意的是,我们在把子树距离排序以后,在寻找距离等于K的数目的时候,也是用两个指针,进行扫描,如果蛮子满足q[l]+q[r]==k,我们需要检查是不是这两个q[l]和q[r]是同一个值,如果是的话,我们其实就是在l 到 r中选取两个,用一下组合公式就知道是(r-l+1)*(r-l)/2,否则的话我们移动左指针算出a[l]个数...

2019-09-20 21:52:00 86

转载 poj1741 树上距离小于等于k的对数 点分治 入门题

#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#define N 40005#define M 80005#define LL long longusing namespace std;const...

2019-09-19 16:25:00 510

转载 C. Tokitsukaze and Duel 前缀维护

枚举每一个连续的K的第一个位置,如果是先手胜利,那么前[1 , i-1 ]和[ i+k , n ]区间要么全是0,要么全是1 如果能够平局,那么肯定是[1,i-1],以及[ i+k , n]中有两种情况 有一个区间全为0,并且另外有个区间内部最左边的1和最右边的1距离是大于K 有一个区间全为1,并且另外有一个区间内部最左边的0和最右边的0的距离是大于K 或者两...

2019-09-17 21:22:00 99

转载 HDU - 6534 Chika and Friendly Pairs

这个题其实也是很简单的莫队,题目要求是给一个序列,询问l-r区间内部,找到有多少对答案满足 i < j 并且| a[ i ] -a[ j ] | <=k 也就是有多少对,满足差值小于k的个数。把这个式子展开,其实就是-k<= a[ i ] -a [ j ] <= k 也就是 a[ j ] -k <= a[ i ] <= a[ j ] + k...

2019-09-16 22:58:00 86

转载 洛谷P2709 小B的询问 莫队

小B有一个序列,包含N个1~K之间的整数。他一共有M个询问,每个询问给定一个区间[L..R],求Sigma(c(i)^2)的值,其中i的值从1到K,其中c(i)表示数字i在[L..R]中的重复次数。小B请你帮助他回答询问。可是使用莫队算法,我们移动的时候,计算贡献即可,那么如何计算贡献呢??我们知道对于cnt[i]^2 ,也就数字i对应现在的值是cnt[i]^2,那么如果当前点的...

2019-09-16 16:52:00 86

转载 1878: [SDOI2009]HH的项 莫队算法-离线查询区间内部不同数字的个数

#include<iostream>#include<stdio.h>#include<string.h>#include<algorithm>#include<math.h>using namespace std;const int maxx = 1e6+6;int a[maxx];int ...

2019-09-16 11:06:00 106

转载 2019南昌网络赛-I. Yukino With Subinterval 线段树套树状数组,CDQ分治

TMD。。。这题卡内存卡的真优秀。。。所以以后还是别用主席树的写法。。。不然怎么死的都不知道。。。树套树中,主席树方法开权值线段树。。。会造成空间的浪费。。。这道题内存卡的很紧。。。由于树套树已经不需要持久化了,直接动态开点就完事了。。。用主席树方法开过不去,要么超内存,要么越界。。。大概思路。。。这题要求的[L,R]区间内,满足x<=a[i]<=y的连续的段...

2019-09-13 13:17:00 97

转载 [luogu P2617] Dynamic Rankings 带修主席树

带修改的主席树,其实这种,已经不能算作主席树了,因为这个没有维护可持久化的。。。 主席树直接带修改的话,由于这种数据结构是可持久化的,那么要相应改动,这个节点以后所有的主席树,这样单次修改,就达到n*log n 的复杂度现在介绍这种待修改的主席树,本质上是用树状数组的区间查询维护的线段树,树状数组的每个点,都开一个权值线段树,维护的是lowbit(x)-x之间的数字的出现...

2019-09-12 16:26:00 92

转载 2019徐州网络赛 I.query

这题挺有意思哈!!!看别人写的博客,感觉瞬间就懂了。这道题大概题意就是,给一串序列,我们要查找到l-r区间内,满足min(a[ i ],a[ j ]) = gcd(a[ i ],a[ j ])其实我们把这个东西看成一个二元组,<i,j> 二元组满足min(a[ i ],a[ j ]) = gcd(a[ i ],a[ j ])为了保证唯一性,<i,j&gt...

2019-09-11 22:05:00 120

转载 线段树 离散区间,单点维护区间

这道题当时用线段树搞不行,用主席树搞,也不行。当场自闭。。。 其实当时想到离散,但是没想到用单点维护线段树的区间。。。。。。 你这样想,无非就是2e6次询问,最多1-e9被分成最多2e6区间,我们要求的位置,一定在这2e6点的右边第一个。 那么把这个点,以及这个点x以及x+1的点保存下来。 维护的时候,线段树初始化所有的单点值为1,并维护区间和,代表单点没有被...

2019-09-11 19:51:00 104

转载 D-query SPOJ - DQUERY 主席树查询区间内不同数出现的次数

我们不以权值建立主席树,而是区间端点作为值建立线段树,一个个插入a[i],我们发现这个数之前是存在的,就需要在上个版本的主席树上减去原来的位置,并加上现在的位置,这样我们在i版本的主席树,维护1-r中,所有数最后一次出现的位置,然后实现区间查询,即可。/**按照数字所在的下标建立权值线段树**/#include<iostream>#inc...

2019-09-10 21:25:00 130

转载 ODT模板

struct node{ int l,r; mutable int v; node(int L,int R,int V):l(L),r(R),v(V){} inline bool operator < (const node& b)const{ return l<b.l; }};set<nod...

2019-09-10 00:49:00 95

转载 CF915E Physical Education Lessons(珂朵莉树)

还是模板题。。。直接暴力即可。。。ODT是个好的数据结构啊。。。 #include<iostream> #include<stdio.h> #include<string.h> #include<algorithm> #include<set> #define LL long long using...

2019-09-10 00:48:00 68

转载 ODT 珂朵莉树 入门

#include<iostream>#include<stdio.h>#include<string.h>#include<algorithm>#include<set>#define LL long longusing namespace std;const int N = 1e5+6,mod=...

2019-09-09 20:40:00 55

转载 EC round 33 D. Credit Card 贪心

因为到为0的点,充钱的范围都是不确定的,我们维护一个满足条件的最小值以及满足条件的最大值。当min>d时,代表已经满足条件限制了当a[ i ] = 0 并且 max<0,代表需要充钱,充钱能够保证当前 minn=0 maxx = d其他情况则对minn, maxx相应的增加和减少进行操作就可以了#include<bits/stdc++.h>...

2019-09-09 18:41:00 57

转载 本周总结

或许这个周是最高兴,也是最难过的一周。。。上个周有点高兴的过了头。。。这个周就各种飘。。。然后本周就翻车了。。。难受的一逼高兴的去xxx商大,看到了好友,聊的真开心。。。真希望(此处省略100字)嘿嘿。。。本周决定考研了。。。然而也不知道自己能考什么学校。。。希望能去UESTC把,毕竟是自己的梦想。。。然而别人要不要我还两说呢。。。逃下周加油!!!争取把CDQ分治的专...

2019-09-09 00:23:00 40

转载 bzoj 2683: 简单题

一维时间,二维X,树状数组维护,模板题。妈的什么时候借一个BZOJ权限号搞一搞。。。还不知道对不对。。。 貌似KD-tree也可以。。。留坑。。。#include<bits/stdc++.h>#define LL long long#define lson rt<<1#define rson rt<<1|1using n...

2019-09-06 23:58:00 64

转载 BZOJ 1935 Tree 园丁的烦恼 CDQ分治/主席树

CDQ分治版本我们把询问拆成四个前缀和,也就是二维前缀和的表达式,我们把所有操作放入一个序列中操作1代表在x,y出现一个树操作2代表加上在x,y内部树的个数操作3代表减去在x,y内部树的个数我们对X进行归并排序,并用CDQ计算机左区间对右区间的影响由于CDQ分治的特性,我们已经求得了[L,MID]之间答案 以及 [MID+1,R]之间答案那么[L,...

2019-09-05 10:19:00 66

转载 CDQ分治 三维偏序

这应该是一道CDQ分治的入门题目我们知道,二维度的偏序问题直接通过,树状数组就可以实现了,但是三维如何实现呢?我记得以前了解过一个小故事,应该就是分治的。一个皇帝,想给部下分配任务,但是部下太多,他也无从下手于是他这个任务分给宰相,宰相也不怎么清楚,于是他又分给他的手下,这么一直分啊分啊,分到每一个人头顶上的时候每个人知道自己要干什么,于是他把它的信息交给他的上级,上级有...

2019-09-04 20:10:00 72

转载 A.The beautiful values of the palace 南京网络赛

A对于知道了解主席树性质的人来说,的确算是一个模板题目题目在于给一个螺旋矩阵,以及一些权值,问在二维区间内权值和是多少?对于螺旋矩阵权值来说,计算每个点的值,只需要O1计算即可。我们可以通过计算内部圈数得到计算外围的权值,再加当前圈数即可而对于二维的区间和,我们知道其实主席树已经是二维的了,因为我们在每个节点都新开一棵线段树。并且主席树是动态开点的,这样就比较简单了。我...

2019-09-03 00:28:00 93

转载 CDQ分治

二维偏序:求二维偏序a[ j ].x < a[ i ].x && a[ j ].y < a[ i ].y可以对x作为第一位度,把x进行排序,然后对y方向用树状数组维护。#include<iostream>#include<stdio.h>#include<algorithm>#inclu...

2019-09-01 21:35:00 51

转载 2-3-4 tree留坑

#include<bits/stdc++.h>#define LL long long#define pii pair<int,int>#define mp make_pairusing namespace std;const int maxx = 2e5+6;const double alpha = 0.75;struct ...

2019-08-31 21:49:00 55

转载 CCPC final Cockroaches

算法假了,我想的是通过枚举x,删除y的影响,这样答案第一个是没有任何问题的,但是第二个会算重复。因为我枚举每一个x的时候,得到的y,而算另外一个x的时候,可能已经通过其他的点选到了这个点y这就有点麻烦了。暂时没想好怎么处理。转载于:https://www.cnblogs.com/bluefly-hrbust/p/11438051.html...

2019-08-31 10:02:00 88

转载 对拍模板

#include<bits/stdc++.h>using namespace std;int main(){ while(true) { system("data.exe>data.in"); system("ac.exe<data.in>ac.out"); system("wa.exe&lt...

2019-08-31 09:48:00 75

转载 Remove Extra One 权值线段树

最近疯狂练习线段树。。。 这道题题意很简单,在1-n中,找寻一个数,使得去掉这个数后,对于每个位置中满足 1<=j<i && a[ j ]<a[ i ] 的位置尽可能多。 我们考虑对于每个位置i的贡献,如果当前位置已经满足条件,那么前面任何数的删除,对这个位置实际上是没有贡献的,并且对于当前位置来说,删除这个位置相当于减去一个满足条...

2019-08-30 00:18:00 64

转载 EC Round 33 F. Subtree Minimum Query 主席树/线段树合并

这题非常好!!!主席树版本 很简单的题目,给一个按照指定节点的树,树上有点权,你需要回答给定节点的子树中,和其距离不超过k的节点中,权值最小的。 肯定首先一想,按照dfs序列建树,然后按照深度为下标,建立主席树,那么我们通过主席树相间得到区间状态,但是很不幸,区间最值不能通过减去历史版本的主席树得到。 考虑照深度建立主席树,按照dfs下标建立,貌似可以耶!!!...

2019-08-28 16:02:00 78

转载 EC Round 41 (Rated for Div. 2)主席树 E. Tufurama

简单分析一下,对于x<y,求a[x]>=y 同时a[y]>=x 再简化一下,求1-a[y]区间内大于>=y的个数。。。主席树牛逼#include<iostream>#include<stdio.h>#include<string.h>#include<algorithm>#i...

2019-08-27 21:30:00 58

转载 杭电多校第二场1012 L - Longest Subarray ce 线段树

这题是真的秀。。。我服了。。。线段树用好了,感觉什么都可以写。。。题目大意:给你一个串,问满足以下条件的子串中最长的是多长:对于每个数字,要么在这个子串没出现过,要么出现次数超过k次。我们对于每一个位置i,肯定希望往左找到最远满足条件的,然后维护一个最大值,岂不美哉?那么我们该如何找到最远满足条件的???那么又该维护一些什么东西?我们维护一个数组t[],t[j]=m表示从...

2019-08-27 19:41:00 59

转载 E. Remainder Problem 分块

两个操作 1对x位置的a[x]+y 2对所有i=y(mod x)求a[i]的和 我们肯定不能n^2 跑,稳超时,但是我们可以这样分块考虑。 为什么n^2不行?因为在x比较小的时候,这个求和操作次数太多了。但是x比较大的时候,这个对时间并没有什么影响 所有我们考虑分块。 用一个dp[i][j]表示(1-5e5的长度分成了长度为x的块,且块内偏移为j)的...

2019-08-27 10:34:00 55

转载 网络流总结

网络流题型总结P4016负载平衡问题N个环形排列的点,每个点之间的权值数量不相等,现在可以让每个点G 公司有 n 个沿铁路运输线环形排列的仓库,每个仓库存储的货物数量不等。如何用最少搬运量可以使 n个仓库的库存数量相同。搬运货物时,只能在相邻的仓库之间搬运。题解:首先为了让每个点收支达到平衡,我们可以先求出所有货物的数量,进而求得每个点货物数量的平均值。那么对于当前仓...

2019-08-25 12:05:00 104

转载 无旋treap hfq-treap

怎么代码都这么长。。。#include<iostream>#include<stdio.h>#include<string.h>#include<algorithm>#include<random>using namespace std;const int maxn = 1e5+5;struc...

2019-08-24 22:57:00 65

空空如也

空空如也

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

TA关注的人

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