自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ylsoi的博客

A man won't be old if he is still seeking.

  • 博客(262)
  • 资源 (1)
  • 收藏
  • 关注

原创 C++对拍程序简单写法

运行这个对拍程序的前提是数据生成器,暴力,正解都是用文件输入输出,且输入输出文件需要对应windows系统下C++对拍程序#include<bits/stdc++.h>#include<windows.h>using namespace std;int main(){ while(1){ system("gen"); ...

2018-04-05 10:48:03 1938

原创 如何自动删除编译代码时产生的多余文件(swap.in.out.exe)

本人之前有把自己代码保存在某文件夹内的习惯,但是过了不久之后发现了一个问题,在编译文件的时候由于要文件输入输出,经常会有.in,.out文件的产生,以及还有exe文件,占了不少的内存,这么一来这个文件夹里面也不是很美观,以后要搜索这个文件夹内的代码也不是很方便,于是花了一点时间,研究了一下自动删除该文件夹内文件格式不是cpp的文件的程序。#include<iostream>#...

2018-01-15 20:39:15 1561

原创 vim配置文件

noi linux下配置set cindent set autoindentset smartindent set autoreadset cursorlineset cursorcolumnset backspace=2set tabstop=4 set softtabstop=4set shiftwidth=4set numberset mouse=acolor...

2017-11-09 21:22:39 1014

原创 bzoj4231回忆树——AC自动机

bzoj4231 回忆树给定一颗Trie树,每次询问u到v的路径上构成的字符串包含了给定模式串T多少次。思路考虑离线之后对于所有的模式串建立AC自动机,考虑跨过lca的串范围有限,直接暴力kmp即可。然后我们就将一次询问拆成了两条链了,可以将每次询问挂在链上然后离线去dfs,每次dfs时将这个节点添加进AC自动机匹配,对于一段u到v的链,我们在链头的某一个位置减去之前不合法的匹配数量,再在...

2019-07-02 20:18:46 551

原创 喵星球上的点名——记一个用广义SAM根号维护多串的技巧

喵星球的上的点名给定一个字符串集合S,每次给定T询问S中有多少个字符串中包含T,最后询问S中的每一个字符串包含了多少次给定的T。思路考虑将这S个字符串建立广义SAM,那么我们每次将T放到广义SAM中去匹配,最后匹配到的节点的parent子树中来自不同串的结束位置数就是第一问的答案。同样我们每次匹配完之后在节点处打上标记,第二问S中每一个字符串的答案就是每一个结束位置能够一直往上跳链跳到的不...

2019-07-02 20:17:05 391

原创 NOI2013 树的计数

NOI2013 树的计数给定一个dfs序和bfs序,求解符合这两个条件的所有树的平均树高。思路如果我们能够给bfs序中每一段区间分层,然后再去对应dfs序,不难发现可以唯一确定一棵树,即在dfs的过程中,前后两个节点的关系可以按照层数来判断,分为儿子或者是某一层祖先的另外一个儿子。而给bfs序分层的时候我们需要满足一些限制:bfs序中同一层在dfs中访问顺序必须严格按照bfs的访问顺序...

2019-06-18 19:00:10 467

原创 拆系数FFT学习笔记

拆系数FFT学习笔记拆系数FFT当题目中取模的数不是NTT模数的时候,我们无法利用原根来进行快速数论变换,这个时候就要用到毛啸论文里提到的拆系数FFT。大致思路拆系数FFT实际上是将多项式卷积之后的值具体算出来,普通的FFT由于精度误差较大,当然无法胜任。于是可以考虑将一个较大的数拆成两个较小的数,即将xxx拆成a×t+ba \times t + ba×t+b,这样相当于将xxx给ttt...

2019-04-05 09:20:03 538

原创 HAOI2017 八纵八横——线段树分治+线性基

