自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Necs的小窝

简简单单coding每一天

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

原创 Redis到底是AP还是CP?

但主备采用异步复制,复制不影响主的使用,存在不一致的状态,在复制过程中,主挂了,将出现主备不一致,因此是非C的。如果在分区容错性(P)情况下需要满足一致性(C),写入必然存在一个写入了节点1,等待写入节点2的这种时间段,这个时间段是不可用的,因此不满足A。PS2:可用性(A),它的定义是“任何时刻都可用”,关键是状态的转换是瞬间的(也就没有了中间状态、软状态),也就是数据写入一瞬间,就从1变成了2。当然,网上一搜,各种各样的狗屁答案都有,有时候是AP的,有时候是CP的,薛定谔的Redis。

2024-06-01 15:19:23 437

原创 lrelease: could not exec ‘/usr/lib/qt5/bin/lrelease‘: No such file or directory的解决方法

lrelease: could not exec '/usr/lib/qt5/bin/lrelease': No such file or directory的解决方法

2023-01-17 00:09:39 701 1

原创 hdu1754 I Hate It,线段树

简单的线段树,求区间最大值和修改某个点的值。#include#include#includeusing namespace std;#define N 200100#define ls (p<<1)#define rs (p<<1|1)#define mid(p) (t[p].l+t[p].r>>1)int v[N];struct segment

2015-01-06 11:21:44 629

原创 线段树新手向攻略

一直想写点什么对读者有用的东西。上篇说了从基础算法好好学起,那就从线段树开始吧。 一、入坑线段树,是一种数据结构。大多有用的数据结构,就是通过一定的维护开销,来获得查询、修改等操作开销的降低。a.它好用吗?在ACM竞赛中还是挺有用的,小比赛到大比赛,简答题到复杂题,都有线段树的身影。嗯,还有人这样评价搞ACM的新人:会写线段树。就是说这个人算是入门了!这样一个能标志着入门ACM

2015-01-06 11:00:13 1000

原创 poj2528 Mayor's posters,线段树,离散化

线段树+离散化。离散化的时候要记得将端点的左边一个点和右边一个点也加进去,不然是错的。也有不用线段树的做法,例如用个堆,参考这篇点这里。#include#include#include#includeusing namespace std;#define N 60100#define ls (p<<1)#define rs (p<<1|1)#define mid(p) (t

2015-01-06 10:18:25 666

原创 poj3264,Balanced Lineup,线段树

简单的线段树#include#include#includeusing namespace std;#define N 50100#define ls (p<<1)#define rs (p<<1|1)#define mid(p) (t[p].l+t[p].r>>1)int v[N];struct segmentTree{ int l,r,mi,ma;}t[N*4]

2015-01-06 09:33:55 627

原创 2014ACM Regional总结

一篇总结本来早该写完。无奈退役之战跪得太惨,心情全无。今年的区域赛,从牡丹江打星rank12,到鞍山遗憾银牌,再到北京卡题卡成狗铜牌滚粗,也算是尝遍了ACM竞赛的酸甜苦乐。其实这也可以说是实力的体现吧。当三个人打题都无比顺的时候确实是有金牌的实力。但稍有一点不顺就与金无缘了。更别说一起卡题的时候。不说难题怪题、奇异的算法没见过,就连最简单的DP、计算几何都能卡住。

2014-12-11 22:03:02 1136

原创 hdu4916 Count on the path,树dp

水题搞了半天也是醉了。以1号节点为根,如果路径不经过根就是1.如果经过根,拆为两条,找这两颗子树中不在路径的最小值和另外一些子树的最小值。大概过程就是dfs(),找每个点往下的最小值。dfs3(),找每个点从上往下不在路径上的最小值。dfs2()找每个点所在的子树。很丑陋的代码,但是明天要比赛,懒得改了!#pragma comment(linker, "/STACK:102

2014-11-15 20:17:57 555

原创 hdu4468 Spy,KMP

