自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

linkfqy

                          ——A link to FQY.

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

原创 【线段树,Treap】BZOJ2770 YY的Treap

题面在这里没什么好说的,和这道题一样的就是要注意:虽然不会同时出现key与priority但还是有可能有相同的值不同时出现所以不能偷懒用map示例程序:

2017-08-27 19:10:48 610

原创 【结论+简单几何】HDU6147 Pokémon GO II

题面在这里不难发现,第一次路径相交时,这两条线段出现的时间差不超过6然后就很好搞了注意判断线段相交有很多小细节示例程序:

2017-08-24 21:35:12 863

原创 【递推+乱搞】HDU6146 Pokémon GO

题面在这里要使步数最少,则每个格子只走一次 定义AiA_i表示2×i2\times i的矩阵,从某个角落出发遍历整个矩阵的方案数 BiB_i表示2×i2\times i的矩阵,从某个角落出发遍历整个矩阵,并回到出发的那列的方案数显然有: Bi=2i−1B_i=2^{i-1} Ai=Bi+2⋅Ai−1+4⋅Ai−2A_i=B_i+2\cdot A_{i-1}+4\cdot A_{i-2}

2017-08-24 21:29:44 503

原创 【字符串处理】HDU6144 Arithmetic of Bomb

题面在这里SB题,没什么好讲的了示例程序:

2017-08-24 21:20:06 476

原创 【线段树,Treap】CodeChef COT5 Count on a Treap

题面在这里这道题很考验对Treap的理解考虑问题时,先把Treap转换成LNR序列,那么就只用考虑节点的权值了 首先发现,Treap中一个节点的father必定是: 向两边找第一个权值比自己大的点 那么显然一个节点的深度可以由 向两边扩展的最长上升序列的长度 得到 我们用线段树维护这个值 具体做法是离线得到所有键值,维护某区间内的最长上升序列的长度 区间询问一发就可以得到一个点的深度

2017-08-23 20:47:28 1283

原创 【除法分块】BZOJ1257 [CQOI2007]余数之和sum

题面在这里把答案的形式写出来就是这样的: ∑i=1mn−⌊ni⌋⋅i\sum_{i=1}^m n-\lfloor \frac n i \rfloor \cdot i nm−∑i=1m⌊ni⌋⋅inm-\sum_{i=1}^m \lfloor \frac n i \rfloor \cdot i 可以发现,随着i的增长,⌊ni⌋\lfloor \frac n i \rfloor是可以分块的

2017-08-20 16:04:38 972

原创 【FFT】BZOJ2194 快速傅立叶之二

题面在这里FFT经典题……题目中CiC_i与Ai,BiA_i,B_i的关系非常奇怪,导致不能直接使用FFT加速 如果我们把AiA_i倒过来,那么就有: Ck=∑i≥ki<nan−i−1⋅bi−kC_k=\sum_{i\ge k}^{i<n} a_{n-i-1}\cdot b_{i-k} 所以就可以用FFT加速运算了示例程序:

2017-08-14 20:25:11 662

原创 【FFT】BZOJ2179 FFT快速傅立叶

题面在这里FFT裸题……双倍经验,但是为了巩固还是重新打了一遍示例程序:

2017-08-12 21:56:16 404

原创 多项式与快速傅里叶变换

前言快速傅里叶变换(Fast Fourier Transform, FFT)是计算序列的离散傅里叶变换(DFT)或其逆变换(IDFT)的一种算法。一般用于快速计算多项式乘法。预备知识单位复数根n次单位复数根是满足ωn=1\omega ^n=1的复数ω\omega显然n次单位复数根恰好有n个根据复数的指数形式定义: eiu=cos(u)+i×sin(u)e^{iu}=cos(u)+i\times

2017-08-11 21:32:31 5385 5

原创 【FFT】HDU1402 A×B Problem Plus

题面在这里FFT实现高精数乘……没什么好讲的,直接上代码

2017-08-11 18:17:10 594

原创 【单调栈】Codeforces 601B Lipshitz Sequence

题面在这里单调栈裸题……可以发现一个很显然的结论:L(h)L(h)只会从相邻两个位置得到具体证明可以把L(h)L(h)看作斜率然后每个子序列的权值就是Max{|ai−ai−1|}Max\{ |a_i-a_{i-1}|\}把ai−ai−1a_i-a_{i-1}看成did_i,用一个单调栈维护就好了因为询问只有100,所以每次询问可以直接O(n)O(n)搞。示例程序:

2017-08-09 22:18:47 833

原创 【单调队列】51nod 1275 连续子段的差异

题面在这里单调队列的经典题……发现一个合法的区间的所有子区间都是合法的那么枚举右端点,维护最小的左端点相当于每次加入一个值,然后右移左端点,使得区间内的差值≤k\le k如何快速获取最大/最小值?维护两个单调队列就好了示例程序:

2017-08-08 15:56:30 1107 1

原创 【分块】BZOJ4216 Pig

