自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 多线程 -单调栈

题目大意:给你一列数,问有多少中将其划分为一个上升子序列一个下降子序列的方案,线性。题解:考虑求出每个点左第一个比他大的以及一直这么条能跳几步;类似左右大小共4种情况8个数组。然后枚举分界点,讨论一下即可。#include<bits/stdc++.h>#define rep(i,a,b) for(int i=a;i<=b;i++)#define Rep(i,v) re...

2018-12-31 19:23:04 295

原创 专家系统 - 二分 - 线段树

题目大意:现在有n个坐标(xi, yi),你要从中选出k个。假设你选出的全部k个坐标中,x坐标最小值为xmin,x坐标最大值为xmax,y坐标最小值为ymin,y坐标最大值为ymax。那么你得出的不确定度c=max(xmax-xmin, ymax-ymin)。你的目的是让c尽可能小。由于可能有很多种选法能够达成这一目的,你只需要输出这个最小的c即可。题解:二分答案,枚举上边界,每次加入删除,然...

2018-12-31 16:23:03 307

原创 踢罐子 - 计算几何

题目大意:平面上有n个点,其中任意2点不重合,任意3点不共线。我们等概率地选取一个点A,再在剩下的n-1个点中等概率地选取一个点B,再在剩下的n-2个点中等概率地选取一个点C。然后我们计算伤害倍率d。作ABC外接圆,每一个位于弧BC和线段BC之间的点计1倍,每一个位于弧BC上的点(包括B,C两点)计1/2倍,特别的,点A计1倍。将这些倍率全部加起来得到伤害倍率d。注意:弧BC是指,ABC外接圆上...

2018-12-31 15:31:38 388

原创 生成树 - 最小生成树

题目大意:给你个二分图G(V=(X,Y),E)G(V=(X,Y),E)G(V=(X,Y),E)。定义GmG^mGm是一个m+1m+1m+1层图,每相邻两层的诱导子图都和GGG同构。对G1…GmG^1\dots G^mG1…Gm求最小生成树。∀e∈E,1≤w(e)≤30,n,m≤105,∣E∣≤2×105\forall e\in E,1\le\mathrm{w}(e)\le30,n,m\le10...

2018-12-30 20:34:27 295

原创 连续段 - dp - 多项式理论 - 牛顿迭代

