![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
HDOJ
Roll_Keyboard
这个作者很懒,什么都没留下…
展开
-
网络流题目合集
属实狠活HDU 2883 kebab还是区间k重覆盖的变形,然而每想到就这?HDU 3315 My BruteHDU 3947 River Problem 区间k重覆盖的变形拉了原创 2019-10-29 13:31:52 · 645 阅读 · 0 评论 -
HDU 5917 Instability (Ramsey定理)
题意: n个点,m个边,求符合条件的点集合数(一个集合中有三个元素相互认识或不认识为符合条件)思路:Ramsey定理:6 个人中至少存在3人相互认识或者相互不认识。 根据定理,我们能够算出选择的集合点数大于等于6的结果:2n−∑5i=0(in)2n−∑i=05(in)2^n- \sum...原创 2018-05-17 21:23:31 · 347 阅读 · 0 评论 -
HDU 5614 Baby Ming and Matrix tree (树链剖分)
题意:一颗树上,树上每个点是一个2×2的01矩阵(每个矩阵有两个1和两个0),可以顺时针旋转这个矩阵旧时度(代价2),或者直接替换(代价10),每次给你一个v,u和一个矩阵,问v到u的路上的矩阵全部变成刚给的矩阵的最小代价思路:树链剖分,因为1有两个,所以只有6种矩阵(其中又可以分成两组,每组中的矩阵可以相互转换),那么我们把矩阵手动手动标号,算出转换最小代价,然后用6棵线段树暴力查询,每次查询的时原创 2018-04-27 16:50:55 · 175 阅读 · 0 评论 -
hdu 4348 To the moon (带标记主席树)
题意:思路: 每次修改,就新开一个树,如果大小是l到r包含叶子节点的一颗树自然是不可以的,那么我们只能保存包含他们的上面的节点,并且lazy也要同步更新(这一步和线段树很类似),但是,我们并不能pushdown,因为pushdown会直接导致空间炸掉。 那么我们为了能够用到lazy,那么我们...原创 2018-06-03 21:00:13 · 175 阅读 · 0 评论 -
hdu 5111 Alexandra and Two Trees (主席树+树剖)
题意:给你两颗树,q次查询,每次查询,问你第一颗树u1到v1,第二棵树u2到v2上,出现的数字交集大小,每颗树上不会有重复数字思路: 我们首先先想这样一个问题,给你两个数列a1,a2,a3...ana1,a2,a3...ana_1,a_2,a_3...a_n和b1,b2,b3,...bmb1,b2,b3,...bmb_1,b_2,b_...原创 2018-06-11 16:13:48 · 239 阅读 · 0 评论 -
hdu 3727 Jewel (主席树)
题意:思路: 主席树模板题,其实权值线段树也行,练练板子熟练度了 每次Insert就是新开一颗树,区间第k大和总体第k大就是正常的静态主席树操作,查询排名要注意,是包含那个数的错误及反思:代码:#include<cstdio>#include<algori...原创 2018-06-05 16:11:47 · 257 阅读 · 0 评论 -
hdu 4866/bzoj 3932 Shooting/任务查询系统(主席树)
题意:&nbsp;&nbsp;&nbsp;&nbsp; 有n条平行于x轴的线段,m次射击,每次射击射中前k个线段,得到的分数为∑ki=1di∑i=1kdi\sum_{i=1}^k{d_i}其中didid_i为线段到x轴距离,k为(a∗pre+b)modc(a∗pre+b)modc(a*pre+b)\mod c,pre为上次得分,并且如果pre大于p,那么本次得分翻倍思路:&nbsp;&...原创 2018-06-12 17:03:06 · 152 阅读 · 0 评论 -
hdu 5919 Sequence II (主席树)
题意:思路: 乍一看以为是神题,想了半天都没想到怎么写,一看题解发现读错了。。。 和D-query这题一样,只不过因为要求最前面的数,所以需要从后向前添加。首先维护的不是权值线段树,1-n维护a[1]-a[n]出现过几次,如果之前某个数出现过,那么我们直接在前一棵树的基础上减去之前的位置...原创 2018-06-06 14:57:16 · 215 阅读 · 0 评论 -
HDU 4776 (字典树)
题意:&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 一棵树,有边权,路径价值为所有边权异或的值,m次查询,每次查询第k大的路径的价值###思路:&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 从1dfs出其他点到1的路径的值,我们发现任意一条路径可以原创 2018-09-27 13:21:03 · 255 阅读 · 0 评论 -
HDU 5274 Dylans loves tree (树链剖分)
题意:一棵树,每个点有权,两种操作,一种单点修改,一种问x,y上的路有没有出现奇数次的点,并输出权值思路:因为异或了偶数次就还是0,所以树链剖分以后,每次询问的时候把所有的值异或起来就行了,因为数据还很小,所以我们单次直接更新到底就行了错误及反思:一开始没看到权值能为0,权值为0的时候我们手动加以下就可以了代码:#include<bits/stdc++.h>#define lson l,m,rt<原创 2018-04-20 16:54:50 · 191 阅读 · 0 评论 -
HDU 4015 Mario and Mushrooms (raney引理)
题意:思路:虽然结论很好猜,但正确想法是raney引理 Raney引理: 设整数序列A={Ai,i=1,2,…,N},且部分和为Sk=A1+,…,+Ak,序列中的所有的数字之和为Sn=1;则在A的N个循环表示中,有且仅有一个序列B,满足B的任意部分和Si均大于零。错误及反思:代码:#include<bits/stdc++.h>using namespace std;int main(){原创 2018-04-16 21:02:27 · 423 阅读 · 0 评论 -
HDU 3966 Aragorn's Story(树链剖分)
题意:给你一棵树,n个节点,每个节点有一个val,p次操作,一种是每次对u到v加或者减一个数,另一种是查询某个点的值思路:树链剖分水题,简单地维护一下就好。但是,这题真正坑的地方是MLE,看到discuss里面,很多人反映G++会出问题但是C++能AC,有人说因为hdu是windows会容易爆栈,需要手动扩栈。我经过血的教训,得出结论,如果这些都没有问题,请看看自己写的数组到底有没有问原创 2018-01-28 16:04:52 · 207 阅读 · 0 评论 -
HDU 2871 Memory Control (线段树区间合并)
题意:现在有一个内存条,有四操作,第一种是用掉一段内存,从左向右找第一个能插的地方插,并输出位置,没有就输出“Reject New”,第二种是清空某个位置所处的内存段,并输出左右边缘,没有就输出“Reject Free”,第三种是清空全部内存,第四种是得到第k块内存的信息思路:很麻烦的区间合并错误及反思:这题百度到的题解有的是错的,因为这个题数据不行,很多人用vector暴力地原创 2018-02-05 23:05:37 · 273 阅读 · 0 评论 -
HDU 3308 LCIS(线段树区间合并)
题意:给你一个序列,现在进行一些操作,一种是询问某一段最长连续上升子序列(LCIS)的长度,另一个就是修改某个点的值思路:区间合并的简单题 这里的区间合并,要判断的是左儿子最右边的值和右儿子最左边的值的关系,那么我们这道题要维护的东西就有:最左端开始的LCIS,包括最右端的LCIS,该区间的LCIS,最左边的值,最右边的值(最后这两个不需要维护,也很好求,我只是为了方便写顺便写到lsum和rsum原创 2018-02-05 23:38:37 · 199 阅读 · 0 评论 -
HDU 1540 Tunnel Warfare(线段树区间合并)
题意:现在有n个点,要进行一些操作,第一种是破坏某个点,第二个询问某个点所处的最长连续没破坏的区间长度,第三种修复最后一个被破坏的点思路:简单的区间合并 对于破坏和修复,是简单的单点修改,因为要修复最后一个,可以维护一个栈来方便记录一下,那么这个题需要思考的地方就只有怎么想最大区间了,我们可以这么想,如果这个点存在于我左右儿子的交界处,那么就可以直接输出这段的长度,否则,我们就要看这个点是处于我左原创 2018-02-06 13:51:08 · 211 阅读 · 0 评论 -
HDU 1828 Picture (线段树扫描线)
题意:给你一堆长方形,求周长和思路:懒得思考就当码农!! 我们正常扫一次,比如平行于x轴向上扫描,我们不断用pre减去目前总长,这样弄完就是平行于x轴的周长和,可是处理y轴的时候,我们不能单纯的每次每次加上两段y的差值,因为我们并不知道有几段y,正常做法是维护有多少段x,这样就知道了这个区间对应了多少段y。可是这涉及了区间合并,好麻烦。。。那么我们强行再平行y轴扫一次就好了!!! 代码看着很长,原创 2018-02-06 15:56:45 · 241 阅读 · 0 评论 -
HDU 1542 Atlantis(线段树扫描线)
题意:计算一堆长方形面积思路:线段树扫描线模板 以前手动去重,现在用STL写了一次,感觉好看多了错误及反思:PE和多组代码:#include<cstdio>#include<algorithm>#include<cstring>#include<vector>using namespace std;#define lson l,m,rt<<1#define rson m+1,r,rt<原创 2018-02-06 16:00:49 · 297 阅读 · 0 评论 -
HDU 3265 Posters (线段树扫描线)
题意:给你一群长方形边框,计算总面积思路:对于一个长方形边框,我们可以很简单地把它切割成四个标准的长方形,那么接下来就和普通扫描先没什么区别了 这里如果你想把中间的长方形反向标记,会非常麻烦,首先lazy的状态极难表示,每次都要被迫地更新到更下面,这样lazy能节省的时间会少很多,很容易TLE,所以与其纠结反向标记,不如直接拆开更好写错误及反思:会爆int,longlong能AC,不是很懂dicu原创 2018-02-06 16:10:32 · 199 阅读 · 0 评论 -
HDU 4812 D Tree(树分治)
题意:一棵树,每个点有一个权值,求一对点的路径上的点的乘积取模后恰好为k,输出标号最小的点对思路:点分治 首先我们要求的是 (a*b)%mod=k 如果我们知道a,那么b就是(k*inv[a])%mod 而我们点分治的时候,先求出重心,然后处理出一颗子树上的点到root的乘积,然后乘root取模找逆元,看看map里面有没有,再把这些数存到map里。这样处理完一颗子树,然后把这棵子树的东西放进m原创 2018-04-15 21:14:48 · 196 阅读 · 0 评论 -
HDU 3333 Turing Tree(莫队+离散化)
题意:给你一个数列,每次询问一个子区间中不同数字的和思路:http://blog.csdn.net/roll_keyboard/article/details/78380548 ↑和这个题有点像,用莫队即可,在移动区间的时候,发现某个数字是1或者0的时候判断并且更新答案即可,但是直接莫队的复杂度是O(nn‾√logn)O(n\sqrt{n}\log n)会TLE,要提前离散一下,记录下每个数值的编原创 2018-02-02 11:16:27 · 372 阅读 · 0 评论