题面在这里典型的分块题……没什么好说的,直接分块搞就好了示例程序:

2017-08-07 21:39:10 370

原创 【KMP,next树】BZOJ3670 [Noi2014]动物园

题面在这里先KMP建出next树,那么num[i]就是i的祖先中最大的编号小于等于i/2的深度用一个指针维护一下就可以得到了示例程序:#include<cstdio>

2017-08-07 20:10:53 894

原创 【KMP+DP+矩阵优化】BZOJ1009 [HNOI2008]GT考试

题面在这里显然需要递推,定义fi,jf_{i,j}为处理到第i位,不吉利数字匹配到第j位的方显然答案就是 ∑i=0m−1fn,i\sum_{i=0}^{m-1} f_{n,i} 怎么转移状态?对于fi,jf_{i,j},枚举i+1位的数字,用KMP得到不吉利数字新的匹配位置k,就有 fi+1,k+=fi,jf_{i+1,k}+=f_{i,j} 然而n是10910^9级别的,显然不能这

2017-08-07 11:51:54 767

原创 【斜率优化DP】BZOJ1597 [Usaco2008 Mar]土地购买

题面在这里一看就是斜率优化DP……首先如果存在ai≤aj且bi≤bja_i\le a_j且b_i\le b_j则可以不处理i去掉这些没用的土地,那么aia_i一定递增,bib_i一定递减设fif_i表示前ii块土地全部买了的最小代价很容易得到转移方程:fi=Min{fj+ai×bj+1}    (0≤j<i)f_i=Min\{ f_j+a_i\times b_{j+1} \}\space\space

2017-08-06 18:31:29 808 1

原创 【哈夫曼树,贪心】BZOJ4198 [Noi2015]荷马史诗

题面在这里显然是哈夫曼树 如何让最长的串最短? 显然只需要改变比较的优先级就好了 如果权值相同则深度小的优先示例程序:

2017-08-04 22:48:23 718

原创 【教程】【技术向】将博客批量导出为markdown或html格式

前言最近突然想要备份一下自己的blog 但是上百篇博客,手动导出肯定要累死 所以LZ就上网搜索,自己捣鼓了一下 于是就有了这篇教程注:本文的读者定向是小白,各位dalao如果觉得步骤太罗嗦可以跳过 本教程中所有用到的资源已经打包上传网盘 连接在最后给出,dalao们可以下载食用教程LZ首先在网上搜到了这篇文章 果断下载脚本 但是LZ没有用过Python啊 于是又到官网上下载来Pyth

2017-08-02 22:20:23 3436 4

原创 【KMP next树】51nod 1277 字符串中的最大值

题面在这里首先要明确一个性质:字符串border的border是原串的border 所以一个前缀是多少个前缀的border,它的出现次数就是多少所以在next树上,子树的大小就是它的出现次数 统计一下就好了示例程序:

2017-08-02 12:17:05 626

原创 【KMP】POJ3461 Oulipo

题面在这里没什么好说的……直接KMP就好了示例程序:

2017-08-01 22:24:56 473

原创 【KMP】POJ2752 Seek the Name, Seek the Fame

题面在这里由于字符串border的border一定是原串的border 所以不断求next即可示例程序:

2017-08-01 22:11:30 354

原创 KMP算法及其应用

前言今天学习了一个新算法:KMP算法 其实很久以前学过早忘了 KMP算法是用于处理字串问题的算法。参考Matrix67的博客:KMP算法详解|Matrix67KMP算法的原理假设有字符串A和B,要求判断B是否是A的字串 其实就是对于每个i,求最大的j,使得Ai−j+1→i与B1→jA_{i-j+1\rightarrow i}与B_{1\rightarrow j}一一匹配 能匹配j指针就往后跳

2017-08-01 21:23:24 4022

原创 【KMP求最小循环节】POJ2406 Power Strings

题面在这里可以发现,如果字符串S存在循环节 对其求next,大概是长这样的: 很显然,答案是NN−next[N]\frac N {N-next[N]} 否则一定不会整除示例程序:

2017-08-01 16:15:56 721

原创 【主席树】Codechef Prefix XOR

题面在这里一道很巧妙的题目……构造前缀异或和 那么SjxorSi−1≥Sj−1xorSi−1S_jxorS_{i-1}\ge S_{j-1}xorS_{i-1} 考虑SjS_j和Sj−1S_{j-1}二进制下的LCP后一位 那么就对Si−1S_{i-1}的某一位产生了限制 这样可以线性求出每个i最远的j然后把这个右端点塞到主席树里 对于每次询问,考虑左端点在[L,R][L,R]内,右端点如

2017-08-01 12:30:32 903

周东《浅析最大最小定理在信息学竞赛中的应用》

周东大神关于s-t平面图与对偶图的转化PPT 可以快速求解s-t平面图中的最大流问题 解释很详细,很有帮助

2017-05-30

空空如也

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

TA关注的人

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