自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

scarlyw的博客

如果世界真的不喜欢你,那世界就是我的敌人了。

  • 博客(222)
  • 收藏
  • 关注

原创 poj1389 Area of Simple Polygons

Area of Simple Polygons题目背景:poj1389分析:之前突然发现自己竟然不会线段树+ 扫描线,于是迅速的去找了一道裸题,就是求的矩形的面积并,调了一会儿,主要是没有进行数据update就直接返回导致出错,以后要注意。Source:#include #include #include #include #incl

2017-03-10 21:02:00 464

原创 BJ模拟(2) D3T2 相似子串

相似子串题目背景:分析:这道题的暴力直到现在都还在RE我想我可能是智障吧,当时把暴力交上去后,刷了3屏的提交记录,我也很绝望啊·····但是知道现在都还是挂掉了······虽然正解已经调过了,但是心情还是非常的不好······考虑处理的方法,首先如果把字符串拷贝下来再进行比较,那显然时间会爆炸,那么我们考虑有什么快一点的方法,那当然就是hash啦,但是如果直接整串hash,我们该如

2017-03-10 19:42:55 306

原创 BJ模拟(2) D3T1 and

and题目背景:thoj28分析:我可能是个智障吧·····这是我在集训时做过的一道原题,然后我竟然连看都没有看出来,考试强行一波暴力,我想我还是比较适合回家种田······这是一道优秀的dp,考虑将所有的数取反,那么约束就变成了:所有的数or起来等于2w –1,且去掉任何一个都不满足条件,因为这个题我也没有想太清楚,可能就只能直接给出结论了,我们如果选出的某个树x不满足条

2017-03-10 19:23:35 1045

原创 BJ模拟(2) D2T3 路径规划

路径规划题目背景:thoj27分析:这道题我打了一个暴力,用树链剖分实现不知道为什么前两个点都没有过,但是别人完全不优化的暴力竟然都过了,这样我很不服啊,不开心qnq,本来呢,这道题敲一个无脑的点分是可以卡卡常数过的,复杂度O(nlog2n),但是正如某学长所说,这样非常的不优雅,那我们考虑一些优雅些的做法,首先我们这里给出一个结论。对于树上的两个不相交的点集S,T,若

2017-03-10 18:44:52 387

原创 BJ模拟(2) D2T2 随机游走

随机游走题目背景:分析:本题解法:树形DP + 倍增或树链剖分为了方便表述,记x的父亲为father[x],x的度数为k(则x的儿子的个数为k-1),x的儿子为son[x,1], son[x,2],..., son[x,k-1],E[x]为由x节点走向father[x]的期望步数。容易列出下面的式子: 我们自下而上DP,即可计算得出所有的E[x]

2017-03-10 18:21:56 379

原创 BJ模拟(2) D2T1 简单粗暴的题目

