自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Cold_Chair的博客

一位蒟蒻的事故记录

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

原创 各种要有认知的常识、技巧(updating~~)

说在前面的:看到很多dalao的博客都有这种东西,想起NOIP的经历,不禁心酸。为了避免那样的事情再发生,防止发生,禁止发生(重要的事情说三遍!!!),博主经过深思熟虑,决定开这篇博文。这篇博文的内容可能来自于博主自身的车祸,或者是博主身边基友的车祸,或者是博主在网上看到的车祸,总之都是经验。由于某P将被淘汰,所以这篇博客讲的都是C++的错误。头文件:知乎上告诉我们:

2017-12-22 21:21:51 914

原创 【WC2016模拟】Fountain

Description: 1<=n<=40,1<=d<=10^5,1<=ri<=40题解:傻了傻了,考场竟然没做出这道题。《ZJOI波浪》是这题的加强版。d是没有什么卵用的。考虑把放的喷泉压到最紧,则长度=∑n−1i=1max(r[i],r[i+1])\sum_{i=1}^{n-1}max(r[i],r[i+1])。套个挡板问题即可求出在长度d下的方案数。现在这个dp很容易想到用笛卡尔树去dp。把

2017-12-30 07:32:27 432

原创 【WC2016模拟】String

Description:题解:一眼就是在后缀树上乱搞。仔细思考可以用dsu on tree+线段树来维护,常数巨小。nilil说用后缀数组+Cdq分治+线段树。大概是这样: 对于一个区间[x..y],设m=(x+y)/2那要求跨过m的两个点的答案。可以设l,r。l往左边扫过去,得到一个到终点的height的min值。同时r往右边调。使r到m的height的min值小于等于l的。反着做一遍。r往右边

2017-12-30 07:13:14 514

原创 Code+ 12月月赛Div 2解题报告

化学狂暴:链接. 题目读的很辛苦,特别是当我一开始看到pdf的文件时,有些慌。 然而这个就是读入输出就好了。 仔细读题。可做题1:链接. 注意一个矩阵是合法的,则它所有的子矩阵也是合法的,这个易证。对于一个矩阵: a1 b1 a2 b2有a1 +b2 = a2 +b1 a1 - a2 = b1 - b2 a1 - b1 = a2 - b2这就是题解所说的行差分的列差分相等。那么Mi,

2017-12-26 18:42:54 301

原创 【GDKOI2016】寻宝

题目大意:有一个n个点m条边的图,每个点有两个值u,v. 选出一个闭合子图,使∑ui∑vi\sum u_i \over \sum v_i最小。1<=n<=1000,1<=m<=10000题解:二分个答案ans,问题转换为判定性问题: ∑ui∑vi<=ans{\sum u_i \over \sum v_i}<= ans ∑ui<=ans∗∑vi\sum u_i <=ans*\sum v_i ∑

2017-12-22 21:03:31 632

原创 【GDOI2017第二轮模拟day1】公路建设(克鲁斯卡尔最小生成树+线段树+归并)

题目大意:给出n个点,m条边。 q组询问,每次询问编号在[l..r]范围的所有边做克鲁斯卡尔最小生成树的代价。1<=n<=100,1<=m<=100000,1<=q<=15000题解:n好小啊。可不可以线段树啊。套个归并就可以啊。莫队+lct可不可以啊。时间复杂度:O(αmn+α q log m n)Code:#include<cstdio>#include<cstring>#define f

2017-12-22 20:49:18 455

原创 类欧几里得算法乱搞记

