自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

IcePrincess_1968's World

I'll always miss you like a darling.

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

原创 BZOJ1177: Oil 题解

Description采油区域 Siruseri政府决定将石油资源丰富的Navalur省的土地拍卖给私人承包商以建立油井。被拍卖的整块土地为一个矩形区域,被划分为M×N个小块。 Siruseri地质调查局有关于Navalur土地石油储量的估测数据。这些数据表示为M×N个非负整数,即对每一小块土地石油储量的估计值。 为了避免出现垄断,政府规定每一个承包商只能承包一个由K×K块相连的土地构成的正方...

2018-08-07 22:41:44 500

原创 Codeforces #1016B: Segment Occurences 题解

DescriptionYou are given two strings s and t, both consisting only of lowercase Latin letters.The substring s[l..r] is the string which is obtained by taking characters sl,sl+1,…,sr without changing...

2018-08-05 17:46:24 399

原创 Codeforces #1016A: Death Note 题解

DescriptionYou received a notebook which is called Death Note. This notebook has infinite number of pages. A rule is written on the last page (huh) of this notebook. It says: “You have to write name...

2018-08-05 17:40:36 353

原创 HDU6312: Game 题解

DescriptionAlice and Bob are playing a game. The game is played on a set of positive integers from 1 to n. In one step, the player can choose a positive integer from the set, and erase all of its ...

2018-07-28 17:54:07 579

原创 HDU6315:Naive Operations 题解

DescriptionIn a galaxy far, far away, there are two integer sequence a and b of length n. b is a static permutation of 1 to n. Initially a is filled with zeroes. There are two kind of operations: ...

2018-07-27 23:38:23 359 2

原创 HDU6314: Matrix 题解

DescriptionSamwell Tarly is learning to draw a magical matrix to protect himself from the White Walkers. the magical matrix is a matrix with n rows and m columns, and every single block should be p...

2018-07-27 22:28:55 1039

原创 BZOJ3282: Tree 题解

LCT的模板题,学splay和LCT合起来花了两三天 LCT的核心就是用splay维护preferred path,preferred path定义为上次access操作所经过的那些边,access操作的本质是打通当前点到树的根 这题要求删边,加边和维护一条链上的xor和 对于加边(u,v):makeroot(u),fa[u]=v即可,注意虽然这时fa[u]=v,但是u并不是v的儿子,u和v...

2018-07-26 22:30:49 239

原创 HDU6305: RMQ Similar Sequence 题解

DescriptionChiaki has a sequence A={a1,a2,…,an}. Let RMQ(A,l,r) be the minimum i (l≤i≤r) such that ai is the maximum value in al,al+1,…,ar.Two sequences A and B are called \textit{RMQ Similar}, if...

2018-07-23 23:41:24 427

原创 SPOJ SUBLEX: Lexicographical Substring Search 题解

DescriptionLittle Daniel loves to play with strings! He always finds different ways to have fun with strings! Knowing that, his friend Kinan decided to test his skills so he gave him a string S and ...

2018-07-23 11:26:04 241

原创 UOJ #275: 组合数问题 题解

非常好的题目,感觉这个lucas的应用算是常见套路了吧 题目要求CMN≡0(modk)CNM≡0(modk)C_N^M\equiv0(modk),因为k是质数,所以根据Lucas定理,CM/kN/k∗CMmodkNmodk≡0(modk)CN/kM/k∗CNmodkMmodk≡0(modk)C_{N/k}^{M/k}*C_{Nmodk}^{Mmodk}\equiv 0(modk) 我们发现这个...

2018-07-22 14:31:28 618

原创 POJ1392: Ouroboros Snake 题解

DescriptionOuroboros is a mythical snake from ancient Egypt. It has its tail in its mouth and continously devours itself.The Ouroboros numbers are binary numbers of 2^n bits that have the property...

2018-07-15 18:04:47 397

原创 BZOJ3196: 二逼平衡树 题解

Description您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作: 1.查询k在区间内的排名 2.查询区间内排名为k的值 3.修改某一位值上的数值 4.查询k在区间内的前驱(前驱定义为小于x,且最大的数) 5.查询k在区间内的后继(后继定义为大于x,且最小的数)Input第一行两个数 n,m 表示长度为n的有序序列和m个操作 第二行...

