Icefox的博客

生活不止眼前的苟且,还有诗和远方。

poj2262 Goldbach's Conjecture(线性素数筛+暴力枚举)

线性素数筛板子。原理就是保证每个合数一定是被自己最小的质因子筛掉的。核心就是:if(i%prime[j]==0) break;如果i有prime[j]这个质因子,则i=prime[j]*k, i*prime[j+1]=prime[j]*k *prime[j+1],完全可以在k *prime[j+1...

2017-08-26 17:59:22

阅读数 173

评论数 0

luogu1218 [USACO1.5] Superprime Rib(搜索+素数判断)

#include <cstdio> #include <cstring> int n; bool isprime(int x){ if(x==1) return false; for(int i=2;i*i<=x;++i) if(x%i...

2017-08-26 17:44:07

阅读数 172

评论数 0

luogu1017【2000提高】进制转换(数学)

2000提高

2017-08-26 17:40:13

阅读数 201

评论数 0

luogu1003【2011提高】铺地毯(模拟)

这应该是我第一次写struct吧hh

2017-08-26 17:26:39

阅读数 197

评论数 0

luogu1149【2008提高】火柴棒等式(模拟)

2008提高

2017-08-26 17:20:50

阅读数 140

评论数 0

luogu1089【2004提高】津津的储蓄计划(模拟)

2004提高

2017-08-26 17:11:27

阅读数 358

评论数 0

bzoj3796 Mushroom追妹纸(SA+二分答案+kmp)

把s1和s2接在一起,求最长公共子串。二分答案就好了。。。此题就多一个判断,要求s3不能出现在公共子串里,那我们就预处理一下,用kmp求出s3在s2中出现的位置,处理成L数组,即可O(1)判断。

2017-08-26 16:58:07

阅读数 317

评论数 0

bzoj3676 [Apio2014]回文串(manacher+SA+二分+lcp)

manacher板子戳这里 我们用manacher枚举回文串,用SA求这个串的出现次数。(利用h数组二分求最大包含区间[l…r],则出现次数为r-l+1)类似这道题。不错的好题。。。

2017-08-26 15:58:09

阅读数 185

评论数 0

bzoj3277&&bzoj3473 串(SA+二分+lcp)

首先老套路,我们把所有串接在一起,用分隔符隔开,做SA,求出h数组,并用st表求lcp。然后分析题目,我们对于每个串分别统计答案。假定我们正在做第i个串,在总串中从sta开始,到ed结束。则我们要求的就是每个后缀a[sta…ed],a[sta+1…ed]…a[ed]对答案的贡献和。假设我们在求a[...

2017-08-26 14:22:20

阅读数 273

评论数 0

luogu3847 [TJOI2007]调整队形(dp求变回文的最小操作)

操作一共有四种,但是我们本着简化的原则可以发现 操作1,2 即往数列里加数可以等效的被一步操作3 即删掉 你想加数对应的那个数来代替,所以无非就两种操作:1.改变一个数。2.删掉一个数。求最少经过几步操作可以使原数列变为回文的 我们考虑dp[i][j]表示把i…j变成回文所需的最小步数,则如果...

2017-08-25 22:41:12

阅读数 200

评论数 0

bzoj3238 [Ahoi2013]差异(SA+单调栈求所有区间最小值和)

我们很明显可以直接预处理出来T(i)+T(j)的总和,为n* (n-1)*(n+1)/2(推一下样例就可以了),然后主要问题是处理lcp的和。 这个地方我们可以直接在height数组上搞,我们可以发现,每一对(i,j)都对应了h数组上的一段区间、甚至是点!(当i,j两个子串rank相连的时候)那...

2017-08-24 21:59:47

阅读数 387

评论数 2

bzoj3172 [Tjoi2013]单词(SA+暴力,类似bzoj2754)

把所有单词连在一起,SA求出h数组,对于每一个单词看做一个询问,暴力往前往后扫,看有几个暴力统计即可。反正N才200

2017-08-24 20:33:03

阅读数 248

评论数 0

bzoj2946 [Poi2000]公共串(SA+二分答案 同poj3450)

求多个串的最长公共子串,一模一样,题解见这里

2017-08-24 19:52:07

阅读数 290

评论数 0

bzoj2754 [SCOI2012]喵星球上的点名(后缀数组+暴力)

把所有串接在一起,打上分割符。SA求出h数组。然后就暴力。。每一个询问串往后往前扫h大于询问串长度的。然后暴力统计答案。。。复杂度很玄学。 tips:这题数据范围太大。。注意越界问题的细节。。

2017-08-24 18:00:18

阅读数 409

评论数 0

bzoj2534 Uva10829L-gap字符串(SA+lcp同bzoj2119)

求形如ABA的子串个数,同bzoj2119,题解看这里 tips:没说全是小写字母你就别换成int了。。。无谓的WA三发#include

2017-08-24 17:00:16

阅读数 241

评论数 0

hdu1255 覆盖的面积(线段树+扫描线+离散化,求矩形面积并)

给定平面上若干矩形,求出被这些矩形覆盖过至少两次的区域的面积。和周长并套路差不多。。甚至简单了些我觉得。重点是维护重复了两次以上的线段长度。分类讨论即可。 以coverlen[2]为例: 如果cover==0 则coverlen[2]利用子树的coverlen[2]来更新 如果cover==...

2017-08-24 15:14:27

阅读数 145

评论数 0

poj1177[IOI1998]Picture (扫描线+离散化+线段树,求矩形周长并)

这人讲的很清楚了。我就再说一些细节。做了离散化之后时间和空间确实很优秀,但其实不做离散化也可以过。 扫描线这个算法,就是从左到右拿一根平行于y轴的线去扫描,遇到线段后进行处理,入边和出边。统计答案要注意。线段树负责维护的其实是一个线段覆盖的问题,我的每个节点表示的是一条线段,即a[l]a[r+1]...

2017-08-24 13:01:33

阅读数 497

评论数 0

CF840C On the Bench(dp+组合数学)

首先我们对n个数进行一个分组,把乘积为平方数的数分在一组(可以证明:同一组内的数两两乘积为平方数,不同组的两个数乘积一定不是平方数),记作一共分了nn组,则同组的数只要不相邻即可满足题意。即原问题转化为 n个物品,分成了nn组,要求同组物品不能相邻,问共有几种排列方案。我们dp解决这个问题,f[...

2017-08-22 20:46:19

阅读数 536

评论数 0

FNOI_TEST_1 c(二分)

首先我们要发现b[i]是随着i不降的。。。这就给我们优化提供了可能。正解也是枚举答案区间左端点,但是发现规律用二分查找分界点,优化为O(1)算出。复杂度为O(nlogn)

2017-08-20 15:19:04

阅读数 155

评论数 0

FNOI_TEST_1 b(高精度除法)

第二题就是个高精度除法。花15分钟写一下高精除低精就是70分啊。。。高精除高精,我们把除法变成多次减法来做。复杂度是O(10nm)O(10nm)的

2017-08-20 14:20:36

阅读数 205

评论数 0

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