自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 About Me

至于我,显然只是水得很的蒟蒻啊。 OI 要打得好看点。 博客是随众开的说不定什么时候就停更了。 所以继续吧。To be continue.

2017-10-11 22:12:55 336

原创 k短路

有一个A*写法? 然后我并不是很会…应该就是直接搜吧? 正常写法是..先从终点建反向边的最短路树。 对于任意一条不在最短路树上的边, 定义其权值w=Disv+w−Disuw=Disv+w−Disuw=Dis_v+w-Dis_u, 即多绕的路程长度。 考虑取一个不在最短路树上的边的序列(可能有重复), 那么应满足对于相邻的两条边, 满足viviv_i是uiuiu_i在最短路树上的孩子...

2018-08-20 18:17:34 397

原创 SAM

后缀自动机部分的练习。 毒奶(冬令营一定不会考SAM的) 然后就没了。 https://vjudge.net/contest/208780#overview 是一个感性理解比较容易的东西。 证明…可以去找clj的课件看。 有很多奇怪的性质,稍微记一下。Problem A应该是可以写O((n+Q)logn)或者O((n+Q)log^2n)的方法的.. O(n^2+Q),暴力...

2018-07-22 14:28:36 487

原创 20180713离线赛

比较奇怪的比赛..?T1简单分析后可知 应求出每个位置起,异或和单调不下降的最右侧端点RiRiR_i 答案则是∑ri=lmin(r,Ri)−i+1∑i=lrmin(r,Ri)−i+1\sum_{i=l}^r min(r,R_i)-i+1 求出RiRiR_i后,用主席树维护答案是比较明显的(R_i的和以及个数) 但是暴力求RiRiR_i的复杂度是n2n2n^2的 单独考虑Ai=0A...

2018-07-14 10:40:19 243

原创 CodePlus#3

比赛全程瞎打 210/500 幸运选手Top1T1BFS签到题, 以类似提答的奇怪方式提交。。T2本来应该是一道十分正常的签到题。 然后并没有看完题目,以为云朵可以随便相覆盖。 然后就变成不可做题了。 然而在开始时刻,所有云朵都不互相覆盖, 所以最多会有两片云相交, 将横着飘的云视作静止,然后其他的每次作(-1,+1)的运动。 根据左下角和右上角所在的斜线可以确定一个区间 当两种

2018-03-26 19:28:14 264

原创 SuffixArray

后缀数组。 https://vjudge.net/contest/203023#overview 大约使用基数排序实现的O(nlogn)O(nlogn)建立方法。 DC3比较麻烦就先不学了。 Hash+直接排序的方法在10行内完成。 复杂度为O(nlog2n)O(nlog^2n)。 算是也可以用吧。Problem C求不同的子串个数。 根据SA的定义,可以比较简单地求出重复的子串个数,

2017-12-15 15:19:51 448

原创 AC自动机

字符串这一方面的算法。 概述:在Trie树上使用KMP算法得到Fail数组,使用Fail数组建树, 那么每次查询的串就是当前位置到Fail树的根得到查询,类似于一个后缀。 利用这个性质以及树上的各种算法可以做某些方面的题。 清空这一方面,一次性全部清空或动态清空均可,考虑到可能会写内存池,采用后者。 在Fail树上可以对当前点的信息或是回答进行记录,部分题目可以均摊复杂度。 https:

2017-12-06 21:31:14 392

原创 NOIP2017游记

