自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JZOI 3521 道路覆盖 二分答案+状压dp

解题报告:二分+DP 由于是求最小值中的最大值,所以二分答案ans,问题转化为了判定性问题。判定的方法是:每个位置都能到达高度ans的最小费用cost是否<=M。 注意到1<=K<=11,也就是说对于第i个路段,能够提高它高度的泥土只有从第i-K个到第i个。于是使用状态压缩动态规划求cost。f[i][j]表示前i个路段通过泥土使用>=高度ans,且第i - k个到第i个的使用情况为二进制数j的

2017-07-29 20:35:56 930

原创 NOIP2014 飞扬的小鸟 动态规划

解题报告:这道题很容易想出一个O(NM2)的动规 即f[i][j]表示飞到i列j高度位置需要的最小点击数,则 f[i][j]=minf[i−1][j−k∗x]+k,1≤k≤j/x(O(M))f[i][j]=min{f[i−1][j−k∗x]+k},1≤k≤j/x(O(M))(不考虑掉下来的情况)这显然会超时。仔细分析,我们可以发现i-1列的格子被计算了很多次,越下面的格子被算的次数越多到最下面时

2017-07-29 15:24:22 450

原创 NOIP2016 T6 愤怒的小鸟

解题报告:仔细思考可以发现,这个题目应该是可以状压DP的。 (又是dp ,今年考了两道dp,还都是新类型)f[s]表示被覆盖的状态为s的最少猪数,然后预处理一个g[i][j]表示选择了i和j之后的抛物线经过的猪的状态集合(是一个01状态),如g[3][5]=(21)10=(10101)2(21)_{10}=(10101)_2表示经过第3、5只猪的抛物线可以打到第第1,3,5只猪。容易得出: f

2017-07-29 11:22:24 485

原创 NOIP2016 T5 蚯蚓

解题报告如果光用优先队列会超时。 可以发现如果先排序,那每条蚯蚓按比例切开后的[px]和x-[px]仍分别单调递减,所以可以开3个队列分别放原始长度,[px]部分和x-[px]部分,每次取三个队首中最长的即可。#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#inc

2017-07-28 15:09:35 400

原创 NOIP2016 T4 组合数问题

解题报告如果你知道Cji=Cji−1+Cj−1i−1C_i^j=C_{i-1}^j+C_{i-1}^{j-1},那这道题就是菜题了。 时间复杂度O(n2)O(n^2)#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include<cmath>using name

2017-07-28 11:56:23 301

原创 NOIP2016 T3 换教室

解题报告:noip首次考期望dp先用floyd预处理一下。 设f[i][j][k]表示第i个时间段,选了j个教室要申请(不一定成功),k表示i申请或不申请。 我们从i推到i+1,如果要推到f[i+1][j][0]的话,那么第i+1个时间段肯定在a[i+1]。这个可以从i的0状态和1状态推过来,如果从0推过来,那么i时间段肯定在a[i]这个地方,那么期望是d[a[i]][a[i+1]],概率是1。如果

2017-07-28 11:52:32 282

原创 NOIP2016 T2 天天爱跑步

解题报告:我们思考一下从x到y的路径,这个可以拆成从x到lca的路径和从lca到y的路径,这个很明显。 如果一个点i在从x到lca 的路径可以检测到的话,那么就有deep[i]+w[i]=deep[x]。 如果一个点i在从lca到y的路径上可以检测到的话,那么就有deep[i]-w[i]=deep[y]-t(t表示x到y的路径长度)。 对于每个点i,我们已知deep[i],w[i],只需要在路径上标

2017-07-28 11:49:31 361

原创 NOIP2016 T1 玩具谜题

模拟即可。 注意%n==0时要跳回n。 或用加减代替mod#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<string>#include<ctime>#include<cmath>#include<algorithm>#include<cctype>#include<iom

2017-07-28 11:44:21 290

原创 高精度乘法 普通(n^2)+fft(nlogn)

高精度乘法核心为ci=∑aj⋅bi−j+1c_i=\sum a_j·b_{i-j+1}普通算法时间复杂度为O(n)O(n). 又由于是卷积形式,可用fft优化为O(nlogn)O(nlogn)普通版#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm>using name

2017-07-27 19:52:21 1237 2

原创 bzoj 2565 最长双回文串 manacher

Description顺序和逆序读起来完全一样的串叫做回文串。比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同)。 输入长度为n的串S,求S的最长双回文子串T,即可将T分为两部分X,Y,(|X|,|Y|≥1)且X和Y都是回文串。Input一行由小写英文字母组成的字符串S。Output一行一个整数,表示最长双回文子串的长度。Sample Inputbaacaa

2017-07-27 09:56:50 269

原创 SPOJ 1812 Longest Common Substring II 后缀自动机求多字符串最长公共子串