题目大意给定一个图,每次加一些边,或者删掉一些后来加上去的边,定义一个环的价值为环上所有的边的异或和,重复走的边重复算。每次询问这个时刻图中的所有经过1号点的环的最大价值。思路首先考虑对于一个静态的图如何求解图中所有经过1号点的环的最大价值,发现这个经过1号点就是唬人的,图中任意一个环都可以经过1号点再走回来。于是题目变成了求解图中环的最大价值,可以将图中所有的简单环给拎出来放到线性基里面...

2019-04-03 11:52:25 262

原创 BJOI2018链上二次求和——线段树

BJOI2018 链上二次求和思路[l,r]的限制可以拆成[1,l-1],[1,r],然后考虑推式子。设sis_isi​为aia_iai​的前缀和。ans=∑i=1x∑j=insj−sj−i{\rm ans}=\sum_{i=1}^{x}\sum_{j=i}^{n}s_{j}-s_{j-i}ans=∑i=1x​∑j=in​sj​−sj−i​设tit_iti​为sis_isi​的前缀和。...

2019-03-31 22:18:10 278

原创 [bzoj3514]Codechef MARCH14 GERALD07加强版——lct+主席树

题目大意给定一个图,求编号在[l,r]之间的边形成的图的连通块个数。思路考虑一条边什么时候会造成贡献,即这条边相连的两个部分在之前从未连通过,或者是把所有编号小于l的边去掉之后这两个部分未连通。对于第一种情况可以轻松地用并查集来实现。对于第二种情况,对于每一个l,我们需要判断出u,v这两个点的所有路径中是否存在一条路径使得min(id)>=l,如果不存在则(u,v)这条边可以造成一...

2019-03-31 17:02:15 280

原创 KD-Tree 学习笔记

KD-Tree 学习笔记SDOI2010 捉迷藏对于i=1…n,求曼哈顿距离距离i最近和最远的点的距离分别是多少。思路KD-Tree 的模板题目。KD-Tree,实际上就是对一个多维空间进行不断的划分,在一维上类似于二叉搜索树。如果是多维的,我们可以每一次只划分一维,然后这样不断轮流划分不同的维度。具体的,对于当前维度的划分,我们最优秀的策略就是取所有点按照当前维度排序之后从中点划分...

2019-03-27 22:03:41 205

原创 SDOI2010 捉迷藏 —— KD-Tree

SDOI2010 捉迷藏对于i=1…n,求曼哈顿距离距离i最近和最远的点的距离分别是多少。思路KD-Tree 的模板题目。KD-Tree,实际上就是对一个多维空间进行不断的划分,在一维上类似于二叉搜索树。如果是多维的,我们可以每一次只划分一维,然后这样不断轮流划分不同的维度。具体的,对于当前维度的划分,我们最优秀的策略就是取所有点按照当前维度排序之后从中点划分开来,这样可以保证整颗树尽...

2019-03-25 22:38:26 176

原创 HAOI2018染色——容斥