简单粗暴的题目题目背景:thoj25分析:本题一看真的很粗暴,在一想也的确非常粗爆,那么我们就用粗暴的方法,首先,我们发现直接暴力,我们需要算n2个数的k次方,显然复杂度上是不能接受的,我们发现对于第i个answer其实就是,S(i)k + (S(i)+ S(i - 1))k + (S(i) + S(i - 1) + S(i - 2))k + ... + (S(i)+

2017-03-10 18:02:10 352

原创 BJ模拟(2) D1T2 摩尔庄园

摩尔庄园题目背景:这个题并没有他的题目那么弱智······我们先考虑,题目给出的条件造就了一个非常优美的性质,就是最终建出来的是一棵完全二叉树,树高是log的,那么我们完全可以采取暴力爬树高·····首先可以发现,30%的数据是非常简单的直接暴力建边,每一次强行跑一次费用流就可以了,但是这样的复杂度显然是不对的,那么我们考虑怎么做,首先,我们发现当我们确定好一直拉姆的路

2017-03-10 17:31:15 381

原创 BJ模拟(1) D2T3 链上求和

链上求和题目背景:分析:这个题,我真的很想呵呵,当时听满分神犇讲了一次,然后学长讲了一次,然后默默的自己看了n次,然后在给别人讲了两次,才终于算是基本懂了······现在让我写,恐怕还是只有呵呵······我们先一步步进行考虑,首先对于一条链上的某一个点,他在这一条链上的统计次数,是这条链上比它的权值小的点的个数加1次,对于那一个1,我们完全可以通过dfs判断一个点会出现在多少

2017-03-10 15:37:45 365

原创 BJ模拟(1) D2T2 Alice and Bob IV

Alice and Bob IV题目背景:分析:    懂套路的大牛可能又要吐槽了,这个不是二分图匹配 + 博弈论吗,好吧,的确是,但是这个题的出题人显然是想搞事情······竟然搞出交互题来让我们陪checker愉快的玩耍······(我有一句XXX不知当不当讲)因为本题宝宝自己都还是比较懵逼的情况,但是我呢还是听话的先去做了bzoj2437[NOI2011]兔兔与蛋蛋(

2017-03-08 20:40:01 362

原创 BJ模拟(1) D2T1 Bash Plays with Functions

Bash Plays with Functions题目背景:thoj23分析:首先我们来搞一波打表找规律就会比较轻松的发现,f0 = 2k, 其中k表示n的不同的质因子的个数,所以我们也就可以发现f0 为积性函数,我们把稍微关注一下fr+1(n)的形式,就会发现fr+1(n) = sigma(d|n)fr(d)因为f0为积性函数,我们根据性质

2017-03-08 20:16:07 589

原创 BJ模拟(1) D1T1 Delight for a Cat

Delight for a Cat题目背景:thoj22分析:首先,如果你没有学习过NOI2008的志愿者招募,请先去A掉那道题这里首先,假设这只猫在所有天数都是睡觉,我们稍后再决策将哪些天数改为吃东西。我们用 Xi = 0 表示这只猫在第i天睡觉, Xi = 1 表示吃东西。则有下列不等式:me ≤ X1 + X2+

2017-03-07 07:24:37 557

原创 BJ模拟(1) D1T1 计数

计数题目背景:thoj21分析:先考虑放置所有的A,要在所有的相邻的A中间进行插入,然后我们考虑插入B,那么之后就会形成..A..B..B..B..A..B..A..B的形式可以通过枚举在多少的A之间插入了B来得到1)若两个相邻的字符相同,则必须在之间插入一些东西2)若相邻的两个字符不相同,则可以在它们之间插入一些东西那么1的插入是必

2017-03-06 21:05:35 301

原创 bzoj4504 K个串

K个串题目背景:bzoj4503分析:首先考虑如果没有负数,那么我们就可以直接从段的长度从大到小枚举就可以了,然而,这显然不能A题,我们考虑对于每一个位置i,我们维护以它为右端点的每一个子串的和,并且令maxp[i]为当前的这一部分的子串和的最大值,显然,全局的最大值,就是所有maxp[i]的最大值,然后我们用当前最大值所在的i的以其为右端点的子串中的次大值来重新更

2017-03-06 20:26:24 503

原创 bzoj4503 两个串

两个串题目背景:bzoj4503分析:我相信各路大牛在看到这道题的时候一定会不屑的表示这个不是套路题吗····的确这真心就是一个简单的套路,快速傅立叶变换(FFT),我们选择将T进行翻转,然后令c[j + m – 1] = sigma((a[j + i] – b[m – 1 – i]) ^ 2* a[j + i] * b[m – 1 – i]) (0

2017-03-06 19:46:21 704

原创 bzoj4502 串

串题目背景:bzoj4502分析:20% 解法:暴力枚举前缀,然后两两枚举形成新串,然后有hash判重(用set的宝宝,爆成了5分·····)50% 解法:将集合中的所有的字符串构建成一个AC自动机,然后,注意到每个字符串在AC自动机上的匹配路径应该是唯一的,那么我们可以考虑dp,f[i][j][k]表示当前长度为i的字符串,匹配到j状态,第

2017-03-06 19:08:23 915

原创 bzoj4571 美味

美味题目背景:bzoj4571分析: 首先,明确一个异或的套路,高位贪心,然后我们就可以发现,想要每一次求出最大值,就是针对给出的bi进行高位贪心,现在我们来一步步解决此题,从简化版开始考虑。1、     有每一道菜的美味值ai,并且没有l,r的限制,也没有偏爱值xi方法:因为需要满足高位贪心,那么,我们只需要将每一个ai计入一个trie树中,然后将每一个b

2017-03-06 18:13:33 402

原创 bzoj1305 跳舞

跳舞题目背景:bzoj1305分析: 我们考虑这道题,我想应该还是能够比较容易的发现这是一道网络流,不论是题面推理,还是从数据范围来看,但是要是真的有这么的简单,那就显得不太正常了······我们考虑这么一个问题,我们可以考虑如果当前最多能跳a首曲子,那么我们可以向每一个点连一条容量为a的边,然后为了方便的处理,我们1)将每一个人拆成两个点,男孩的两个点为X1,