题意:给若干字符串,求它们的最长公共子串的长度。题解:后缀自动机。对第一个串建立SAM,并拓扑排序。 用后面的串分别匹配。 对于SAM,每个节点新增两个值ml,ans; ans代表该节点满足所有字符串的最大值,初始化为该字符串建立时的最大值,每次匹配后更新。 ml代表该节点满足单一字符串时的最大值,匹配完一个字符串后重置为0; 每次匹配完字符串,按照拓扑排序从后往前更新(保证父节点在子节点

2017-07-25 19:01:25 703 1

原创 bzoj3998 弦论 后缀自动机

题目大意:对于给定的一个长度为n的字符串S,求其第k小的子串。询问有两种,一种不重复(本质不同)的子串,另一种要计算重复(位置不同)的子串。题解:首先我们可以建一个后缀自动机。 然后每条路径走到每个点都是一个串,它们是有字典序的。 我们只需要统计出往每个点走之后都有多少串(sum[i]sum[i])就好了。 sum[i]=∑sum[son[i]]+val[i]sum[i]=\sum su

2017-07-25 16:28:57 271

原创 bzoj 1031 [JSOI2007]字符加密Cipher

题目描述喜欢钻研问题的JS同学,最近又迷上了对加密方法的思考。一天,他突然想出了一种他认为是终极的加密办法:把需要加密的信息排成一圈,显然,它们有很多种不同的读法。例如下图,可以读作: JSOI07 SOI07J OI07JS I07JSO 07JSOI 7JSOI0把它们按照字符串的大小排序:07JSOI 7JSOI0 I07JSO JSOI07 OI07JS SOI07J读出最后一

2017-07-24 16:04:06 334

原创 NOIP模拟 Matrix 矩阵运算

题目描述给出两个 N×N 的矩阵 A、B,矩阵每行每列标号 0~N-1 。 定义这两个矩阵的乘积 AB 为(AB)i,j=∑k=0n−1Ai,jBi,j(AB)_{i,j}=\sum\limits_{k=0}^{n-1}A_{i,j}B_{i,j}现在要在这两个矩阵上依次进行 Q 次修改操作,两种操作描述如下: A i j K ,将 Ai,j 的值修改为 K 。 B i j K ,将 Bi,j

2017-07-22 21:54:13 507

转载 后缀数组详解

为什么学后缀数组后缀数组是一个比较强大的处理字符串的算法,是有关字符串的基础算法,所以必须掌握。 学会后缀自动机(SAM)就不用学后缀数组(SA)了?不,虽然SAM看起来更为强大和全面,但是有些SAM解决不了的问题能被SA解决,只掌握SAM是远远不够的。 ……有什么SAM做不了的例子? 比如果求一个串后缀的lcp方面的应用,这是SA可以很方便的用rmq来维护,但是SAM还要求lca,比较麻烦,

2017-07-21 20:57:40 694

原创 hdu2222 ac自动机模板

ac自动机模板题#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<cstdlib>#include<cmath>#include<ctime>#include<algorithm>#include<iomanip>#include<cctype>#include<queue>u

2017-07-21 19:44:52 251

原创 poj3974 manacher模板

manacher模板题#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<cstdlib>#include<cmath>#include<ctime>#include<algorithm>#include<iomanip>#include<cctype>#include<queue

2017-07-21 19:07:09 234

原创 poj3461 KMP模板 或 哈希

kmp模板题,也可用哈希kmp版#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<cstdlib>#include<cmath>#include<ctime>#include<algorithm>#include<iomanip>#include<cctype>#include<

2017-07-21 19:05:23 336

原创 NOIP模拟 Board

给出这样一棵“二叉树”:每个节点有左右两个儿子,并如下定义每个节点的高度:假设父亲节点的高度为 h ,那么他的两个儿子的节点的高度都是 h + 1 ,相同高度的所有节点称作一层。 每个节点的左儿子的子树都在右儿子的子树的左边,每一层相邻的两个节点之间有一条边。 下面是一个例子: 每一条图上的路径用一个字符串表示,字符串中的每一个字符表示一个移动。字符仅包含如下五种:1:表示移动到当前节点的左儿

2017-07-20 21:52:36 283

原创 NOIP模拟 table 动态规划

题目描述给定一个 n×m 的矩阵,行列均从 1 开始标号。一个矩阵被认为是稳定的,当且仅当对于任意的 2≤i≤n,第 i 行的数的和不小于第 i−1 行的数的和,且最后一行的数的和小于等于 m ,并且要求矩阵中所有的元素都是非负的。求所有 n×m 的稳定矩阵的方案数,答案对 109 取模。输入格式第一行一个整数 T ,表示数据组数。 每组数据一行两个整数 n,m 。输出格式输出 T 行,每行一个整

2017-07-20 21:36:33 353

原创 导数

一、定义当函数y=f(x)的自变量x在一点x0上产生一个增量Δx时,函数输出值的增量Δy与自变量增量Δx的比值在Δx趋于0时的极限a如果存在,a即为在x0处的导数,记作f’(x0)或df(x0)/dx。二、公式由斜率公式k=y1−y2x1−x2可得f′(x)=limΔx→0f(x+Δx)−f(x)Δx由斜率公式k=\frac{y_1-y_2}{x_1-x_2}可得f'(x)=\lim\limits_

2017-07-06 19:29:16 525

原创 函数的极限

一、函数极限的定义limx→x0f(x)=A⇔\lim\limits_{x\to x_0}f(x)=A\Leftrightarrow 对于∀ϵ>0,∃δ>0\forall\epsilon>0,\exists\delta>0,使得∀x∈(x0−δ,x0+δ)\forall x\in(x_0-\delta,x_0+\delta),满足|f(x)−A|ϵ|f(x)-A|。【注】limx→x0f(

2017-07-06 17:00:37 973

原创 数列的极限

一、数列极限的定义limn→+∞an=a⇔∀ϵ>0,∃N∈N+,当n>N时,有|xn−a|<ϵ{\lim_{n\to +\infty}a_n=a\Leftrightarrow\forall\epsilon>0,\exists N\in N^+,当n>N时,有|x_n-a|<\epsilon} 有极限的数列也叫收敛数列,一个数列的极限是a也叫该数列收敛于a。二、数列极限的性质1.唯一性一个数列的极限

2017-07-06 11:07:40 1355

空空如也

空空如也

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

TA关注的人

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