题目大意:对每个n∈[1,N]n\in[1,N]n∈[1,N]求有多少长为nnn的本质不同的排列,其中两个排列p1,p2p_1,p_2p1​,p2​本质相同,当且仅当S(p1)=S(p2)S(p_1)=S(p_2)S(p1​)=S(p2​),其中:S(p)={[l,r]∣1≤l≤r≤∣p∣,(min⁡i=lrpi)−(max⁡i=lrpi)=r−l}S(p)=\{[l,r]|1\le l\le...

2018-12-30 14:03:18 559

原创 程序锁 - dp

题目大意:给你两个字符串,每个位置是P,V,?之一。P表示-1,V表示+1,?表示不确定。问有多少将?替换成P或V的方案,使得下述算法不会gg:维护两个指针(一开始在最开头)和当前和s。若两个指针都在末尾,结束。若其中一个指针已经在末尾,移动另一个。若当前和s<0,随意移动一个。若否则从下一个为V的指针中随意选一个,若不存在则随意选一个。s初始为0,且每次指针移动s就+=对应...

2018-12-30 13:47:46 338

原创 [学习笔记] 量产毒瘤题 - 纳什均衡 - 后缀数组 - 学习笔记

题目大意:给你一个字符串,两个玩家分别独立同时的选择一个后缀,并且计算两个后缀的最长公共前缀。第一个玩家希望它尽量大,另一个希望尽量小,问最后期望多长。题解:前缀知识:纳什均衡纳什均衡毫无疑问是个很复杂的问题,我们之看一个特例来了解一下。ckw和妹子玩游戏(大雾),他跟妹子说我们同时独立的写出一个0或者写出一个1,若我们都写出了0,我给你a块钱;若都写出了1,我给你b块;若我0你1,你给我...

2018-12-26 15:45:41 1067 2

原创 青春野狼不做小恶魔学妹的梦 - 斯特林数 - 多项式理论

题目大意:对所nnn个点的连通图G\mathrm{G}G求边数的kkk次方和。n≤5×104,k≤15n\le5\times10^4,k\le15n≤5×104,k≤15题解:显然考虑斯特林数:mk=∑i=0kS(k,i)i!(mi)m^k=\sum_{i=0}^kS(k,i)i!\binom mimk=∑i=0k​S(k,i)i!(im​),因此统计nnn个点的图并选定其中恰好iii条不...

2018-12-26 12:45:29 2088 1

原创 青春野狼不做姐控偶像的梦 - 线段树 - 扫描线 - 单调栈

题目大意:给你一个排列,多次询问,每次给你一个区间,问有多少子区间,数字取出来sort一遍是连续的一段。题解:考虑l=1,r=n咋做。考虑一段合法,当且仅当max-min=r-l。那么用个单调栈预处理每个数字在哪些[l,r]会成为最大/最小值,然后扫描线维护max-min+l的最小值,显然由于[r,r]是答案所以能取到最小值的位置都一定是答案。考虑整个问题,就是每次在所有最小值的位置+1...

2018-12-25 18:19:02 335

原创 青春野狼不做理性小魔女的梦 - 莫比乌斯反演 - 拉格朗日插值 - 杜教筛

题目大意:给定{Ak}\{A_k\}{Ak​}(有些位置是-1表示一会要由你决定)。对每个m∈[1,n]m\in[1,n]m∈[1,n],求有多少方案(将−1-1−1变为[0,m)[0,m)[0,m)之间的整数)使得∑i=1kAixi=1( mod  m)\sum_{i=1}^kA_ix_i=1(\bmod\ m...

2018-12-25 18:06:12 365

原创 svisor - 动态点分治 - 虚树

题目大意:给你一颗树,多次询问,每次询问给定k个关键点以及每个点的半径,问这k个点能够覆盖到的点的并集的大小。题解:考虑k=1怎么做:直接动态点分治即可。考虑建出虚树,重新更新每个点的半径使得不存在两个点,其中一个延申到另一个时,半径仍然大于另一个。考虑我们已经处理虚树上x的前若干棵子树的点,能够覆盖到的点的并集,现在新增一颗子树y并进去,那么要减去新增后重复计算的点,方法是虚树上(x,...

2018-12-22 13:57:35 416

原创 [学习笔记] 素数测试与质因数分解 - 学习笔记

copy了luogu上目前rk1的板子分解质因数其中有一段还不知道在干嘛:枚举k是大于等于2的2的幂,每次初始化x0=xcur,q=1x_0=x_{cur},q=1x0​=xcur​,q=1,然后for i∈[1,k]  x=F(x),q=q×∣x−x0∣,if  i>M and gcd⁡(q,n)&g...

2018-12-20 21:01:13 201

原创 粒子 - 二分

涨姿势了为啥每次运算强制类型转化(double)会比一开始就全开double慢一个数量级啊题目大意:数轴上有两个起点,分别发射正反粒子各N,正反粒子相撞会湮灭,保证任意一个粒子都会碰到另一个相反的粒子,相同的粒子相撞不会有任何问题。问前k对相撞的粒子是?n≤4e5,k≤100n\le4e5,k\le100n≤4e5,k≤100题解:二分出下一次有粒子相撞的时刻T。做k次即可。#incl...

2018-12-20 20:50:41 177

原创 六 - 搜索 - dp

题目大意:给你一个正整数NNN,为有多少非空序列{An}\{A_n\}{An​}满足:∀ i∈[1,n], Ai∣N∀ i∈[1,n],  (∑j=1i−1[gcd⁡(Ai,Aj)>1])≤1\forall\ i\in[1,n],\ A_i|N\\\forall\ i\in[1,n],\ \ \left(\sum_{j=1}^{i...

2018-12-20 20:37:20 234

原创 魔力 - 随机 - 前缀和

题目大意:给定一列数和一个字符集,问有多少子区间每种数字都出现了并且出现的次数都相等。题解:考虑字符集2怎么做,分别看为1和-1然后区间和等于0即可。考虑给每个数值赋一个随机权值,并所有种类的数的随即权值和为0,然后统计区间和为0的区间数即可。使用unordered_map可以线性。#include<bits/stdc++.h>#define rep(i,a,b) for(int...

2018-12-20 20:29:13 249

原创 LOJ 6053 简单的函数 - Min_25筛

不知道为啥脑子一抽就来温习了一波Min_25筛这题F§=p-1(除了p=2,这个特判一下即可),最后把2加回来。#include<bits/stdc++.h>#define rep(i,a,b) for(int i=a;i<=b;i++)#define Rep(i,v) rep(i,0,(int)v.size()-1)#define lint long long#de...

2018-12-19 20:09:21 389

原创 [WC2018]州区划分 - FWT - 状压dp

……直接记bitcount然后FWT即可。// luogu-judger-enable-o2#include<bits/stdc++.h>#define rep(i,a,b) for(int i=a;i<=b;i++)using namespace std;typedef long long lint;inline int inn() { int x;scanf("%d...

2018-12-19 13:00:19 211

原创 coin - dp - 贪心

题目大意:有n个人m种物品,给出p(i,j)表示第i个人喜欢物品j的概率。现在你要选择n件物品,执行下述操作:从第一个人开始,若现在手上有这个人喜欢的物品,就ans++并移除这个物品。求一个方案使得ans期望最大。题解:考虑给定一种方案如何算E(ans)。不男发现每种物品独立,因此统计一个g[i,j]表示有恰好j个人喜欢物品i的概率。那么再用一个dp决策一下每个物品选多少即可。注意到这个你...

2018-12-19 11:20:45 267

原创 battery -2SAT

题目大意:有个网格图,每个格子是炮台:可以向上下’|‘或者左右’-‘发射激光(你来决定向上下还是左右)镜子:两种’\‘或者’/’,成45°反射激光障碍:’#’:激光遇到会消失。激光出边界也会消失。空地:’.’现在你要给每个炮台确定方向,使得不存在一个炮台能打到另一个炮台,并且每个空地至少被一个炮台的激光经过(激光可以相交)。T≤100,n,m≤50T\le100,n,m\le50T≤1...

2018-12-19 10:37:26 218

原创 game - 期望 - 点分治 - FFT

题目大意:给一棵树,每次随机选择一个点,将其所在连通块点权都+1并且删掉这个点,问最后所有点点权和的期望。题解:考虑这个过程是在随机点分治,一个点的点权就是这个点的深度,即其祖先数量。那么考虑y在多少情况中能作为x的祖先,不难发现当且仅当x到y的路径上(不包含y)的点被删除时间都严格大于y。那么显然是有n!len+1\frac{n!}{\mathrm{len}+1}len+1n!​种。因此...

2018-12-19 10:28:28 277

原创 东非大裂谷 - 树dp

题目大意:给一棵树,点有点权,将其划分为若干不相交的竖直的链(即链上深度变化单调),一条链的价值是链上点权的极差,问所有链的价值和的最大值。n≤105n\le10^5n≤105题解:考虑dp[x]表示以x为根的答案,枚举包含x的链的终点。注意到存在一种最优解一条链上点权单调递增,因此强制a[x],a[y]是链上最大最小/最小最大,并且从x到y的路径点权变化单调,max-min=|a[x]-a[...

2018-12-19 10:23:12 241

原创 地中海气候 - 贪心

题目大意:给你一列数,进行k次双人游戏,每次先把前p-1个数字放到可重集合里,然后依次执行:可重集合加入下一个数字(如果有的话),然后一个人拿走集合中的某一个,拿走是两个人轮流的,一直到集合为空。两个人都希望答案尽量大,问最后二人的答案的差。n≤105,k≤2000n\le10^5,k\le2000n≤105,k≤2000题解:首先贪心显然每个人回选当前集合最大值。那么问题转化为每次加一个...

2018-12-19 10:18:59 182

原创 跑步 - dp

题目大意:给你一个网格,每个格子有个正权值,每次一个格子+1或者-1,然后求从左上角走到每个点路径上点权和最大值的和。n,m,q≤2000n,m,q\le2000n,m,q≤2000题解:考虑修改一个位置会影响一部分,并且影响都是+1或者-1,因此只要考虑影响了多少个即可。首先不难发现每一列受影响的是连续的一段,并且这连续的一段的上下端点是不减的,用一个BIT维护可以O(n2lg⁡n)O(n...

2018-12-19 10:13:45 293

原创 Dragonfly - 找规律 - dp

题目大意:问有多少{Ln},{Rn},∀i∈[1,n]Li,Ri∈[1,n]\{L_n\},\{R_n\},\forall i\in[1,n]L_i,R_i\in[1,n]{Ln​},{Rn​},∀i∈[1,n]Li​,Ri​∈[1,n]满足从任意x∈[1,n]x\in[1,n]x∈[1,n]出发,先做AAA次x=Lxx=L_xx=Lx​,再做一次x=Rxx=R_xx=Rx​,再做BBB次x=L...

2018-12-13 16:10:52 426

原创 gamma - 打表

题目大意:给一张图,给每个点随机一个(0,1)的点权,每条边一个(1,2)的边权,对于每个长度为三的简单路径其点权依次是a,b,c,两条边边权是x,y,那么新建一个经过(-x,a),(0,b),(y,c)的二次函数。把这些二次函数求极值,求出第(k+1)/2大的,问其大于0.618的概率,精度要求1e-4。n≤6n\le6n≤6题解:发现6个点的图只有本质156种,打表即可。#includ...

2018-12-12 09:59:21 313

原创 alpha - 分治NTT - 线段树

题目大意:有[1,1e9]的数轴,n次操作每次给一个区间[Li,Ri]的数有pi的概率+1,1-pi的概率不变。问最后等于k的数字期望有多少个。n≤5×104n\le5\times10^4n≤5×104题解:问题等价于区间乘以一个一次式,最后对每个位置求k次项系数。离散化后线段树,等价于每次从根到叶节点的式子乘起来在乘个叶节点对应的区间长度取k次项系数求和。但这么做复杂度是错的,考虑反过来...

2018-12-12 09:55:03 345

原创 「2017 山东一轮集训 Day7」逆序对 - 容斥 - 分块背包

我不会整数划分考虑dp,转移方程形如f(i,j)=∑k=0i−1f(i−1,j−k)f(i,j)=\sum_{k=0}^{i-1}f(i-1,j-k)f(i,j)=∑k=0i−1​f(i−1,j−k)因此答案是方程∑i=0nxi=k,∀i∈[1,n],xi∈[0,i)\sum_{i=0}^n x_i=k,\forall i\in[1,n],x_i\in[0,i)∑i=0n​xi​=k,∀i∈[...

2018-12-10 10:22:11 496

原创 决战 - 构造

给你一个n*n的矩阵的第1行,并保证第一行存在两个数字互质,构造剩下的n-1行使得行列式是1。n≤5n\le5n≤5,输入的数字和你填的数字必须是绝对值在[−2000,2000][-2000,2000][−2000,2000]的整数。题解:考虑n=2怎么做,exgcd即可。然后再填n-2个1即可保证有值的排列只有最多两个。#include<bits/stdc++.h>#defi...

2018-12-09 19:15:37 194

原创 恢复 - 计算几何

题目大意:告诉你平面上n个点的两两距离,构造这n个点,保证有解。题解:先把距离为0的点缩起来,特判剩余点小于等于2的情况,然后任意选择三个点先算个三角形,然后剩下的点都是唯一的(应该是唯一的)。...

2018-12-09 19:11:36 178

原创 作业 - 结论题

题目大意:已知:f0=1−1e,fn=1−nfn−1f_0=1-\frac1e,f_n=1-nf_{n-1}f0​=1−e1​,fn​=1−nfn−1​求fn,n≤104f_n,n\le10^4fn​,n≤104精度要求10−410^{-4}10−4。题解:注意到fnf_nfn​可以写成an+bne−1a_n+b_ne^{-1}an​+bn​e−1的形式,a0=1,b0=1a_0=1,b_...

2018-12-09 19:08:13 348

原创 「2017 山东一轮集训 Day6」子序列 - dp - 矩阵乘法

题目大意:给一个只包含前9个字符的字符串,q次询问区间本质不同的子序列数。n,q≤105n,q\le10^5n,q≤105。题解:考虑dp,设dp[i,j]表示前i个数字以j结尾的方案数。假设当前的是数字是c,那么:dp(i,c)=1+∑kdp(i−1,k),else dp(i,j)=dp(i−1,j)dp(i,c)=1+\sum_{k}dp(i-1,k),\mathrm{else...

2018-12-09 11:22:46 657

原创 「2017 山东一轮集训 Day6」重建 - 最短路 - dp

题目大意:给一张无向带权连通图,和一些关键点,求一个最大的非负整数c,使得每条边的边权加上c之后,s到t的最短路等于s到t只经过关键点的最短路。题解:观察到s到t的最短路是一个关于边数的分段函数,令f[x,i]表示从s出发走到x经过恰好i条边的最短路,g为经过关键点的数组。那么分别意会出这两个分段函数后,就是求一个x,使得两个函数在此处取值相同。注意到g[t,i]>=f[t,i],也...

2018-12-09 09:13:52 399

原创 「2017 山东一轮集训 Day4」塔 - dp - 矩阵乘法

题目大意:现在有一条 [1,l][1, l][1,l] 的数轴,要在上面造 nnn 座塔,每座塔的坐标要两两不同,且为整点。塔有编号,且每座塔都有高度,对于编号为 iii 座塔,其高度为 iii。对于一座塔,需要满足它与前面以及后面的塔的距离大于等于自身高度(不存在则没有限制)。问有多少建造方案。答案对 mmm 取模。塔不要求按编号为顺序建造。题解:考虑给你一个排列怎么算有多少种放法,显然令...

2018-12-08 18:50:26 535

原创 [学习笔记]线性代数 - 回文自动机 - 学习笔记

题目大意:每次往左/右加一个字符,问回文串和本质不同的回文串数量。回文自动机模板题。#include<bits/stdc++.h>#define rep(i,a,b) for(int i=a;i<=b;i++)#define Rep(i,v) rep(i,0,(int)v.size()-1)#define lint long long#define ull unsig...

2018-12-08 15:51:56 252

原创 bzoj 4162 shlw loves matrix II - 行列式 - 矩阵乘法 - 高斯消元

题目大意:给一个nn的矩阵A,求其k次方。n≤50,k≤210000n\le50,k\le2^{10000}n≤50,k≤210000。题解:考虑将AkA^kAk视为某个数列的第k项hkh_khk​(严格意义上是矩阵列?)尝试改造hhh的递推式。考虑:F(x)=∣A−xI∣F(x)=|A-xI|F(x)=∣A−xI∣即A减去若干倍的单位矩阵求行列式。以33的矩阵为例,它张这个样子:F...

2018-12-08 15:50:07 328

原创 san - 主席树优化建图 - 强连通分量

题目大意:每一个人有三个属性(ai,bi,ci),定义一个人比另一个大当且仅当有至少两维更大。保证a,b,c分别是三个排列。执行以下代码://p is a permutation of [1,n]int ans=p[1];for(int i=2;i<=n;i++) if(person[p[i]]>person[ans]) ans=p[i];return ans;问有多少人...

2018-12-08 15:31:05 295

原创 ichi - 单调栈

题目大意:你要建n座塔,每座塔有一个高度h,每一趟你可以带k块砖头,随意选择一个位置开始。每一步你可以向左或者向右或者向上爬(如果没有转头就必须摆一个砖头),问最少多少趟。题解:一开始考虑从下往上,gg。考虑从上往下,每次选最高的一个,将其填到和其两侧一样高,这时可能会多出一些剩余,记录一下,并且合并两或三列。这个过程可以用单调栈优化。#include<bits/stdc++.h...

2018-12-08 15:25:57 184

原创 字符串 - AC自动机 - 状压dp

题目大意:给定m个01串,问有多少长度为2n的反回文01串,包含这m个串。一个01串被称为反回文的,当且仅当∀i∈[1,n],s[i]̸=s[n−i+1]\forall i\in[1,n],s[i]\not=s[n-i+1]∀i∈[1,n],s[i]̸​=s[n−i+1]。m≤6,n≤500,∣si∣≤100m\le6,n\le500,|s_i|\le100m≤6,n≤500,∣si​∣≤1...

2018-12-05 09:24:25 236

原创 信心 - 平衡树 - 树状数组

题目大意:维护n个集合(不可重),每次区间insert一个数字x或者求区间集合大小之和。题解:对每个x维护一个set表示当前那些段是空的即可。#include<bits/stdc++.h>#define rep(i,a,b) for(int i=a;i<=b;i++)#define Rep(i,v) rep(i,0,(int)v.size()-1)#define lin...

2018-12-05 09:19:12 239

原创 决心 - 行列式 - 贪心 - 可并堆

题目大意:一个n*n个矩阵,以及n个矩形x1,x2,y1,y2x_1,x_2,y_1,y_2x1​,x2​,y1​,y2​,然后每个矩形等概率随机其内部一个点点权+1(一开始全是0),问最后行列式的期望。n≤105n\le10^5n≤105。题解:(一开始以为是m个矩形然后就开始懵逼我连x1=x2,y1=y2x_1=x_2,y_1=y_2x1​=x2​,y1​=y2​都不会……)因为有n个矩...

2018-12-04 21:13:59 272

空空如也

空空如也

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

TA关注的人

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