HAOI2018 染色思路设fif_ifi​表示至少出现了i种颜色的方案数fi=(mi)×(s×i)!(s!)i×(ns×i)×(m−i)n−s×ifi=(mi)×n!(s!)i×(n−s×i)!×(m−i)n−s×i\begin{aligned}f_i&={m \choose i}\times \frac{(s\times i)!}{(s!)^{i}}\times {n...

2019-03-23 15:31:33 184

原创 [BJWC2018]Border 的四种求法——SAM+线段树合并+DSU+链分治

Border 的四种求法给定一个串,q次询问[l,r]的border长度。思路首先先对整个串建sam,然后我们对包含r的每一个状态去计算。设当前状态的最大长度为len,如果一个结束位置i是合法的,当且仅当l≤i<rl\leq i < rl≤i<r,且i<l+leni < l+leni<l+len,然后我们需要找到一个最大的...

2019-03-13 16:21:15 872

原创 [uoj218]火车管理——主席树

题目大意维护一个栈,每次区间压栈,单点弹栈,区间询问栈顶的元素和。思路如果没有弹栈的操作的话,我们每一次只需要在一颗线段树上面区间赋值即可。加上弹栈操作,我们每次就需要知道当前栈顶元素的上一个元素是什么,考虑用主席树来维护每一个时刻每一个位置的最近一次的修改位置。假设当前的时间为x且我们需要弹栈,那么我们需要先查询得到最近的一次时间y,然后查询y-1的修改时间z,那么我们就得到了栈顶下面...

2019-03-11 21:45:57 173

原创 [bzoj2125]最短路——仙人掌,圆方树

题目大意求仙人掌上最短路.思路将仙人掌上的所有环给建立方点,所有环上的点作为圆点连在方点上面.考虑一个以1为根的树型结构,我们将所有环上的点和方点的距离设为该点离环上深度最小的点的最小距离.这样利用树上倍增来求解两点之间距离后,我们发现跨过的环(方点)上的路程就是环上的点离环上深度最小的点的最小距离,于是我们只需要判断一下lca是否是方点即可。/*===================...

2019-03-03 20:16:16 262

原创 [loj2731]「JOISC 2016 Day 1」棋盘游戏

题目大意有一个3 × n的棋盘,你在上面玩游戏。开始时,棋盘有一些格子上已经摆上了棋子,剩下的格子都是空的。每次你可以选择一个空的格子摆上棋子,这个格子必须满足以下两个条件之一:这个格子上下两格都有棋子;这个格子左右两格都有棋子。你想知道有多少种不同的摆满棋盘的摆放顺序。思路首先判断无解,如果四个角没有棋子或者一三行出现了连续两个空格子,那么就无解.然后发现整个图变成了这个样子:...

2019-02-27 15:28:12 814

原创 [WC2018]州区划分——FMT优化DP

题目大意:这是链接思路:考虑动态规划,设fSf_{S}fS​表示$S 集合中的点的划分的满意度之和,设集合中的点的划分的满意度之和,设集合中的点的划分的满意度之和,设t_{S}表示表示表示S集合中的点是否合法,集合中的点是否合法,集合中的点是否合法,w_S表示表示表示S$集合中的点的权值之和,那么可以得到方程:fS=∑T⊆SfS−T×tT×(wTwS)pf_{S}=\sum_{T\sub...

2019-02-21 16:35:04 293 1

原创 「NOI2018」你的名字——后缀自动机

题目大意:给定一个母串和若干个询问串,求每个询问串有多少个本质不同的子串没有在母串中出现过。思路:ION2017的串我们称为S串,ION2018的串我们称为T串。先考虑68pts怎么去做。考虑T串有多少个子串未在S串中出现过,于是将S建立SAM,然后将T丢进S的SAM里跑子串匹配,这样我们可以得到T的每一个结束位置的最大匹配长度,所有长度大于这个长度的子串都是符合要求的子串。上述方法对...

2019-02-20 21:00:09 347

原创 4566: [Haoi2016]找相同字符——后缀自动机

题目大意:给定两个串,求有多少种方式从两个串中各提取出一个子串并且两个子串相等。思路:涉及两个串的子串问题考虑对第一个串建立SAM。然后用第个二串在SAM上匹配,每到一个点,贡献是(目前的长度-这个状态的父亲的长度)x这个状态RIGHT集合的大小,同时对这个状态的每个祖先也像这样计算贡献即可。/*======================================= * Aut...

2019-02-14 18:11:27 226

原创 [uoj276][清华集训2016]汽水——分数规划+点分治

题目大意:给定一颗带边权的树,求一条路径使得这条路径上的边权的平均值最接近一个给定的值。思路:既然是求平均值,那么自然而然就想到了分数规划了, 即最小化∣∑i=1lenwilen−k∣|\frac{\sum_{i=1}^{{len}}w_i}{len}-k|∣len∑i=1len​wi​​−k∣。然后二分答案xxx,考虑是否存在比xxx更优的答案:∣∑i=1lenwilen−k∣≤x|\f...

2019-02-13 14:22:19 351

原创 [bzoj3451]Tyvj1953 Normal——点分治+fft

题目大意:求随机点分治的期望复杂度,每次对一颗大小为nnn的子树需要O(n)O(n)O(n)的复杂度。思路:考虑计算每个点期望下被算的次数,根据期望的线性性,最后将每个点的答案加起来就可以了。计算点u的计算次数可以考虑v对点u的贡献,即在v作为分治重心的时候u在v所在的子树里面。不难发现如果v对u产生了贡献,那么从u到v的路径上,v必定是第一个选的,路径外的点怎么选没有影响,于是期望贡献...

2019-02-13 09:58:48 247

原创 [bzoj3143][Hnoi2013]游走——动态规划+高斯消元

题目大意:一个无向连通图,顶点从1编号到N,边从1编号到M。小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数。当小Z 到达N号顶点时游走结束,总分为所有获得的分数之和。现在,请你对这M条边进行编号,使得小Z获得的总分的期望值最小。思路:由于我们需要确定每条边的权值,所以不妨将每条边期望意...

2019-02-11 13:41:14 302

原创 [loj2542]「PKUWC2018」随机游走——min-max容斥+树上高消

题目大意:给定一棵 n 个结点的树,你从点 x 出发,每次等概率随机选择一条与所在点相邻的边走过去。有 Q 次询问,每次询问给定一个集合 S,求如果从 x 出发一直随机游走,直到点集 S 中所有点都至少经过一次的话,期望游走几步。特别地,点 x(即起点)视为一开始就被经过了一次。答案对 998244353 取模。思路:看到所有点都经过一次直接上min-max反演。然后我们要求每个集合...

2019-02-10 20:29:14 322

原创 [bzoj4589]Hard Nim——SG函数+FWT

题目大意:Claris和NanoApe在玩石子游戏,他们有n堆石子,规则如下:Claris和NanoApe两个人轮流拿石子,Claris先拿。每次只能从一堆中取若干个,可将一堆全取走,但不可不取,拿到最后1颗石子的人获胜。不同的初始局面,决定了最终的获胜者,有些局面下先拿的Claris会赢,其余的局面Claris会负。Claris很好奇,如果这n堆石子满足每堆石子的初始数量是不超过m的...

2019-02-10 17:07:48 190

原创 [hdu5909]Tree Cutting——动态规划+FWT

题目大意:给定一棵树,求有多少个联通块满足异或和=k,对于每一个k求答案。思路:设dpi,jdp_{i,j}dpi,j​表示联通块深度最小的点为i时,异或和为j时有多少个满足条件。从儿子转移,FWT优化即可。/*======================================= * Author : ylsoi * Time : 2019.2.10 * Problem ...

2019-02-10 16:05:57 158

原创 [hdu4035]Maze——树上高消

题目大意:给定一颗树,从1号节点开始,在每个节点都有三种可能:1.以kik_iki​的概率回到1号节点2.以eie_iei​的概率走出迷宫3.和该点相连的边随机走一条求走出迷宫期望下走的步数。思路:首先设pi=1−ki−eip_i=1-k_i-e_ipi​=1−ki​−ei​。设从第iii个点出发,期望意义下走出迷宫需要走的步数为fif_ifi​,那么我们得到的递推式是:fi...

2019-02-10 09:38:01 322

原创 [bzoj4556][Tjoi2016&Heoi2016]字符串——后缀数组+主席数+二分答案

题目大意:佳媛姐姐过生日的时候,她的小伙伴从某东上买了一个生日礼物。生日礼物放在一个神奇的箱子中。箱子外边写了一个长为n的字符串s,和m个问题。佳媛姐姐必须正确回答这m个问题,才能打开箱子拿到礼物,升职加薪,出任CEO,嫁给高富帅,走上人生巅峰。每个问题均有a,b,c,d四个参数,问你子串s[a…b]的所有子串和s[c…d]的最长公共前缀的长度的最大值是多少?佳媛姐姐并不擅长做这样的问题,所以她...

2019-02-09 20:50:07 290

原创 [bzoj3998][TJOI2015]弦论——后缀自动机

题目大意:给定一个字符串,求它的第k小子串。思路:后缀自动机的模板题。考虑将后缀自动机建出来之后,求出每一个状态在原串中出现了多少次,然后统计以每个节点往后拓展的字符串总共有多少种(按照拓扑序累加即可),最后直接在DAG上做类似二分的就好了。/*======================================= * Author : ylsoi * Time : 2019...

2019-02-09 16:30:31 174

原创 [bzoj4650][Noi2016]优秀的拆分——后缀数组

题目大意:定义一个字符串的拆分是优秀的当且仅当是AABBAABBAABB的形式,求给定字符串的所有子串的所有的拆分中有多少是优秀的。思路:95分太好拿了,这里直接考虑正解该怎么做。不难发现我们只需要求出每个点开头的AAAAAA形式的字符串和每个点结尾的AAAAAA字符串,然后枚举分割点两边乘起来就好了。可是关键是AAAAAA形式的字符串可能有n2n^2n2个,直接枚举的话一定不是正解。考...

2019-02-07 15:49:07 195

原创 [bzoj4199][Noi2015]品酒大会——后缀数组

题目大意:给定一个序列,定义两个后缀是k相似的当且仅当这两个后缀有长度为k的公共前缀。求对任意r∈[0,n−1]r\in [0,n-1]r∈[0,n−1],rrr相似的后缀的对数和两个后缀乘积的最大值。思路:先考虑后缀数组是如何计算两个后缀的lcp,发现是对于一段连续的height取min。于是对于制定的相似度r,height < r的位置必定是两个后缀不能越过的,于是不难发现将有...

2019-02-06 19:33:14 228

原创 [TJOI2017]DNA——后缀数组求LCP

题目大意:给定一个文本串和一个模式串,求文本串中有多少个连续的子串和模式串相差不超过三个字符。思路:算是一道后缀数组的模板题。直接做lcp,然后遇到匹配不上的就跳,跳的次数不能超过三次。具体地,将两个字符串连在一起,中间加一个分隔符,然后求出height,用rmq维护height数组的区间最小值即可。/*======================================= ...

2019-02-06 10:56:46 267

原创 [bzoj3992][SDOI2015]序列统计——离散对数+NTT

题目大意:给定一个数字不超过mmm的集合SSS,用SSS中的数生成一个长度为nnn的序列,求所有序列中的元素乘积模mmm等于xxx的序列的个数。思路:考虑最朴素的DPDPDP,设fi,jf_{i,j}fi,j​为选了iii个数,乘积模mmm余jjj的方案数,直接转移的时间复杂度是O(nm2)O(nm^2)O(nm2)的。不难发现每次转移的过程是相同的,矩阵加速显然不太可行,考虑将乘法形式的...

2019-02-04 16:20:27 170

原创 分治FFT&&多项式求逆学习笔记

分治FFT:解决的是形似以下的问题:给定n次多项式g(x)g(x)g(x),求多项式f(x)f(x)f(x),其中fff的第iii项系数的表达式为∑fj×gi−j\sum f_{j}\times g_{i-j}∑fj​×gi−j​。解法:不难发现式子也是卷积的形式,但是与普通多项式乘法不一样的是,每一项的系数依赖前面的项的系数,使得普通的FFT无法起作用。考虑分治,将区间[l,r][l,...

2019-02-03 20:46:21 340

原创 [poj1322]Chocolate——生成函数

题目大意:一共有ccc种糖果,取nnn次,每次取到糖果种类都是等概率的,求有mmm种糖果个数为奇数个的概率。思路:直接概率DP时间复杂度太高,卡常数也不太好卡。将每次取出来的糖果看成是一个带有重复元素的排列,直接计算复合条件的排列数量。考虑符合条件的最后的序列的考虑EGF(指数型生成函数),可得出现次数为偶数次的糖果的生成函数为:F0(x)=∑i=0∞x2i(2i)!=ex+e−x2...

2019-02-01 22:32:16 339

原创 [bzoj3771]Triple——生成函数+容斥原理+FFT

题目大意:我们讲一个悲伤的故事。从前有一个贫穷的樵夫在河边砍柴。这时候河里出现了一个水神,夺过了他的斧头,说:“这把斧头,是不是你的?”樵夫一看:“是啊是啊!”水神把斧头扔在一边,又拿起一个东西问:“这把斧头,是不是你的?”樵夫看不清楚,但又怕真的是自己的斧头,只好又答:“是啊是啊!”水神又把手上的东西扔在一边,拿起第三个东西问:“这把斧头,是不是你的?”樵夫还是看不清楚,但...

2019-01-31 14:36:03 176

原创 [bzoj3456]城市规划——分治FFT

题目大意:求n个点的带标号简单无向联通图的数目。思路:嗯多项式求逆还不会,到时候会了应该会补吧。这种和图计数有关的题目一般都是考虑反面计数或者是容斥什么的。考虑枚举一号点的连通块的大小,然后用总方案数减去这些方案数。可以得到递推式:fi=2(i2)−∑j=1i−1(i−1j−1)×fj×2(i−j2)f_{i}=2^{i\choose 2}-\sum_{j=1}^{i-1}{i-1...

2019-01-29 23:30:30 223

原创 [uoj207]共价大爷游长沙——lct

题目大意:给定一棵树和一些路径的集合,同时树和集合都可以支持在线修改,然后在某一时刻求一条边是否被所有集合之中的路径给覆盖。思路:考虑一个简单的思路,每当添加一条路径,我们就把在这条路径上的所有边的边权都异或上一个随机值,然后对于任意一条需要询问的边,我们只需要判断它的权值是否等于目前所有的路径的权值的异或和即可。当我们的权值很大的时候,出错的概率很低,所以可以近似为正确的。但是树的形态...

2019-01-28 18:49:24 142

原创 [bzoj2159]Crash 的文明世界——动态规划

题目大意:给定一棵树,求每一个点的s(i)=∑j=1dis(i,j)ks(i)=\sum_{j=1}dis(i,j)^ks(i)=∑j=1​dis(i,j)k。思路:题目所求s(i)=∑j=1dis(i,j)ks(i)=\sum_{j=1}dis(i,j)^ks(i)=∑j=1​dis(i,j)k,考虑kkk次幂的组合意义,xkx^kxk表示kkk个不同的物品放入xxx个不同的箱子里面,即x...

2019-01-28 13:20:03 183

原创 [luogu4707]重返现世——min-max容斥拓展+动态规划

题目大意:给定nnn个物品和每个物品出现的概率,收集到至少kkk个物品的期望时间。k≤10k \leq 10k≤10思路:好题!容斥计算第k大的期望,考虑计算第i大的数的贡献:∑j=0i−1(i−1j)fj=[i=k]∑j=0i(ij)fj=[i=k−1]fi=∑j=0i(−1)i−j(ij)[j=k−1]fi=(−1)i−k+1(ik−1)\begin{aligned}&...

2019-01-18 14:56:46 198

WC2018讲课课件

WC2018讲课课件,CommonAnts_浅谈卷积定理在OI中的应用及扩展,NP-Hard问题求解方法杂谈 钟AK,OI 中的超现实数和不平等博弈问题 杜瑜皓...

2018-12-08

空空如也

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

TA关注的人

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