2017-03-06 17:41:02 512

原创 bzoj3997 组合数学

组合数学题目背景:bzoj3997分析:首先注意,我们可以把原题抽象成为一张DAG,然后每个格子可以走到相邻的下方或者右方的格子,但是当前格子中的每一个点互不联通,然后,我们就可以发现原题就是求取一个DAG的最小链覆盖,然后根据Dilworth定理(我也不知道这是什么,太蒟蒻······):DAG的最小链覆盖 = 最大独立点集然后根据每个格子与右

2017-03-06 16:45:14 390

原创 bzoj2565 最长双回文串

最长双回文串题目背景:BZOJ - 2565分析:据说用回文自动机很裸,据说回文自动机做这个题很简单,宝宝这种蒟蒻不会,还是就manacher吧,记录下信息即可,详见代码注释。Source:#include #include #include #include using namespace std;const int N = 1e6 + 5;

2017-01-31 14:43:57 287

原创 poj3974 Palindrome

Palindrome题目背景:POJ - 3974分析:裸的求最长回文串啦,manacher大法好Source:#include #include #include #include #include #include #include using namespace std;const int MAXN = 1000000 +

2017-01-31 14:42:29 315

原创 hdu3065 病毒侵袭持续中

病毒侵袭持续中题目背景:HDU - 3065分析:AC自动机,直接建好跑就OK只是需要在去重的时候小心,它是问出现了几次,盲目去重就会错的很惨。Source:#include #include #include #include #include #include #include using namespace std;const

2017-01-31 14:41:16 267

原创 poj4052 Hrinity

Hrinity题目背景:POJ - 4052 分析:明明不算太难的题,我前前后后断断续续调了一个月······也不知道当时怎么想的,其实说白了就是三个步骤,一把所有的模式串建成自动机,二用匹配串跑一遍,标记所有的被匹配的串,然后针对所有匹配上的串清除其子串,之后统计一下答案即可。中间本人出问题的点已经在代码中进行了标注。Source:#include #include

2017-01-31 14:39:14 267

原创 poj1204 Word Puzzles

Word Puzzles题目背景:poj1204分析:AC自动机的题,先将所有的匹配串建成AC自动机,然后八个方向用地图来跑即可。详细见代码。Source:#include#include#include#include#include#includeusing namespace std;const int dx[9]= {0, -1,

2017-01-31 14:38:05 223

原创 hdu2222 Keywords Search

Keywords Search题目背景:HDU - 2222 分析:AC自动机板子题Source:#include #include #include #include #include #include using namespace std;const int MAXN = 500000 + 50;int n, t, tot;

2017-01-31 14:36:48 348

原创 CF633C Spy Syndrome 2

Spy Syndrome 2题目背景:CF  633C分析:又是一道trie + , 这道题是trie + DP,直接针对每一位处理如果从这一位截断,那么形成的单词是什么,具体详见代码Source:#include #include #include #include #include #include #include using name

2017-01-31 14:35:01 294

原创 poj1816 Wild words

Wild words题目背景:poj1816分析:虽然不想说,但是我不得不说,这个题刷新了我对“trie树很亲民”的认知,本题是trie + dfs因为存在通配符,就需要进行模糊匹配的处理,代码就有点繁琐了。具体的解题方向详见代码注释。Source: #include#include#include#include#include#include

2017-01-31 14:33:37 288

原创 poj3945 Find the Clones

Find the Clones题目背景:poj2945分析:还是trie树的裸题,直接先全部读入,然后在每一个串尾结点计数,最后全部扫一遍统计cnt即可。Source: #include#include#include#include#include#includeusing namespace std;int t, n, tot, m;

2017-01-31 14:31:47 323

原创 poj3630 Phone List

Phone List题目背景:poj3630分析:trie树的裸题,直接先全部读入,然后判定是否有前缀存在即可。Source:#include#include#include#include#include#include#includeusing namespace std;int tot, t, n;string str;stru

2017-01-31 14:30:47 186

原创 CF 526D Om Nom and Necklace

Om Nom and Necklace题目背景:CF 526D分析:还是next数组的妙用,若n % (n - next[n]) == 0 则表示n为循环串,每一串都是长度为n – next[n],但是这个题每一位都要判断,具体的判定条件和判定思路,详见代码注释。Source:#include #include #include #include #include