这三个f,g,h让我的脑子快要爆炸,还是终于推了出来,记录一下。记得初一的时候就无意间在ZJY的PPT翻到了这个东西,当时和WYT推了一波,到现在连个印象都没有。据说有几何推法,我这么渣肯定是不会的了。参考博客:Xdl.定义:f(a,b,c,n)=∑ni=0⌊ai+bc⌋f(a,b, c, n) =\sum_{i=0}^n{\lfloor {ai + b \over c} \rfloor} g(a

2017-12-20 20:47:18 676

原创 【NOIP2013模拟联考12】数数(数位dp||类欧几里得)

Description:ztxz16从小立志成为码农,因此一直对数的二进制表示很感兴趣。今天的数学课上,ztxz16学习了等差数列的相关知识。我们知道,一个等差数列可以用三个数A,B,N表示成如下形式:B + A, B + 2 * A, B + 3 * A, …, B + N * Aztxz16想知道对于一个给定的等差数列,把其中每一项用二进制表示后,一共有多少位是1,但他的智商太低无法算出此题,因

2017-12-19 22:10:25 1017

原创 【清华集训2017模拟12.10】回文串(回文树+树链剖分)

Description:NYG 很喜欢研究回文串问题,有一天他想到了这样一个问题: 给出一个字符串 S,现在有 4 种操作: • addl c :在当前字符串的左端加入字符 c; • addr c :在当前字符串的右端加入字符 c; • transl l 1 r 1 l 2 r 2 :取出 S 的两个子串 S[l 1 …r 1 ],S[l 2 …r 2 ],现在 NYG想把前一个字符串变换为

2017-12-19 21:54:10 476

原创 【NOI2017模拟6.2】字符串

Description: 1<=n<=10^6,1<=∑|S|\sum|S|<=10^6题解:不同子串肯定和后缀自动机有关。对每个串搞出后缀自动机。关键在于如何合并这些玩意。倒着做。设fxf_x表示到x状态往后搞的不同串的方案数。可以枚举它的下一个字符是什么,如果自动机里有边,就可以直接走过去传递。 如果没有,可以找到后面的自动机中第一个root有这个字符的对应的状态,从那里转移。答案就是所以最

2017-12-15 18:24:07 284

原创 回文树(回文自动机)学习小记

参考资料:翁文涛在2017年国家候选队的论文。前言:感觉这个东西比后缀自动机好理解。博主是看wwt的论文学的:wwt给出的这种不用打通配符的方法更加简洁。定义:回文树有两个根。分别为even,odd,长度分别是0和-1。len为一个点代表的字符串的实际长度。fail为这个点失配后的最长回文后缀。go是自动机的边。构建:fail[even]=odd用和后缀自动机一样的增量法。考虑当前的串是t,在t后面

2017-12-13 20:31:47 578

原创 【GDOI2017 day1】微信

题目大意:给出20棵trie。每次询问问某几棵trie的子串的lcs。总长小于10^6。题解:已经退役的wyx当时说:“又是裸题,真没意思。”呵呵。可惜初二的我连后缀自动机是什么都不知道,只会那个弱弱的AC自动机。如果没有每次的询问,那么这个跟SPOJ的lcs2没有什么区别,这个只是广义后缀自动机。前一篇博客已经讲过,广义后缀自动机和正常的真的没有毛线区别。现在重点在于每次询问某几棵怎么办?只有20

2017-12-12 22:06:49 312

原创 【ZJOI2015】诸神眷顾的幻想乡(广义后缀自动机)

题目大意:有一棵有n个节点的树,每个节点上有一个数字。 求所有树的路径中,所形成的字符串中不同的有多少个。 1<=n<=10^5 叶子节点数小于20。题解:其实我很不解一个裸的不能再裸的题为什么会是ZJOI Day1 的最后一题。也许是因为后缀自动机2012年才提出来吧。首先注意叶子节点数小于20。这启发我们以它们为根,去建树,这样会有20个trie,再合并,就有一棵大tried。现在的问题在

2017-12-11 22:07:36 551

原创 【清华集训2017模拟12.10】大佬的难题

题目大意: 1<=n<=2e6,时限:2.5s题解:容斥原理瞎搞。设A,B,C分别为满足三个条件的集合。根据容斥原理,有: A∪B∪C=A+B+C−A∩B−A∩C−B∩C+A∩B∩CA∪B∪C=A+B+C-A∩B-A∩C-B∩C+A∩B∩C而A∪B∪C同时会等同于总数n∗(n−1)n*(n-1)-都大于的个数(即都小于的个数A∩B∩CA∩B∩C)所以: n∗(n−1)−A∩B∩C=A+B+C−

2017-12-09 15:57:53 507

原创 hdu 4622 Reincarnation

原题链接.题目大意:给出一个字符串。 求它的一个子串的不同子串有多少个。 多组询问。 1<=n<=2000题解:显然可以离线。枚举左端点,往后用后缀自动机直接搞就行了。但是有个问题: 如何知道每次新加了多少条路径?注意到对一个状态有一个性质: root到状态x的路径长度在(step[parent[x]],step[x]]这个范围。而且好像区间内每个长度的路径数只有一条,这个我还没有搞明白。

2017-12-08 21:02:17 246

原创 SPOJ LCS2 - Longest Common Substring II

原题链接.题解:变成了多个串的最长公共子串了。还是对一个串建后缀自动机。其它的串放上去跑。对于每个状态求一个最小值,最后答案求一个最大值就行了。但是注意在匹配过程中,匹配到一个状态,但是实际上有很多状态也被匹配到了,考虑这种情况一个状态的值需要传递给它的parent。这个可以全部求出后按Turpo序来搞。为什么只传给parent是对的呢?后缀自动机有一个性质: 两个子串的最长公共后缀为它们对应状态

2017-12-08 19:57:32 249

原创 SPOJ LCS - Longest Common Substring

题目链接.题解:后缀自动机的例题。首先要知道一个性质: 一个状态s,所能代表的子串长度是(stepparentx,stepx](step_{parent_x},step_x]。对串A建后缀自动机。串B在上面跑。如果x有对应的子节点,那么直接走过去,len ++如果当前的x状态上没有对应的子节点,那就x = parent[x],直到有对应的子节点或者出了自动机。出了自动机,len = 0,注意把x赋

2017-12-08 19:15:29 267

原创 后缀自动机学习小记

前言:我学习这个东西吧是很懵的,结合了多篇论文和博客才搞懂最基础的构建,需要细细琢磨。推荐论文:陈立杰冬令营上的论文,有些小错误,而且我讨厌指针。 张天扬集训队的论文,里面讲了许多应用。推荐博客:后缀自动机学习总结——functioner.后缀自动机的定义:我也没搞清楚。 有限状态自动机的就是能识别字符串。 而后缀自动机就能识别一个字符串的所有后缀,当然同时能识别子串。后缀自动机的构建:一个显

2017-12-06 20:41:28 351

原创 【GDKOI2014模拟】树的直径

题目大意:并不想讲。题解:树的直径有一个性质。现在有两棵树,如果把它们随意连一条边,会变成一棵树,新树的直径的端点一定是之前两棵树的直径的共4个端点的两个。所以这题搞个倍增就可以在线了。Code:#include<cstdio> #include<algorithm>#define fo(i, x, y) for(int i = x; i <= y; i ++)#define fd(i, x,

2017-12-04 12:16:53 394

空空如也

空空如也

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

TA关注的人

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