给一个串s,找最小的一个串t,使得原串是这个最小串的前缀+前缀+..(很多很多的前缀)+这个最小串构成。很难思考的题目。可以想到一种思路:能用短的匹配,就不用长的。利用KMP,当不能匹配的时候,就从上一个匹配完成的位置开始把剩下的那段加到t中。为什么要找上次匹配完成的位置last呢?因为这样做能保证t是一个最短的能满足构成s[0..i]的串。由于最后需要一个

2014-11-13 15:21:54 646

原创 hdu4641 K-string,后缀自动机,并查集

做完这题还是有点小高兴的。。网上题解都是O(n^2)水的。简单介绍一下我想滴比标程还短还快的O(n+T(并查集))的做法。

2014-11-10 02:02:56 2157

原创 hdu 4670 Cube number on a tree,平衡树,启发式合并

又找到一个启发式合并的练手题。还不太清楚这种算法的可以先看看这篇。这题问的是有多少个路径满足路径的乘积是立方数。其实分解质因数后,用一个long long保存状态,这样就变成了多少条路径满足路径的状态和等于0。在树的每个节点建一个平衡树,自下而上合并时统计,很容易得到这个结果。貌似在相同复杂度的情况下,启发式合并的效果都要比点分治的效果要好(常数要小)。不过调试

2014-11-07 01:25:18 858

原创 hdu 4680 splay,启发式合并

hdu 4680 splay,启发式合并这个题是按照权值建树,一般的区间树操作可能得修改一下。几个操作也很有想法:1.合并两个集合。这里用到启发式合并的方式,也就是把小的集合一个个插到大的上,可以证明合并操作不会超过O(nlogn)2.拔、插。这是splay的基础不用说了。3.改。因为是权值建树,不能直接改。先拔出来改了再插回去。4.这个很巧妙,取最多的点最优的方式

2014-11-06 21:17:50 1480

原创 hdu4674 Trip Advisor,双连通分量,LCA

hdu4674 Trip Advisor,双连通分量,lca这鸟题真是写吐了。简单来说就是缩圈后成为一个树,然后就变成询问树上某条路径path[a,b]是否包含某点c。这里我想屎了,用的主席树,空间卡到死各种改。其实只要用lca搞一下就ok。但是,这里没那么简单,不仅要在缩点后的路径上,还得求出路径在a、b、c、lca块的出、入点。挺复杂的判断才能判断是否能有一个不

2014-11-06 20:44:02 605

原创 人生艰难

深夜怒艹splay。。。哎,又要憔悴了

2014-11-06 04:17:26 804

原创 hdu 5091 Beam Cannon,离散化,暴力