2017-01-31 14:29:38 330

原创 poj2406 Power strings

Power strings题目背景:poj2406分析:next数组的妙用,若n % (n - next[n]) == 0 则表示n为循环串,每一串都是长度为n – next[n],证明我的建议是自己下去画一下会更好理解。Source:#include#includeusing namespace std;const int Max = 10000000

2017-01-31 14:28:20 212

原创 poj3461 Oulipo

Oulipo题目背景:poj3461分析:裸的kmp直接上比较好Source:#include #include #include #include #include #include #include using namespace std;int p[10010];string s, t;int cas;void

2017-01-31 14:27:10 218

原创 poj1386 Play on words

Play on words题目背景:poj1386分析:题意应该比较好理解,重点是怎么实现,我们可以发现,他需要我们求的是一条欧拉路径,并且我们可以发现,其实对于一个单词而言中间的字母是没有用的,只有两头的有用,然后我们的思路就比较清晰了,从每一个单词的首字母向尾字母连边,之后就形成了一个有26个点的有向图,然后我们针对这个图求解是否存在欧拉路径或欧拉回路即可。Source:

2017-01-29 20:53:25 201

原创 poj2749 Building roads

Building roads题目背景:poj2749分析:本题的建边比较繁琐,并且需要二分答案来寻找最小的曼哈顿距离然后2-SAT求解,因此,每一次二分一个上界,然后根据上界limit, 然后根据喜欢讨厌关系和如下关系建边tarjan即可。如还不太清楚2-SAT,可以去看这篇dist(i, S1) + dist(S1, j) > limit  ó Xi->!Xj  Xj->Xi

2017-01-29 20:51:59 295

原创 poj3648 Wedding

Wedding题目背景:poj3648分析:2-SAT裸题,直接将与新郎同侧设置为true,然后跑tarjan即可。如果不太清楚2-SAT的同学,请去看我的另一篇文章,详解了2-SATSource:#include #include #include #include #include #include #include #include

2017-01-29 20:50:40 310

原创 poj2942 Knights of the Round Table

Knights of the Round Table题目背景:poj2942分析:这个题,每个知识点都不难,但是放到一起还是挺恶心的。首先我们明确我们要找的是点双联通分量,然后针对每一组点双联通分量进行二分图染色,一次来判定其是否为奇圈(满足题目要求),之后用总数减去奇圈中的点个数即可。Source: #include #include #include #in

2017-01-29 20:49:12 190

原创 poj1523 SPF

SPF题目背景:poj1523     分析:直接判定割点,然后针对每一个个点进行一次dfs之后就可以确定每一个割点会将图像分为几部分。详见代码。Source:#include #include #include #include #include #include #include #include using namespace st

2017-01-29 20:47:01 222

原创 poj3177 Redundant Paths

Redundant Paths题目背景:poj3177分析:题目本身不难,直接求取边双联通分量,然后计算出其中度数为1的DCC的个数即可,注意统计度数的时候是把无向边正反全部利用了的,所以统计的应该是度为2的DCC。Source:#include #include #include #include #include #include #includ

2017-01-29 20:44:47 198

原创 poj1236 Network of Schools

Network of Schools题目背景:poj1236分析:这道题与缩点的度有关。对于问题A,我们可以简化为:1)    至少要选几个顶点,才能做到从这些顶点出发可以遍历所有结点对于问题B,我们可以简化为:2) 至少要加多少条边,才能使得从任何一个顶点出发都能遍历全部结点 实现:1、统计得出每个SCC的入度出度先将缩点中的每个点的入度和出度累加

2017-01-29 20:42:34 234

原创 poj3180 The cow porm

The cow porm题目背景:Poj3180分析:求点数大于2 的强连通分量个数Source:#include #include #include #include #include #include #include #include using namespace std;inline void R(int &v) { c

2017-01-29 20:40:01 528

原创 poj2186 Popular cows

Popularcows题目背景:poj2186分析:题目本身简单,从每头牛向他们所喜欢的牛连边,考虑这么一个问题,所有的满足题目受欢迎的条件,则这些牛都在同一个强连通分量中,并且,这个SCC一定是出度为0的,所以我们要求的就是那个SCC中的点的个数即可,但是注意,可能出现获得的图并不联通的情况,这个时候答案直接为NO,因为不可能有符合题目的牛。Source:{CSDN:CO

2017-01-29 20:37:29 229

空空如也

空空如也

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

TA关注的人

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