自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qkoqhh

什么都没有

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

原创 cf55D(数位DP+离散化+各种优化)

这个题比较不好弄。。首先要维护搜到当前的lcm,以及处理余数问题。。余数这个取谁的余比较好呢。。这个需要取1-9的lcm比较好,利用公倍数的性质,将余数状态强压到2520以内然后复杂度就变成了20*2520*2520了。。。还是会爆。。然后再来个离散化把1-9所有公倍数组合提取出来。。其实就是2520的因子。。实测有48个。。然后复杂度又降成了20*2520*48。。在记忆化搜

2018-01-31 16:13:53 593

原创 cf918C(贪心)

贪心真的是弱。。。假期还得好好练练qaq这个主要是在问号的处理,转念一想,问号如果能取)就尽量取),这样早点配完就可以把前面那部分给扔掉了。。如果不能取)就要把当前序列中最后一个?取(来和这个?或)匹配。。当然还假设了?取(的配对情况,为了避免右括号过多无法匹配到左括号的情况。。#include#include#include#include#inclu

2018-01-31 12:03:51 227

原创 Welcome&&Introduction

好像这个blog并不是没人鸟。。所以还是得向客人表示一下问候才行丫。。做个自我介绍:常用ID:qkoqhh初中开始无脑搞OI,由于智商不够+不够努力,到现在还是条咸鱼。。然后来到xdu,在聚聚萌的带领下开始搞ACM。。虽然进度很龟速就是。。然后爱好是看番。。。还是忠实的车万粉。。QQ:1374363741                 欢迎交流然后说明一下这个

2018-01-29 19:29:19 359 2

原创 LightOJ1032(数位DP)

这个还是非常好统计的。。统计好首位为1的数的个数就没啥了。。不过这个oj的数据还真是良心。。基本过了样例就可以A了。。。#include#include#include#include#include#include#define inc(i,l,r) for(int i=l;i<=r;i++)#define dec(i,l,r) for(int i=

2018-01-29 19:04:10 231

原创 LightOJ1140(数位DP)

所以。。。大家说的LOJ到底是LightOJ还是LibreOJ?= =!终于有道比较清爽的数位DP题了。。虽然写得依旧很慢就是。。qaq统计0的个数。。。这个需要稍微分一下是不是前导0,标记一下前面有没有非0数即可,然后。。就是在统计数的个数时太想当然了。。以为是10^n什么的。。计算上界的时候可不是这样的耶。。所以要边转移边统计。。用cin的原因是。。。用%llu输入时编译器不造

2018-01-29 18:13:23 270

原创 hdu3709(数位DP)

debug了好久发现是数组开太小了!!!(砸这样弄。。枚举平衡点位置然后直接数位DP即可,把比平衡点高位记为正,低位记为负,这样只要令最后结果为0即可然后需要证明一下平衡数的平衡点是唯一的。。(其实是一开始忘了这种情况。。对任意平衡数,以平衡点左移为例,左边的数的权重会变小(除非本身为0),右边的数的权重会变大(除非本身为0)由于对正数来说,左边的数的权重是不可能为0的。。所以

2018-01-29 16:53:44 151

原创 hdu3652(数位DP)

这道比较繁琐。。除了处理13之外还得处理整除,这样就无法用排除的方式筛选了。。方程大概是这样的。。d[i][j][k][v]为扫到i位,末位为j,余数为v(假设后面全为0),k代表前面是否找到13然后转移按照题目要求转移,这对记忆化搜索来说不难。。方程维数增多对想出方程和实现过程都带来了一定难度。。所以还是得适应高维的方程才行。。然后需要注意的是满足题目要求的并不多。。即d里面有很

2018-01-29 14:25:54 224

原创 hdu2089(数位DP)

开始填数位DP大坑。。(鉴于数位DP对数学的要求并不高。。看了一下原来数位DP是要用记忆化搜索写比较方便。。。原因是容易传递是否到达上界和下界。。不过下界一般不用判断,毕竟我们还可以差分嘛。。。这题的方程十分明显了d[i][j]=sum(d[i-1][k])当且仅当j!=4&&!(j==6&&k==2)然后数位DP的主要难点还是在转移这块吧。。多练练应该就会了。。#

2018-01-28 22:11:14 122

原创 noip2015D2T2(DP)

记得当年就是被这题坑得不浅吧。。现在回过头来做还是不会TAT主要是自己老是想一个一个子串加上去。。事实上一个一个字符加上去问题就简单多了。。设d[i][j][k]为扫了A的前i个字符和去了第i个字符,B的前j个字符和取了第j个字符,然后用了k段的方案然后得出方程然后复杂度为O(nm^2k)然而求和那块如果用前缀和代替可以降成O(nmk)然后考虑到内存可以会爆可以使用

2018-01-27 12:20:55 188

原创 牛客练习赛11E(最近点对)

这个题出得还是蛮好的其实。。要不是看到很多人A了窝可能就被数学劝退了。。表面是数学题,那个函数分析一下就会发现和距离公式很像。。设h(x)为a的前缀和,那f(x)就是h(x)上2点之间的距离,即求h(x)上的最近点对。。然后关于最近点对窝是没学过。。然后由汪聚聚提供了模板。。过后要学。。可以很容易发现这个是个分治算法。。。而且合并时候复杂度相当危险。。一开始用的时候果然T了,分析了一下发现x太小而...

2018-01-26 22:39:04 265

原创 hdu4539(状压DP)

这个做法感觉比较危险啊。。不过最终竟然才用100+ms也是神奇。。。将每行的状态压缩二进制数,然后筛出点点之间不冲突的状态,总共不超过170。。。然后因为前2行的状态都会影响到当前状态的选择。。由于dp的影响无后续性所以我们必须将这2行一块处理了所以d[i][j][k]表示第i行时,i行状态为j,i-1行状态为k时的最大兵数然后直接把符合状态的再加上j的1个数就行。。这个还能预

2018-01-26 18:41:10 220

原创 poj3311(flyod+状压DP)

这类问题貌似叫TSP问题。。然后这个好像还是NP问题。。(算了到现在都不造NP问题是什么。。qaq)先来个flyod算出最短路(好久没写过最短路了耶。。),然后直接记录经过了哪些点,直接二进制压缩就行。。由于还要在折返回去,所以要记录当前状态最后一个点在哪,在经过所有点的基础上返回1点。。。转移的话顺推会比较快一点。。。#include#include#includ

2018-01-25 18:07:01 452

原创 poj3254(状压DP)

状压DP虽然以前是学过了。。不过也忘得差不多了吧。。主要考察对位运算的灵活运用,然而这是需要积累的。。另外。。状压DP不是很好debug,往往打出表来也是一脸懵逼的。。判断行与行之间是否有相邻直接与,列与列之间是否有相邻需要x&(x其他就直接转移。。#include#include#include#include#include#include#defi

2018-01-25 17:11:21 144

原创 UVA11610(欧拉筛+二分+BIT)

看到数论其实就有点虚了。。还好欧拉筛自己还是会的。。其实很明显可以看出最后一个数位一定是0,那么在处理的时候先提出个2和5,把1e7降成1e6然后在1e6内筛出素数,题中的reverse prime就是把这些素数翻转后加0,然后排序。。当然我不是很想排序。。所以直接枚举了各个数去翻转,免去了排序。。然后就是把这些数的因子提出来。。在提的过程中可以判断剩下的数是不是素数。。这样可

2018-01-24 18:44:47 233

原创 poj 2464(离散化+BIT)

不得不说是一道比较烦人的题。。细节比较多由于没给xy范围所以必须先离散化。。之后再开2个BIT,以y值为下标维护点的个数,在枚举x时,一个BIT维护x左边的点个数,另一个维护x右边的点,然后在枚举的时候主要按点对BIT进行维护,对每个点进行差分求方案,对每个x求得最优方案后还要记录方案来求oli的得分。。然后记得输出oli得分要去重。。#include#include

2018-01-24 13:00:12 270

原创 hdu 2852(BIT+二分)

找比k大的数,可以加上k前面的个数,然后转化为求第k大数把数作为下标,然后维护小于x的数的个数,然后查找的时候二分即可,时间复杂度O(n*logn*logn)当然如果用线段树是可以达到O(nlogn)的。。不过这题的意图是BIT,而且还放宽了时限。。#include#include#include#include#include#include#define

2018-01-22 19:39:28 232

原创 cf914D(线段树+思维)

看到可以允许改一个数我就懵逼了..那我是不是得统计所有情况?感觉完全没思路..然后汪聚聚提出一种思路..算出能被x整除的数的个数..然后就可以处理误差了...(真是好巧妙的思路蛙orz!!)实际操作中只要处理不能被x整除的数,维护gcd,然后如果2个分支都不能整除就可以退出了,如果只有一个那么就要探到叶子,所以一次操作复杂度为logn#include#incl

2018-01-22 12:22:58 505

原创 cf914C(数位DP)

有点感动..竟然当场独立做出了数位DP..感觉假期这个或许可以练得起来?看到要直接统计各数的变换次数绝对是不现实的..可是如果手动先变换一次的话就变成1000以内了,这样就可以在统计变换次数的基础上+1就可以了..那么剩下的就是把符合题目的次数的数给挑出来了,其实很明显变换次数和1的个数有关,所以有必要把1个数的相同的归类,所以并没有什么特别正式的转移方程,处理1个数统计对各位数扫一遍

2018-01-22 12:15:11 311

原创 寒假计划

计划自己早就有了。。。不过好像没几天就忘记了。。所以在这里的话经常看到或许会有一些提醒作用?ACM这方面还是得有个计划才行。。。不过说来这学期貌似没学到什么新东西呢。。或许去做做div1题就知道自己该学什么了?那这样主要是复习了,暂定如下吧:学习:计算几何、数位DP、概率DP、扫描线加强:BIT、贪心(这个可以等同于学习了)复习:斜率优化、网络流(最大权封闭子图)、费用

2018-01-20 00:20:00 316

原创 cf915D(拓扑排序)

emmmm这题一开始想直接一条条边删然后判环,不过目测是会TLE的啦。。所以就往一些奇葩的思路想去了。。GG其实思路已经差不多了,不过考虑到去边的目的是去环,那么可以直接找一个环在上面去边就可以了,这样边的数目最多为n,然后稠密图判环就不能太随便了,拓扑排序才是正统的方法,别忘了。。。#include#include#include#include#includ

2018-01-18 22:20:43 341

原创 cf915F(神思维)

初看这题还以为可以链剖。。。和bzoj3626非常相似。。往这个方向想了一下发现可行性并不是很好。。因为要统计链上最小数而且如果有一样的最小数就麻烦了。。。然后看了下cyc的代码。。。只能深深的被其想法折服。。先找最大值。。按点权从小到大依次加进去,等到相邻的时候就可以统计了。。。语文不好请看代码。。。#include#include#include#

2018-01-16 00:30:40 1017 4

原创 cd 915E(离散化+线段树)(新线段树模板)

写了一个新的线段树模板,相比上次的尝试这次的代码量有所减少有耶。。emmmm先看看这题吧。。。汪聚聚动态开点pp了然而最终还是T了,毕竟复杂度接近1e7的话确实有点危险。。然后正解其实是离散化。。。太弱了想不到qaq离散化之后直接维护就可以。。然而没怎么写过离散化写起来困难重重蛙qaq还是要多提高自己的姿势水平。。。#include#include

2018-01-15 22:25:23 352

原创 cf913C(贪心)

这次题目还是出得有水平的,考的不是手速了,而是思维,另外也不会让人感受到有心无力。。还暴露了自己一些严重的问题,总的来说土神就是土神好久没写过贪心了,貌似高中也没怎么写过,遇到了也是想了蛮久才想出最优策略。。按单位价格把排序,怕单价会有精度问题就直接转除为乘了。。然后依次往总容量里面填,让单价小的尽量填,然后一般会出现填不满的情况,试着再加一个当前的罐子,加上当前的已用的费用来找出最优

2018-01-09 15:44:49 345

原创 cf913D(二分答案)

真的是一遇到二分答案就猝不及防丫。。回想起了那年的跳石头qaq这种思维还真不好练,刷题并不能起到什么作用,估计我得再被坑害几次才会掌握吧qaq这题的二分貌似是想了半小时才想出来,不过实现的时候发现自己已经长年没写二分,写起来手非常生疏,犯了好多傻逼错误,心态爆炸云云。。早知道当时应该直接推掉重写,而且还误解题意qaq靠样例看题不行蛙qaq题目事实上只对分数作了要求,对题量并没有要求,那

2018-01-09 15:07:43 318

原创 bzoj 3626(神思维+链剖+线段树)

emmmm这道题的思路实在是神。。虽然做过然而做过一遍还是做不出来。。本来还想到了另外一种思路。。。不过写完调来调去发现这个思路完全是错的qaq要是这样把队友坑了那怎么行qaq继续贴清华爷gconeice的题解。。显然,暴力求解的复杂度是无法承受的。考虑这样的一种暴力,我们把 z 到根上的点全部打标记,对于 l 到 r 之间的点,向上搜索到第一个有标记的点求出它的深度统计答案。

2018-01-08 14:53:41 208

原创 bzoj 2243

emmm没错又是链剖。。转化成区间之后题目的奇怪询问看出这题是非线段树不可了,记录左右端点的颜色,然后对树链进行合并。。合并时有一个麻烦的问题就是这里的区间是有方向的,所以在合并时要写多几步来处理这个方向问题。。于是代码又长了一大截。。#include#include#include#include#include#include#define inc(i,l,r)

2018-01-07 13:22:29 168

原创 bzoj4034(dfs序+BIT/链剖+线段树)

记得以前是用链剖+线段树做的,在链剖的时候顺便维护dfs序,思路简单实现起来就有点麻烦了。。可参照:http://www.cnblogs.com/onlyRP/p/5041702.html回顾这题发现其实主要是2操作针对子树而3操作针对链,而且唯一的询问操作3的链其实是到根的权值和,那么就想能不能直接dfs序进行操作呢?做一遍dfs序后我们可以用前缀和求出权值和,操作1修改点权值就

2018-01-07 10:38:18 254

原创 bzoj 1036(树链剖分+线段树)

继续练一下链剖吧。。这次写的蛮久的不过还是尽量避免了盲目使用gdb看到单点修改其实蛮想用BIT的不过鉴于要求区间最大值BIT还是用不上啊,用log^2n的算法担心会超时。。所以这题应该算是比较标准的链剖了。。#include#include#include#include#include#include#define inc(i,l,r) for(int i=l;i<=

2018-01-06 22:14:28 215

原创 bzoj 3611(链剖+前缀和)

来复习链剖吧。。以前一直认为链剖和线段树一定是标配。。其实以前学链剖的时候没有理解到位。。链剖可以说和dfs序是同一种手段,他们都是把树结构映射到数组上去的手段,因此链剖准确来说应该是一种算法而不是数据结构。这题是有关树上路径维护的,所以当然用链剖,一开始想用线段树维护(思维形成定势了?qaq),后来发现这题没有在线询问,所以我们完全可以离线处理 ,这样的话直接维护前缀和即可。。这题记得以

2018-01-06 20:17:33 195

空空如也

空空如也

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

TA关注的人

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