自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HDU 5967 小R与手机 CDQ分治+回滚并查集

快退役了还写了一篇博客,我真是棒棒呢~   >_这道题网上通用的解法是LCT,虽然LCT的确可以做,不过我还是一直惦记这宦壕从合肥回来以后嚷嚷着这题我是用可持久化并查集+CDQ分治过的(当然了,他肯定是在吹牛,我怀疑他根本不知道可持久化并查集是什么。。。可回滚并查集和可持久化并查集还是有些区别的可持久化并查集要用可持久化数组(即可持久化线段树实现),可以回退任意历史版本,但是实际上没什

2017-12-07 14:36:49 463

原创 HDU 6049 Sdjpx Is Happy 区间dp+发现性质

#include #include #include #include #include #include #include #include #include #include #include #include #define pii pair#define xx first#define yy second#define mp ma

2017-07-28 16:39:27 411

原创 Codeforces 424 div1 C. Bamboo Partition 830C 分块优化

题意:不说了,自己看吧,很好懂的(难得写一篇题解)这题还是很有意思的首先可以推一个公式sigma( ceil(a[i]/d) )*d 这里要求d的max,然而这个d并不是单调的考虑遍历所有的d这里有一个性质,a[i]/d的值并不会太多,一共只有2sqrt(n)个(不论是ceil还是floor)证明:令n=sqrt(a[i])1. d2. d>

2017-07-15 14:34:36 307

原创 codeforces gym 2016-2017 NEERC, Moscow Subregional K. Knights of the Old Republic 最小生成树+dp

注:本文思路部分引自鸟神的题解

2016-11-14 16:27:06 442

原创 Codeforces #280 Div.2 E.Vanya and Field 数学,数论

第一道完全没看题解直接出的E题……纪念一下记下来吧……题意:n*n的矩阵,边际循环,每次可以从当前位置(x,y)走到((x+dx)%n,(y+dy)%n),保证gcd(n,dx)=1,gcd(n,dy)=1;在矩阵中有些地方有果树,问从哪个位置开始走能够经过的果树最多;题解:考虑能够从一棵果树走到另一棵,设这两个果树的坐标为(x1,y1),(x2,y2),那么我们可以得到(

2016-08-01 16:59:27 495

原创 2016 多校3 1009 Palindrome Bo 回文串dp+优化

题意 给一个串,要求找出有多少个从里到外递增(不严格)的回文串序列(即可以分开的),最大长度是多少做法:很容易想到维护一个n3的区间dpdp[l][r]  更新是枚举c(cnxt[pos][c]代表pos位置向右第一个值为c的位置pre[pos][c]代表pos位置向左第一个值为c的位置但是会t考虑n2优化我们发现,如果固定l左端点,移动右端点,每次移动

2016-07-29 16:44:13 384

原创 2016 多校4 1002 After a Sleepless Night 树上贪心

题意:给你一棵新树,树的每个节点都有一个权值,告诉你其实这棵树是由另一棵原树转化过来的进行的操作是,把原树每个点的权值变成了该点为根的子树中权值的最大值,原树的所有的点的权值按标号排下来是一个1-n的排列根是不固定的请你找出这个原树,输出标号顺序下字典序最小的权值排列字典序最小=贪心地填法首先要发现一些规律1.对于新树,选的root的权值一定是n2.新树

2016-07-29 16:42:13 297

原创 2016 暑假多校训练 第三场 1007 Explorer Bo HDU 5758

#pragma comment(linker,"/STACK:1024000000,1024000000")#include #include #include #include #include #include #include using namespace std;typedef long long ll;vectorp[100005];ll dp[100005][

2016-07-27 15:46:26 352

原创 2014 鞍山区域赛 C HDU5072 Coprime 莫比乌斯/容斥+同色三角形

题意:n个数中,求三个数两两互质或者两两不互质的三元组的数量;思路:单色三角形模型,也就是说完全图中,每两点间的边可以是黑色,可以是红色,求纯色三角形的数量;直接求会非常困难,所以我们转化为对偶问题——求不纯色三角形的数量;来关注某个三角形ABC,假设A固定,那么我们可以假设,A与B互质,A与C不互质,这时我们不用关心B与C之间是否互质,因为不影响结果;注意A不能是1,因为所有数都与1

2016-07-13 10:22:43 600

原创 2014 鞍山区域赛 J HDU5079 Square DP套DP

题意:给你一个n⋅n(n≤8)的棋盘,上面有一些格子必须是黑色,其它可以染黑或者染白,对于一个棋盘,定义它的优美度为它上面最大的连续白色子正方形的边长,对于每个0≤i≤n,问有多少种染色方案使得棋盘的优美度为i?说起dp套dp,个人感觉并不是有多么难,关键一个是状态比较难设计感觉往往内层dp是在给外层处理状态,帮助外层dp把状态压缩好,然后再用一般的dp套dp处理就行了。补了三道这样的

2016-07-12 14:43:16 1091

原创 2014 北京区域赛 F Fluorescent HDU5117 (数学+状压+dp)

题意:有N个灯和M个开关,每个开关控制着一些灯,如果按下某个开关,就会让对应的灯切换状态;问在每个开关按下与否的一共2^m情况下,每种状态下亮灯的个数的立方的和。思路:1、首先注意到N2、最开始考虑的是算出每种情况下对应的方案数,然后依次dp,但是数据量太大;3、正解是直接考虑X^3,其中X就是每种状况下亮着的灯的数量;4、如何解这个X^3?我们把它展开——X=x1

2016-06-26 00:52:28 1074

原创 Codeforces #257 div2 E DZY Loves Colors 线段树优化

题意:线段树的题,两个操作(原始每个节点值都是i,每个节点的cnt都是0)1.把一段都涂成x,每个点的cnt加上abs(  原来的值-更改后的值 )2.查询一段cnt的和不错的线段树,有地方需要优化lazy 、 sum 双重延时标记#include#include#include#include#include#define lson l, mid, x<<1

2016-06-11 10:13:41 303

原创 2015ACM/ICPC亚洲区沈阳站 Meeting HDU 5521 (优先队列搜索)

其实这就是一道搜索题,我们利用优先队列来进行广搜,首先取出没有用过的且离起点最距离最短的点,枚举其所在的团,对于团中的点,能更新则更新,更新后距离若更短则入队。当然了,我们还可以从中发现一个性质,就是在搜索过程中,每个团只用一遍即可,用两遍不会产生比用一遍更好的解,所以就多加一个vis1数组来剪枝即可。从起点搜一次从终点搜一次,之后从起点枚举到终点记录答案输出即可#include #in

2016-06-09 21:29:36 291

原创 2015ACM/ICPC亚洲区沈阳站 HDU 5517 Triple (二维线段树)

题意 :略首先我们先假设出a1,b1和a2,b2分别为(1,2),和(2,2)。那么我们发现,其实(1,2)对于答案是根本没有贡献的。所以对于b相同的,取a最大的即可。首先我们定义一个矩阵Map[N][N],Map[c'][d']代表当c=c',d=d'的时候,a所能取到的最大值。那么对于一个点c',d'假如任何的(c''>=c'&&d''>=d'(不包括点(c',d'))如果都没

2016-06-09 21:13:06 550

原创 hihoCoder1252 2015北京区域赛 D.Kejin Game

题意:给你一个有向无环图的技能树,通常地学习某个技能需要学习全部的前置技能,并且需要一定的花费,但你可以通过氪金来消掉某个前置关系或者直接强行习得某个技能,问要学习某个特定的技能需要的最小花费;一开始和队友讨论了下,感觉是树状dp,但是想了想,状态似乎没法转移……正解是最小割,转换成最大流来做(网络流还是不熟练啊……)解法大致如下:1.对于每个技能i,将它拆成标号为i和n+i的两个

2016-06-02 12:06:08 871

原创 HDU 5714 拍照 优先队列前后扫 (2016百度之星复赛)

题意:小明在旅游的路上看到了一条美丽的河,河上有许多船只,有的船只向左航行,有的船只向右航行。小明希望拍下这一美丽的风景,并且把尽可能多的船只都完整地拍到一张照片中。小明位于河的边上,并且可以在河边的任意位置进行拍照,照相机的视野恰好为90度角,只能以垂直于河边的方向进行拍照。河上的船只全都可看作是平行于河边的一条线段,跟河边的距离各不相同,有的正在向左移动,有的正在向右移动,

2016-05-31 22:34:34 543

原创 2015 上海区域赛 D Discover water tank 并查集dp+左偏树

题意:这个博客上说的都很清楚,不再多说感觉这道题可以命名为并查集dp包括题解也是,具体解释一下左偏树的使用。左偏树,说白了就是可合并优先队列,你有两个优先队列,那么怎么才能让他合并成一个呢,stl库的优先队列是做不到的,只能手动实现左偏树,这种数据结构可以实现在o(logn)的时间内合并两个优先队列int merge(int a, int b) { if (!a)r

2016-05-31 22:20:49 858

原创 HDU 5713 K个联通块 状压dp枚举子集 (2016百度之星复赛)

题意众所周知,度度熊喜欢图,尤其是联通的图。今天,它在图上又玩出了新花样,新高度。有一张无重边的无向图, 求有多少个边集,使得删掉边集里的边后,图里恰好有K个连通块。 #include #include #include #include #include #include #include #include #include #defin

2016-05-31 22:15:34 1009

原创 HDU 1880 魔咒词典(字符串hash)

利用双hash来存储,之后利用二分来查找,复杂度O(nlogn)。就是难写了点,可能使用lower_bound会好一点

2016-05-30 22:37:52 431

原创 2015 北京区域赛 Today Is a Rainy Day(暴搜)

首先对于这道题,感觉就是暴搜。我们可以发现,第二种情况是优于第一种情况的,因为假设我某些点最终是需要第一种操作来变换过去,那么早换晚换都是一样的,因为第一种操作可以将任何一个数字变化另外的任何一个数字。既然如此,那么我们就可以通过枚举第二种情况然后看看还剩下有多少个数字不同然后再加上去就好了。那么最重要的就是枚举了那么对于1 2 3 4 5 6(代表原来是1的现在为1,原来是2的现

2016-05-29 20:17:18 445

原创 hdu5579 2015区域赛上海赛区G.Game of Arrays

题意:给你三个数组A,B,C,三个数组长度相等,当中有一些位置可以进行(-1)操作,定义A+B=C为对于三个数组中的每个数都有a[i]+b[i]=c[i],先手想让A+B=C成立,后手不想让等式成立,如果当中某一时刻等式成立则先手胜,否则后手胜,问最后胜利者是谁;首先在于如果要让A+B=C成立,那么每个位置都必须满足a[i]+b[i]=c[i],只要有任何一个地方不能满足,就可以直接输出后手赢

2016-05-29 16:57:40 1186

原创 2015 北京区域赛 K 二叉树乱搞(数位dp 误)

题意:f(2n) = f(n)*3 f(2n+1) = f(n)*3+1 mod k以后,统计异或和n 10^1810^18数据量,一般都要转化成二进制搞据说还有数位dp的做法,并不会#include #include #include #include #include #include #include #include #define N

2016-05-27 21:42:39 423

原创 2015 icpc北京赛区现场赛 Snake Carpet

题意:给你n条蛇,长度分别为(1~n)的蛇,要求将蛇摆放之后形成一个矩形,并且得保证除了1的长度为奇数的蛇拐弯也为正奇数次,除了2以外的长度为偶数的蛇拐弯也为正偶数次。首先,对于奇数的蛇,可以用3包住1,5包住3这个方式先形成一个正方形。在将剩余的偶数的蛇组成一个有一个边长度和正方形相同的长方形之后将两个图形连接起来即可。需要注意的是对于长方形的长度是奇数还是偶数,偶数的蛇的摆

2016-05-27 21:34:03 510

空空如也

空空如也

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

TA关注的人

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