给一些点(2014上海邀请赛的题。正解是线段树。为什么不用?因为我傻。用的O(n^2)暴力水过去的。由于水的姿势比较好还是记录一下。离散化后将点加入每个点加入行的vector中,然后枚举矩形,这样每次挪动矩形只要找到该行的一个范围[sx[k],ex[k]),而这个范围是递增的,所以平摊复杂度是O(n^2)。要注意带注释的两句话,删掉可能会超时。#in

2014-11-04 00:06:18 720

原创 hdu4693 Huge String,高精度,dp

hdu4693 Huge String,高精度,dp给一些字母的替换规则,给一个s串。问替换操作n次后,[k,k+m-1]位置的子串是什么。dp预处理大写字母操作i次的长度。然后dfs找那段的字母就可以了。k明摆的是高精度了。贴板吧。#include#include#include#includeusing namespace std;#defin

2014-11-03 23:50:11 667

原创 hdu4601 Letter Tree,trie,bfs,dfs,二分,rmq

真的是很有意思的题。因为有重复的边,我想了很多贪心搞法都错了。最后还是看了标解。trie+bfs+dfs+二分+rmq。OMG最重要的还是几点吧:1.通过在trie上dfs/bfs可以知道某个节点的hash值大小,因为有mod,直接比较值是没法比较大小的。2.bfs可以将树上同一深度的点放在一个连续区间,而dfs可以求出子树区间,结合就能找到子树中某个深度的最值。注

2014-11-01 21:05:24 536

原创 hdu4611 Balls Rearrangement,模拟

题意:求sum{abs(i%a-i%b)|i=0..n-1},1这题不难,但是我不会。看了网上的题解,居然是根据lcm暴力模拟。从0..n-1模拟,找到下一个最近%a=0或%b=0的断点,计算这一段的变化值。由于这一段差值是一样的,可以一次计算一段的总差值。为什么暴力可行呢。似乎没有人给出合理解释。我来研究一下。n直接取最大值1000000000。那么当

2014-10-30 19:41:36 595

原创 离散化新姿势

新技能get。妈妈再也不怕我没变量名bu

2014-10-30 17:57:50 484

原创 hdu4606 Occupy Citie 简单计算几何,最小路径覆盖

堆砌算法的题。就是长。先用线段相交处理两点之间是否有路径,再floyd求出两点间最短路。注意到占领一个城市之后,补充食物到满,那么只要考虑路径上最长的边最短即可。最大的最小,考虑二分。二分答案mid,小于等于mid的边可行。这样转化为判定用p个人是否能将路径覆盖。也就是最小路径覆盖小于等于p,这是二分图匹配的简单应用。拆点做匹配即可。记得连边只能向指令顺序靠后的

2014-10-29 11:10:23 588

原创 hdu4600 Harvest Moon,模拟

hdu4600 Harvest Moon,模拟自从学了很多莫名其妙、不明所以、看似牛逼比赛却很难想到、想到了又很难打出来、打出来又很难调对的算法之后。。。我发现我越来越不会做模拟题了。这个题……就是注意细节吧。主要有几个:1.统计一下几种铺的方式各有几个,就可以1000D*1000A暴力模拟了。注意,除了3*3的从左上开始铺满之外,先铺右下角的那种比较优。2.如果数据不

2014-10-29 09:16:22 555

原创 hdu4605 Magic Ball Game,函数式线段树

hdu4605 Magic Ball Game求某点到根的路径的blabla....一看就是函数式数据结构。把点的权值推到节点下面的边上。离散化权值后,以权值建函数式线段树。用函数式线段树,树保存两个值,路径边上连接左右儿子的边为该权值的分别有几个。某条路径上的值就是两个节点对应函数式线段树的值相减。离散化时加入一个0,一个inf权值,防止-1,+1越界

2014-10-28 22:54:32 620

原创 hdu4604 Deque,树状数组,最长上升/下降子序列

hdu 4604 Deque,树状数组,最长上升/下降子序列正在补习13多校题。给你一组数,按顺序取出来,再给一个deque,按顺序把这组数取出来插到deque中,可以插头和尾,也可以直接丢掉。要求deque中元素非降。问deque中元素最多有多少个。只要枚举一个中心点,然后就是找这个点之后的大于这个元素的最长上升序列和小于这个元素的下降序列的长度和+1,更新答案即

2014-10-27 23:05:45 896

原创 弱菜,何去何从

弱菜,何去何从五题,鞍山。我们有足够的机会,但却都被我浪费。什么结果已经不重要,更重要的是与强者的差距。北京,将是最后的最后了。机会只给有准备的人。只有最后一个月,却还要忙一些无聊的事情。但无论如何,都要做最后的拼搏。哪怕是垂死挣扎。

2014-10-23 20:32:14 617

原创 hdu4303 Hourai Jeweled 树形dp,统计

hdu4303 树形dp,统计给一个树,边有颜色,点有权值。满足某种条件的路径是好的路径,求(好的路径的(路径上的点的权值和)的总和)。这种条件就是这个路径上没有两个相邻边同色。关键就是算一个点的权值要被计算几次。其实情况就两种,不要重复计算就可以。情况1.包含(u,fa)这条边的路径。情况2.不经过fa,而包含(u,v)这条边的路径。这里要注意,如果有多个儿子

2014-10-17 15:40:38 581

原创 hdu4057 Rescue the Rabbit,AC自动机,状态压缩dp

hdu4057 Rescue the Rabbit,AC自动机,状态压缩dp题意:给n(一个串只能被计算一次权值。将这些串建trie树,那么树节点不会超过1000个。然后状态压缩dp,状态有2^10=1024种,节点数1000个,每次转移有四种,共有100次转移,转移用AC自动机优化就是O(1)。因此复杂度就是O(1000*1024*100*4)。实际会更小一些,因为树

2014-10-15 22:41:07 546

原创 hdu 4052 Adding New Machine,set

hdu4052 Adding New Machine,set比较老的题。给一个矩形和一些已经覆盖了的小矩形,问在剩余的空格上放一个长为m的条有多少种放法。可以用线段树化为矩形面积并搞。这里练习一下平衡树的做法,set也比较短。把矩形变为入和出两个事件,根据这些事件计算某行有多少空格,就能计算横着放有多少种放法。然后横竖各做一遍。这里利用set可以找到插入线段的两端第一个非空

2014-10-15 22:19:41 576

原创 poj2528 Mayor's posters,优先队列

poj2528 Mayor's posters,优先队列给你一些海报,贴在墙上的顺序,问最后可见的有几张。墙可以看成一个线段,没有高度。这种问题当然线段树可以解决。区间更新。最后扫一遍有几种。但是这种离线的区间问题,用左进右出的做法更简单。这里用到一个堆/优先队列。连离散化都不用,排个序即可。每条线段化为两个点,左端点和右端点+1。排序一下这些点。还是从左往右扫

2014-10-14 17:49:22 927 11

原创 2014 ACM/ICPC牡丹江区域赛部分题解

牡丹江打星rank12也是醉了……人品已经败完。简要题解:zoj3819 Average Score:求平均数,floor,ceil什么的。。zoj3820 Building Fire Stations:求树上两个点,使得其它点到这两个点任意一个的距离最大值最小。求出树的直径,二分最大距离在直径上找到两个点,bfs判断这两个点是否到达其它点距离不大于二分的这个距离即可。O(nl

2014-10-12 20:17:35 1188 1

原创 要出发了

转眼就快要启程比赛了。一直想写什么矫情的的文字最终还是忍(lan)住(de)了。总之我感觉我们队的实力,拿个银都不是特别稳定。虽然也曾满怀对金牌的憧憬,但是毕竟环境原因,人为原因,各种原因,其实最重要的还是自己的原因,并没有付出120%的努力。所以也只能这样了吧,毕竟也这么老了,顺其自然尔。好好比每一场,不要太紧张,自信一点,别人都过的题我肯定也能想出来,别人没过的题咱

2014-10-07 18:41:37 613

原创 高精模板

自己写的高精模板。测试过这些题:poj3378,poj2506,poj1001高精小数,poj1406,poj2389,poj1306,poj2325。当然poj的坑爹数据,不保证是不是还有坑点。不过好处是没有刻意缩行,意思比较明白,可以根据具体题目稍作修改或是扩展。notice:0.l保存位数,从0开始。s[maxl]保存每一位数字。1.bsize 是一个

2014-10-07 18:23:26 566

原创 hdu 4729 An Easy Problem for Elfness,函数式线段树

hdu 4729 An Easy Problem for Elfness,函数式线段树13年成都网赛的题。主要是问一个树上的某两个点间的路径,你可以对某些边增加一些流量,最多这个路径上能流过多少流量。题目意思比较复杂(废话多),最大流量可以分成这几种情况:1、增加一条边,剩下的费用用来增加这条边的流量,加上本来两点间的流量。2、所有的费用用来建新边,加上本来的流量。3、

2014-10-07 16:39:02 709

原创 hdu4348 To the moon,函数式线段树

hdu4348 To the moon,函数式线段树修改某个区间,求某个区间的和,求某个区间过去某个时间的和,回到过去某个时间。这是函数式线段树的裸题了。修改区间可以将区间的变化量保存在对应区间的节点上,这样就不用lazy了。lazy还会导致更多的空间消耗。由于卡空间,我只好把线段树写成了不保存左右端点的形式(不符合我风格啊)。

2014-10-07 11:35:30 805

原创 poj1741 Tree,平衡树,启发式合并

poj 1741 Tree 平衡树,启发式合并。楼教主男人八题之一。点分治看腻了吧。来点新鲜的。关于启发式合并,我的上篇博客已经写了一些,请移步这里:http://blog.csdn.net/asdfgh0308/article/details/39790613这题和hdu4812一样,也是询问是否存在/存在多少个树某个路径满足条件。同样,每个叶节点建一个包含自

2014-10-07 03:19:56 2915 6

原创 hdu4812 D Tree,平衡树,启发式合并

今天模拟2013南京赛,两个半小时做完5题开始梦游。每次都出不了难题有木有!都是水题的场手速又拼不过有木有!hdu4812 D Tree,南京的k题。每个点有一个权值,问是否存在一条路径,路径所有点的权值乘积模1e6+3等于k。这个题,大家基本都是用点分治过的,复杂度O(nlogn)。这里介绍一个有趣的解法,也是一个我感觉很有用的思想:启发式合并。先说说启发

2014-10-05 00:48:03 1605

原创 hdu4787 GRE Words Revenge,AC自动机,平方分割

hdu4787 GRE Words Revenge,AC自动机,乱搞,,题意,给一些串(单词)学习,再给一些串(文章),要找出已学习的串中不同的串在该串中出现的次数总和。强制在线。如果一次将所有单词学完,再问这些文章中单词的出现次数,这就是AC自动机的裸题了。但是这里要求边学习边询问。ac自动机的Build过程将会成为复杂度瓶颈,最差O(n^2)。看时限比较宽松,这题需

2014-10-03 21:09:58 1116

原创 poj3378 Crazy Thairs 高精度,树状数组

poj3378 Crazy Thairs 高精度,树状数组为了比赛,准备整理一套高精模板。虽然赵老师会Java,但是这玩意总是莫名不靠谱。本题,给一个有序集合,问原序满足从小到大而且值满足从小到大的五元组有多少个。按值建树状数组。每个点保存5个值,代表以当前节点为最后一个元素,长度为i(1然后按原数组序从左到右插入。每次查找比当前点值小的,长度为i-1的有集合总数,则当

2014-09-20 11:20:16 882

原创 poj2376 Cleaning Shifts 贪心

poj2376 Cleaning Shifts 贪心问最少选多少个区间能包含整个区间。如果一个区间包含另一个区间,那么那个区间就没有作用。先处理这些区间,使得后一个区间的起始值大于前一个区间的起始值,区间的结束值大于前一个区间的结束值。再用一个结束值递增的栈,对于每个区间,如果这个区间和栈次顶的区间能相连,能包含栈顶的区间,那么栈顶区间无用,弹出。最后栈中元素个数就

2014-09-19 14:01:21 539

原创 poj3252.Round Numbers,组合数

曾经,离开的时候,utoppia同学和我打赌说我的POJAC题数不会超过300。现在,我又回来,固执地做着没落的POJ,只为那个约定。你却再没有机会和我并肩作战。不久,我们队又将出发,带着utoppia的名字,继续未完成的梦。废话完毕。Poj3252.Round Numbers。将数化成二进制,问在[start,finish]区间内的数满足0的位数大于1的位数的数有多少个。

2014-09-19 11:30:34 470

原创 hdu5008 Boring String Problem,2014西安网络赛B题,后缀数组,RMQ

hdu5008 Boring String Problem295分钟惊险ac。问一个串的不重复连续子串中,字典序第k小的子串是哪个。如果存在多个同样的子串,要求输出l最小的那个。显然,通过后缀数组可以求出所有的不同子串数。对于某个点l,后缀长度减去height的值就是该点为左端点所能贡献的不同子串数量。对于后缀排名靠前的点,以这个点为起始的所有子串都会比排名靠后

2014-09-14 20:17:00 839

空空如也

空空如也

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

TA关注的人

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