2018-07-14 23:11:20 296

原创 BZOJ2521: 最小生成树 题解

首先除了自己其他的边-1相当于给自己+1 一件显然的事情是我们肯定不会给指定边做+1操作 我们考虑什么时候指定边会不在最小生成树中,我们考虑kruskal的过程,是把边从小到大加入树中的,如果加到(a,b)的时候,a,b在并查集中是连通的,那么(a,b)就不会被加入,也就是说,如果存在一条路径,上面的每一条边权值都不大于w(a,b),那么(a,b)就可能会不被加入,所以对于每一条可能的从a到b...

2018-07-13 22:34:48 240

原创 UOJ #316: 泳池 题解

我觉得这个dp还挺难的 首先计算面积恰好为k的比较难办,不妨容斥,计算面积不大于k的,减去面积不大于k-1的就是恰好为k的 对于一个段,我们关心的显然是最下面的危险区域,因为上面的对最终的矩形划分是没有影响的 考虑dp[i][j]表示考虑宽度为j的区间,前i-1行都没有危险区域,第i行有危险区域,能圈出的最大面积不大于k的概率,这里的概率暂时不考虑1~i-1行都不危险的那部分的q的若干次方 ...

2018-07-12 23:04:27 218

原创 BZOJ4161: Shlw loves Matrixl 题解

如果把转移写成矩阵的形式做矩阵乘法,复杂度是O(k3logn)O(k3logn)O(k^3logn)的,不足以通过此题 学习了一下这个noi2017用到的技巧:可以用矩阵的特征多项式优化常系数齐次线性递推前置技能特征多项式矩阵AAA的特征多项式P(λ)=det∣λI−A∣P(λ)=det∣λI−A∣P(\lambda)=det\mid\lambda I-A\mid,它满足对于∀∀...

2018-07-12 18:06:30 330

原创 51Nod1766: 树上的最远点对 题解