考完了NOIP2017,然后是补课。 不过这个时候班主任为了让同学们好好搞竞赛而发动了无作业革命。 虽然感觉猜到结果会是各科老师保证“尽量”少布置作业。Day0考试前不知道做什么好(并且前一场离线赛还炸了)。 基本上在划水,以撒或者打则。Day1后来过了0点看了几个小时番(第一次看?)。 然后早上没做什么就去考场了。 T1看起来十分奇怪,不过可以用DP推,考虑模a下的结果然后转移 (a,

2017-12-01 19:36:22 533 1

原创 Trie树

T1 BD通过Trie树来优化的DP。 首先得出状态转移方程为 DPi=max(DPj)+1 (i−j<LSi⨁Sj≤X)DP_i=max(DP_j)+1 \ (i-j \lt L S_i \bigoplus S_j \le X) 以每个位置的SiS_i作为插入Trie树时的键值,记录当前的位置, 对Trie树的每一个节点维护一个单调队列可以实现O(logAi)O(logA_i)的查询。

2017-12-01 19:09:16 263

原创 近期离线赛总结

= =赛前连考,状态算是比较正常。2017/11/03300/300 T1:简单的组合数计数 T2:差分优化DP,字符串比较应用预处理LCP(赛中二分+Hash T3:抽直径,对直径维护两种区间最大值,找分界点得出答案2017/11/04300/300 T1:二分+DP(贪心可解,不完全的贪心能被卡 T2:预处理逆序对数,状压DP,预处理优化掉一个k(赛中假内存,卡常过 T3:两条路径若

2017-11-07 16:03:52 259

原创 树链剖分

练习一下无脑的水分方法。 树链剖分。 平时用来求LCA还是好用的。T1 RG分析求LCA,然后下标为颜色建树,线段树合并 树链剖分只是拿来求LCA的 结果内存不够, 这个时候应该用内存池来存那些无用节点然后再拿出来用。 所以就可以写了。 高端卡内存技巧 复杂度为O((n+m)logn)O((n+m)log n)代码#include<bits/stdc++.h>using names

2017-11-02 21:51:27 396

原创 计数DP

T1 NS某道没做出来的题的加强版。 然后这个序列要构造出来, 定义Fi,jF_{i,j}为长度为ii以jj结尾的符合要求的序列个数。 发现将整个序列大于等于某个数的一部分增加1, 是仍然符合这个序列之前的要求的, 所以我们可以写一个O(n3)O(n^3)的DP, 然后差分优化。代码#include<bits/stdc++.h>using namespace std;#define K

2017-10-31 14:55:02 388

原创 期望DP

联赛前继续刷DP,RTT1 M期望DP推公式的一个套路题。 定义FiF_i为从ii点开始到逃脱的期望步数。 那么可得 Fi=ki∗(1+F1)+0∗ei+1Degi∑(1+Fj)((i,j)∈E)F_i=k_i*(1+F_1)+0*e_i+\frac{1}{Deg_i}\sum(1+F_j)((i,j)\in E) Fi=1+ki∗F1+1Degi∑FjF_i=1+k_i*F_1+\frac

2017-10-31 13:54:32 542

原创 区间DP

另一个专题。T1 You Are the One将栈的状态作为一棵树来看。 那么每次弹出的操作就是对于当前最左侧的这个元素来说的。 枚举其弹出的时间。 前缀和处理在其之后弹出的元素需要加上的值。 复杂度为O(Tn3)O(Tn^3)代码#include<bits/stdc++.h>using namespace std;#define Komachi is retarded#define

2017-10-28 11:08:08 287

原创 Probability

一些比较诡异的关于概率的DPT1 Infinite monkey theorem呃,可以KMP求出Fail的位置。 但是懒得那么做..直接暴力O(nlen2)O(nlen^2)匹配求出矩阵。 然后矩阵乘或者直接求都可以了。代码这题调很久的一个严重原因就是不会输出‘%’ ..要用两个‘%%’或是‘\%’才行。#include<bits/stdc++.h>using namespace std;

2017-10-26 21:02:43 333

原创 2017-10-18离线赛

大体状况220/300 正常一些了。 前十都是210~230= =A12两题, 最后一题的DP有一点点Bug然后没了10分。。T1 snum分析这种按位相加的东西显然可以拆数字来预处理。 取一个Base,预处理出Base内的S数值。 对于一个大数,拆分成若干个Base以内的数, 然后直接算出来。 因为R≤109R \le 10^9,有一种想法是分块打表, 即每隔10610^6取一个答

2017-10-19 15:58:07 335

原创 2017-10-17离线赛

大体状况300/300 ?因为是真题所以稍微简单一些吗= = 题目来源 NOIP2011 Day2T1 factor分析求(ax+by)k(ax+by)^k中anbma^nb^m的系数。 二项式杨辉三角展开后 ((ax)+(by))k((ax)+(by))^k =Cnk(ax)n(by)m=C_k^n(ax)^n(by)^m =k!n!m!anbmxnym=\frac{k!}{n!m!}

2017-10-18 11:28:11 350

原创 2017-10-16离线赛

大体状况172/300 状态十分差劲= =T1 multiple分析二分然后计算数量然后求一个最大值。 理论复杂度为O(Tmlog221018)O(Tmlog_2^210^{18})。 然后那个评测机果然没有跑过去, 只有62分 3分是1计算为0导致的 (在网站上都能过啊代码#include<bits/stdc++.h>using namespace std;#define Komac

2017-10-17 11:07:05 418

原创 DP

某些比较烦的DP题。 实际却都是在瞎搞,正经的DP题没有几个。T1 Parenthese sequence然后这题我是贪心过的。 把可以不用问号匹配的直接用栈匹配掉。 然后贪心地用问号去匹配那些未被匹配的。 然后看最后剩下的问号是否在2个以上。代码根本找不到类似这种的写法= =#include&lt;bits/stdc++.h&gt;using namespace std;#define Komach

2017-10-16 15:55:19 446 2

原创 2017-10-15离线赛

大体状况195/300 爆炸= =T1 draw分析Q1直接交换。 Q2半天想不出来。 浪费大量时间到最后就是一个求逆序对= =代码(敲了40分的暴搜BFS。#include<bits/stdc++.h>using namespace std;#define Komachi is retarded#define REP(i,a,b) for(int i=(a),i##_end_=(b);i

2017-10-16 14:39:48 263

原创 氮氧碘磷初赛

似乎没有什么想说的。 然后, ?初赛随便怎么水过去都可以吧 过线就够了。 细心些检查一个小时总不会差到什么地步= =

2017-10-13 22:21:41 521

原创 2017-10-12离线赛

氮氧碘磷初赛前的信心赛(AK场 16人AK= =T1 prime分析线性筛模板(不代码#include<bits/stdc++.h>using namespace std;#define Komachi is retarded#define REP(i,a,b) for(int i=(a),i##_end_=(b);i<i##_end_;i++)#define DREP(i,a,b) for

2017-10-13 08:48:52 270

原创 2017-9-28离线赛瞎刷

这一场并没有考, 然后题目还是补掉了的。T1 special tree题目大意一棵单向向下的树,另外每个点有一条到根节点的边。 两种操作:修改某边权以及回答两点间最短距离。分析因为这棵树长得十分奇怪, 所以实际上走的路径种数很少。 只有两种方案: 直接从u向下走到v, 从u子树中某个点走到根然后再走到v。 所以只用维护深度和子树内到根的距离。 DFS序求出子树区间。 然后我们用一个

2017-10-13 08:29:50 242

原创 2017-10-06离线赛

大体状况67/300 简直辣鸡T1 fantasy题目大意求一个乱起八糟的东西。分析经过各种找规律 然后发现就是一个模拟k进制 卡常几乎击杀了所有人代码#include<bits/stdc++.h>using namespace std;#define Komachi is retarded#define REP(i,a,b) for(register int i=(a),i##_end_

2017-10-11 22:08:49 273

原创 DFS && Cut twigs

写了一些没有具体算法的搜索题。 这种题目在离线赛中遇到可能会很难办了, 完全没有办法搞清楚最后能得多少分。 只能说是尽可能地剪枝并卡常, 然后祈祷能AC之类的。 某NOIP几乎不会有这种题, 不过可以用来写暴力(以及说不定就过了 附暴力踩标程一张: T1 stick分析N≤65N\le65,并且没有什么可以高效求解的算法。 搜索不加剪枝的话会被卡成智障。 那加剪枝啊: 1. 可

2017-10-11 16:55:19 346

原创 2017-10-10离线赛

大体状况150/300T1 uria题目大意求a+b≤na+b \le n且a+b|aba+b|ab的(a,b)(a,b)对数。 n≤1014n \le 10^{14}分析令Gcd(a,b)=dGcd(a,b)=d,然后设a′=a/d,b′=b/da'=a/d,b'=b/d 原条件可转换为(a′+b′)d|a′b′d2(a'+b')d|a'b'd^2 然后(a′+b′)|d(a'+b')|d

2017-10-11 11:14:19 245

原创 现实

题目大意求删去一个点后图变成DAG这样的点的所有选择方案。分析P20暴力枚举每个点, 然后拓扑排序查看是否为DAG。P40这一档满足有一条链从1连到n,有一条边为(n,1)。 其实就是一个大环。 这样其他的边形成的环是很明显的。 所以直接枚举点,然后查看是否被所有这样的边包含即可。 随便找个什么数据结构都能维护。 差分可以写得比较方便。P100可知现在找的点必须要使当前图上所有环消失。

2017-10-10 16:51:53 289

原创 2017-10-09离线赛

据说是镇海中学出的题目大体状况255/300T1 xor题目大意有一个数列,取一个区间,使区间最大值与次大值异或值最大。分析P40暴力O(n2)O(n^2) 维护最大值与次大值。P100这种题目肯定只有两种方法。 枚举最大值,查找次大值。 枚举次大值,查找最大值。 然后显然是后一种好写。 考虑其匹配的是哪个最大值。 用单调栈处理出前一个大于等于其的值。 设其位置为l,当前位置为r。

2017-10-10 11:01:00 270

原创 2017-10-07离线赛

大体状况240/300T1 simple题目大意求[1,q][1,q]内满足有非负整数解xn+ym=cxn+ym=c的数的个数。分析P60这个不定方程虽然是exgcd的形式, 然而完全可以写DP,然后直接计算。 实际上就是个暴力。P100因为不会写, 又看到n≤105n \le 10^5, 就考虑在modnmod n下讨论, 然后调了一会凑出了答案,对拍无误。代码瞎写。#include<b

2017-10-10 10:36:03 276

原创 告别(是题

题目描述给两个长度为nn的排列,从第一个排列开始,每次操作随机确定一个三元组(i,j,k)(i,j,k), 然后轮换它们的顺序,即A[i]=A[j],A[j]=A[k],A[k]=A[i]A[i]=A[j],A[j]=A[k],A[k]=A[i] 求在mm次操作内得到第二个排列的概率,用p∗q−1 mod 998244353p*q^{-1} \ mod \ 998244353表示 n≤14n

2017-10-08 11:25:20 465 2

原创 Dash Speed

Dash Speed题目描述比特山是比特镇的飙车圣地。在比特山上一共有n 个广场,编号依次为1 到n,这些广场之间通过n - 1条双向车道直接或间接地连接在一起,形成了一棵树的结构。 因为每条车道的修建时间以及建筑材料都不尽相同,所以可以用两个数字li; ri 量化地表示一条车道的承受区间,只有当汽车以不小于li 且不大于ri 的速度经过这条车道时,才不会对路面造成伤害。 Byteasar 最近

2017-10-05 10:32:04 1411

空空如也

空空如也

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

TA关注的人

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