这题用到了树的直径的非常好的性质,有必要记录 树的直径满足这样一个性质: 设一棵树的一个点集SSS的直径的端点集合是{a1,b1a1,b1a_1,b_1}(如果有多条直径选取任意一条),另一个点集TTT的直径的端点集合是{a2,b2a2,b2a_2,b_2},则点集S⋃TS⋃TS\bigcup T的直径的端点集合{a3,b3a3,b3a_3,b_3}∈∈\in{a1,b1,a2,b2a1,b1...

2018-07-11 23:16:04 283

原创 POJ1637: Sightseeing tour 题解

感觉这个网络流的建图还是很妙的 欧拉回路的判定肯定是所有点的入度=出度 我们考虑刚开始随意给无向边定向,这样算出每个点的入度和出度 我们改变一条有向边的方向,会使某个点度数+2,某个点度数-2,所以点的度数的奇偶性不变 我们考虑这样建图:按照我们刚开始给无向边定的向反向连边,容量为1,对于d>0的点i,从s向i连流量为d/2的边,对于d<0的点i,从i向t连流量为-d/2的边,...

2018-07-07 22:35:42 218

原创 Codeforces #995F: Cowmpany Cowmpensation 题解

非常好的dp题 首先可以参见topcoder randomapple的套路,就是我算这棵树的权值种数为i的方案数,最后乘CiDCDiC_D^i就好 考虑dp[i][j]表示以i为根的子树,i的权值不超过j的方案数 我们发现这样会重复计数,因为我们计算了一些本质相同的方案,比如全1和全2,他们各自在乘CiDCDiC_D^i的时候会把对方算进去 所以我们实际上要算的是本质不同的方案数 dp[...

2018-06-30 21:46:55 564 2

原创 Codeforces #838D: Airplane Arrangement 题解

一道神题 考虑把座位拉成一个环,这样就不存在没有位置的情况了 在第一个和最后一个之间加一个座位,这样只要这个座位被占就说明这个安排不合法 我们发现这个环是完全对称的,所以每个位置被占的概率是一样的 我们考虑所有的选法,现在有n+1个座位,有两种方向,所以有(2(n+1))m(2(n+1))m(2(n+1))^m种安排方式 我们考虑选中合法方案的概率,从n+1个椅子里面挑m个被占,其中不能...

2018-06-30 20:32:04 399

原创 URAL1627: Join 题解

把地图看成去掉障碍物的网格图,就可以用矩阵树定理直接算生成树个数了 矩阵树定理: 一个无向图的度数矩阵:di,j=degidi,j=degid_{i,j}=deg_i当且仅当i=ji=ji=j 一个无向图的邻接矩阵:Ai,j=1Ai,j=1A_{i,j}=1当且仅当从iii到jjj有边 一个无向图的基尔霍夫矩阵:Ki,j=di,j−Ai,jKi,j=di,j−Ai,jK_{i,j}=d_{...

2018-06-23 08:37:17 290

原创 BZOJ1143: 祭祀 题解

这是一道结论题 题目抽象一下就是要在一个DAG上求一个最大点集,使得两两不可达 上网搜了一下,这个东西叫做最长反链 根据Dilworth定理,最长反链=最小链覆盖 最小链覆盖可以这样搞:我们先把图的传递闭包求一下,这个可以用floyd,然后建一个二分图,如果a–>b有边,就从左边的a向右边的b连一条边 求一个最大匹配,然后用n减一下就是答案了 可以这样理解:刚开始我有n条链,每条...

2018-06-07 22:30:53 479 1

原创 BZOJ2657: 旅游 题解

把一个凸包进行三角剖分,那么如果把每个三角形看成一个节点,有相邻边的三角形之间连一条边,那么这就成了一个树形结构 我想了一下,认为能连接凸包上两点所经过的三角形,一定是新树中的一条链,所以只要树型dp求最长链即可 处理相邻的三角形有点麻烦,我用了一个比较轻巧的方法:把每个三角形的三条边放进一个map,然后每新读入一个三角形就把他的三条边扔进map里查,如果出现过了就可以连边#inclu...

2018-05-31 10:02:46 412 1

转载 BZOJ2219: 数论之神 题解

非常神的数论题,用到了中国剩余定理,原根,指标,BSGS,exgcd等一系列知识 转载一片来自regina8023的博客 戳这里 附上我的代码#include <cstdio>#include <iostream>#include <cstring>#include <string

2018-05-27 19:48:44 391 1

原创 CodeChef QRECT: Rectangle Query 题解

这题的思路还是挺巧妙的 最关键的一步是我们改求与当前矩形不相交的矩形个数 那么显然可以容斥,用完全在上面的+下面的+左面的+右面的-四个角上被重复算的 前面的四个比较好搞,以上面举例,插入矩形时把矩形的下边界插入树状数组,查询时抓住当前矩形的上边界在树状数组里查就好了 四个角的部分,以左上角为例,插入矩形时把矩形的右下角记录下来,查询时查矩形的左上角的左上方有多少个点 所以现在相当于要实...

2018-05-25 23:49:32 511 4

原创 Codeforces #985F: Isomorphic Strings 题解

感觉虽然是edu round的倒数第二题但还蛮简单的 我们分析那个同构的定义,可以理解为“该一样的字符要一样,该不一样的字符要不一样”,那么对于每一种字符我们想一种办法来表示他在子串中所有的出现位置(像一张有黑点的纸条),然后看看两个串能不能配对就好 把一个01串转换成一个数,我刚开始想的是高精度用2n2n2^n表示,然而复杂度是炸的,然后我发现自己蠢了,用字符串哈希就可以了 为了保险我写了...

2018-05-22 14:39:29 415 1

原创 AtCoder Grand Contest 024D: Isomorphism Freak 题解

很容易想到最终的树有两种形态 1. 一个点下面挂着若干棵完全相同的子树 2. 两棵完全相同的子树连在一起 第一部分的答案是很好算的,因为我们发现同一层的节点可以涂一样的颜色,所以我们要在原树里面找一个地方把原树“折”成两半,使得两半的深度尽可能的接近 那么这个地方显然应该是树的中心,也就是直径的中间 设直径长度为d,则若d是奇数第一问答案是d/2+1否则是d/2 考虑第二问,如果直径长...

2018-05-22 14:28:59 470 1

原创 AtCoder Grand Contest 024E: Sequence Growing Hard 题解

神仙题,感觉思路太神奇 题目等价于每次向序列里面插入一个新数,问有多少种方案 我们考虑怎样插入一个新数是合法的,假设当前插入的数是cur,那么有两种情况 1. cur放在序列的末尾 2. cur之后第一个与cur不一样的数比cur小(或者cur后面的数全都和cur一样) 我们发现改一下这个问题的初始条件,不是空序列,而是一个包含一个0的序列,这两种情况就变成只有第二种情况了,而且括号里的...

2018-05-21 20:32:09 336

原创 AtCoder Regular Contest 080C: 4-adjacent 题解

思维题 首先所有的数可以分成能被4整除的,能被2整除但不能被4整除的和没有2因子的三类 显然如果没有最后一类的话是显然可以的,所以我们只要考虑是否每个最后一类的数都能保证其左右都是第一类数 如果没有第二类数,那么只要第一类数个数大于等于第三类个数减一就行,因为最极端的可以出现31313这样的例子 如果有第二类数,那么就得保证第一类树个数大于等于第三类数个数#include <...

2018-05-21 20:17:03 239

原创 TopCoder SRM461C: FencingGarden 题解

我们首先可以发现一个性质:因为只会有两个小段是被切出来的,而篱笆有三条边,所以必然有一条边是由未被切割的篱笆构成的 我们设这条边的长度为x,所有篱笆的长度和为s,有两种情况 1. 这条边与墙平行,则面积S=xs−x2=−12x2+12sxS=xs−x2=−12x2+12sxS=x \frac{s-x}{2}=-\frac{1}{2}x^2+\frac{1}{2}sx 2. 这条边与墙垂直,则...

2018-05-20 22:08:31 263 1

原创 TopCoder SRM450C: RowGame 题解

看到k这么大,我的思维立刻就往什么dp+矩乘或者是倍增上走 dp+矩乘看上去挺靠谱的,但是题目要求任意时刻权值非负,那么就得再加一维来控制当前的权值,而当前权值的范围是很大的,这样会超时 于是考虑仔细观察此题的性质 我们可以设想:如果k→infk→infk\rightarrow inf 那么我一定会想办法走到这个序列的最长子串上然后来回摆动 然而并不是能一下子走到最长子串上的,如果中间有一...

2018-05-20 21:59:19 438 1

原创 AOJ2535: Texas hold 'em 题解

这就是一道纯粹的巨模拟题 非常暴力的进行枚举,剩下的两张牌有45∗44÷2=99045∗44÷2=99045*44\div 2=990 中可能性 从七张里面选五张有C57=1176C75=1176C_7^5=1176中可能性,这两个相乘肯定是不会炸的 然后就巨模拟就好了 注意一点,在比顺子的时候,A2345是最小的,如果用比较rank最高的牌的方式比较,记得把A放到最后面#incl...

2018-05-15 09:54:00 303

原创 AtCoder Regular Contest 097F: Monochrome Cat 题解

这道题的思路非常巧妙 首先我们可以把那些全部都是黑点的子树扔掉,他们是不会被遍历的 这时,剩下的树的所有的叶子都是白色的 我们先考虑终点和起点重合的情况 这时如果我们想把它全部变黑的话必须遍历整棵树 并且我们发现,无论以哪个点为起点,答案都是一样的,首先所有的边都要走两遍,第二,一个点被走过的次数等于它的度数,所以一个点是否需要停留一秒也是可以算出来的(显然的是,一个点最多停留一秒),这...

2018-05-14 16:30:26 608 6

原创 AtCoder Regular Contest 097E: Sorted and Sorted 题解

这个题目显然可以转化成:把黑白两个序列往一个大序列里面填,每次填黑的或白的,黑序列和白序列都要有序,每次填有一个代价是这个数之前还没有被填掉的数的个数,求最小的代价 我们考虑dp,dp[i][j]表示黑序列已经填了i个数,白序列已经填了j个数的最小代价 显然dp[i][j]是从dp[i-1][j]和dp[i][j-1]转移来的,现在的重点是如何快速的计算黑序列的第i个数之前还有多少个数没有填,...

2018-05-14 16:10:04 453 1

原创 AtCoder Regular Contest 097D: Equals 题解

我们可以把这种交换规则想象成一张图,有一个NNN个点的图,题目中的(xi,yi)(xi,yi)(x_i,y_i)相当于图中的边 我们可以发现一个连通块内的元素是可以任意互换位置的 所以对于每一个a[i]a[i]a[i],我们只要判断第iii个格子和第a[i]a[i]a[i]个格子是否联通就好,用并查集可以轻松的做到这一点#include <bits/stdc++.h>us...

2018-05-14 15:39:01 316 1

原创 AtCoder Regular Contest #097C: K-th Substring 题解

总共有N2N2N^2个字符串,每两个字符串比较的复杂度是O(n)O(n)O(n),所以全部拉出来排序的复杂度是O(n3logn)O(n3logn)O(n^3logn),不能通过 但注意到题目的限制条件k≤5k≤5k\leq 5,我们考虑到一个串的前缀的字典序一定比它小,所以最后答案字符串的长度不会超过5 所以我们把所有长度不超过5的字符串拉出来排序就好,注意去重,复杂度O(n2logn)O(n...

2018-05-14 15:35:41 330 2

原创 ZOJ2314: Reactor Cooling 题解

无源汇的上下界可行流的模板题 上下界的做法可以参考Algorithm Design一书,里面写的很清楚 我们考虑对每个点i维护一个d[i],表示这个点的surve和demand情况,为正表示demand,为负表示serve 我们考虑一条从x到y,下限为low,上限为high的边 如果我们预先从x到y流low的流量,那么这就变成了一条没有下限,上限为high-low的边,全部转换以后就可以跑...

2018-05-01 16:55:25 185

原创 比较学习-BZOJ3450: Easy 题解 和 BZOJ4318: OSU! 题解

这两道题长得几乎一模一样,只不过easy求的是平方,OSU求的是立方 于是决定把这两题一起切掉,没想到这其中大有玄机,还是我naive啊…我们先看easy这题 考虑期望dp;dp[i]表示考虑到第i位的时候以i结尾的连续一段的期望长度 那么如果这位是o,dp[i]=dp[i-1]+1 如果这位是x,dp[i]=0 如果这位是?,dp[i]=(dp[i-1]+1)*0.5 根据期...

2018-05-01 15:58:32 262 1

原创 Codeforces #316E3: Summer Homework 题解

这样的题肯定要维护线段树,重点是如何维护裴波那契数列使得可以很快的进行合并操作 这里给出一个很骚的操作: 对于每个区间维护两个值: 1. f0∗al+f1∗al+1+...f0∗al+f1∗al+1+...f_0*a_l+f_1*a_{l+1}+... 2. f1∗al+f2∗al+1+...f1∗al+f2∗al+1+...f_1*a_l+f_2*a_{l+1}+... 我们发现这个序...

2018-05-01 11:36:20 382

原创 BZOJ2597: 石头剪刀布 题解

非常难的费用流题 我有考虑过反过来想,看最少能扣掉几个环,然后用费用流做,但就是建不出模型 这题的想法实在是太巧妙了 考虑一个三元环如果被破坏,那么一定有一个点出度为2 更一般的,如果最后的图里面一个点的出度为x,那么由他形成的非三元环个数是C2xCx2C_x^2 所以我们考虑一个二分图,左边是所有的点,右边是所有的边 超级汇点向每个点连n-1条边,流量都是1,费用分别是0,1,2…n...

2018-04-27 23:53:45 309 1

原创 Codeforces GYM 101173B: Bipartite Blanket 题解

这题的大致思路肯定是左边和右边分开来枚举然后匹配匹配算一算这类的 我刚开始想的是先把完美匹配搞出来,然后在里面选点 但发现无论是选点还是找匹配复杂度都是炸的 我们开始直接考虑那些被选中的点 我们发现一些很好的性质:一个集合XXX满足题意,当且仅当它属于X的部分和属于Y的部分都能形成完美匹配 必要性是显然的,如果不存在的话就不可能有一个完美匹配能覆盖这些点 充分性想一想也挺简单的,这里就...

2018-04-27 10:42:02 306 1

空空如也

空空如也

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

TA关注的人

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