06 2018 档案

摘要:Link: BZOJ 1789 传送门 Solution: 感觉$n\le 50$可以随便乱搞啊…… 这里我是先找到3条链的失配位置,再找到这之后其中2条链最远的失配位置,统计即可 Code: 阅读全文
posted @ 2018-06-30 21:56 NewErA 阅读(190) 评论(0) 推荐(0)
摘要:Link: BZOJ 2208 连通数 Solution: 传递闭包模板题 传递闭包是集合中最小的二元关系,其实就是对二元关系的不断拓展,一般用$floyd$求解 这里要先跑一遍$tarjan$求出$SCC$,然后在$TopoSort$时顺便传递闭包,最后统计答案即可 Tips: 1、在$DAG$上 阅读全文
posted @ 2018-06-30 21:33 NewErA 阅读(336) 评论(0) 推荐(0)
摘要:Link: UVa 11732 传送门 Solution: 思路还是很套路:建$Trie$树,在$Trie$树上跑一遍统计答案 (统计答案时注意将叶节点特殊处理,同时对于$e(u,v)$用$val[v]*(val[u]-val[v])$来统计个数) 重点在于此题的存储方式:左儿子右兄弟存储法 (链表 阅读全文
posted @ 2018-06-30 20:09 NewErA 阅读(194) 评论(0) 推荐(0)
摘要:Link: LA 3942 传送门 Solution: 感觉自己字符串不太行啊,要加练一些蓝书上的水题了…… $Trie$+$dp$ 转移方程:$dp[i]=sum\{ dp[i+len(x)+1]\} (x为从第i位开始的字符串的前缀)$ 计算一个字符串前缀的多模式匹配在$Trie$树上跑一遍就行 阅读全文
posted @ 2018-06-30 19:54 NewErA 阅读(249) 评论(0) 推荐(0)
摘要:Link: BZOJ 4144 传送门 Solution: 一道不错的图论综合题 因为只询问关键点,因此重点是要求出关键点之间的最短路,以最短路建图 记$nst[i]$为离$i$最近的关键点:可以发现$A->B$的最短路径上,一定是前一半$nst[i]$为$A$,后一半$nst[i]$为$B$ 否则 阅读全文
posted @ 2018-06-30 19:06 NewErA 阅读(202) 评论(0) 推荐(0)
摘要:Link: BZOJ 1040 传送门 Solution: 基环树$dp$ 如果仅仅是一棵树,直接树形$dp$即可,维护选与不选两种状态下的方案数 但此题是一个基环树,即除了一个环外是一个树形结构 对于环,一般都是将环转化为链处理 我们只需要删掉环上的任意一条边即可将环转化为树,那我们只需要人为判断 阅读全文
posted @ 2018-06-30 18:42 NewErA 阅读(138) 评论(0) 推荐(0)
摘要:Link: BZOJ 4060 传送门 Solution: 可以发现字符串间的关系可以构成一棵树 于是我们先用字符串哈希建树,再树形$dp$即可 设$dp[i][j]$为第$i$个节点从$P$字符串的第$j$为开始匹配的失配位置, 则有$dp[i][j]=dp[ch[i][1]][dp[ch[i][ 阅读全文
posted @ 2018-06-30 17:07 NewErA 阅读(278) 评论(0) 推荐(0)
摘要:Link: BZOJ 1794 传送门 Solution: IOI2008官方题解:传送门 要求序号,其实就是算字典序比其小的序列个数 从而使用数位$dp$的思想来解题,关键在于维护序列要$balance$这个条件 可以将$P$看作$-1$,而将$L$看作$+1$,最终要保证整个序列在一个宽最多为2 阅读全文
posted @ 2018-06-30 16:35 NewErA 阅读(143) 评论(0) 推荐(0)
摘要:Link: BZOJ 3170 传送门 Solution: $Knowledge Point:$ 切比雪夫距离$DIST(a,b)=max\{ |X'_a-X'_b|,|Y'_a-Y'_b|\}$ 曼哈顿距离$dist(a,b)=|X_a-X_b|+|Y_a-Y_b|$ 可以发现此题如果为曼哈顿距离 阅读全文
posted @ 2018-06-30 14:59 NewErA 阅读(144) 评论(0) 推荐(0)
摘要:Link: BZOJ 1799 传送门 Solution: 一句话的题目,看得爽,做得烦 一般这类和数位相关的都是数位$dp$吧 不过一开始还是感觉不太可做,毕竟每个数模数不同 但要发现,模数最高也只可能为$9*19=171$, 于是只要将数按照他们的数位和(即模数)分类计算即可 这样便暴力解决了模 阅读全文
posted @ 2018-06-30 14:42 NewErA 阅读(250) 评论(0) 推荐(0)
摘要:Link: BZOJ 3124 传送门 Solution: 对于第二问,要先推出几个性质: 1、这些边在一条直径上 2、这些边一定是连续的 这类性质主要就靠瞎蒙再用反证法证一证就好了 (证不出来感性认知一下就直接上吧) 接下来只要在任意一个直径上寻找连续的可行边即可 设直径的两个端点分别为$S,T$ 阅读全文
posted @ 2018-06-30 14:13 NewErA 阅读(211) 评论(0) 推荐(0)
摘要:Link: BZOJ 4082 传送门 Solution: 对于链上这样的问题贪心就好了 如果在一个环上,肯定需要将环转化成链,$O(n)$确定起点才能计算 但枚举每个节点拆环再贪心的复杂度为$O(n^2)$,明显会超时 于是我们要将已知起点,计算从起点走完一圈的距离的时间复杂度降到$log(n)$ 阅读全文
posted @ 2018-06-29 08:57 NewErA 阅读(231) 评论(0) 推荐(0)
摘要:Link: BZOJ 4117 传送门 Solution: 第一次写$Huffman Tree$相关,发现就是个合并果子? 此题可以将每一种情况的概率和排列总数算出,接下来就是按照$Haffman Tree$基本构造方式操作了 注意,这里使用了分治的思想: (1)如果排列总数大于1,先排除奇数影响, 阅读全文
posted @ 2018-06-28 21:56 NewErA 阅读(332) 评论(0) 推荐(0)
摘要:Link: BZOJ 3233 传送门 Solution: 在本蒟蒻看来算是一道比较神的$dp$了 一开始转移方程都没看出来…… 首先,如果确定了最大面值,是能推出其他面值的所有可能值的 从而发现最大面值能由较小的面值转移过来: $dp[i]=min\{ dp[i/j]-sum\{ a[k]/i*( 阅读全文
posted @ 2018-06-28 16:00 NewErA 阅读(186) 评论(0) 推荐(0)
摘要:Link: BZOJ 1412 传送门 Solution: 非常明显的最小割模型: 将所有点分成两个互不相邻的点集,且要求代价最小 建图: $<S,sheep,INF>$ $<wolf,T,INF>$ $<sheep,wolf/ground,1>$、$<ground,wolf/sheep/groun 阅读全文
posted @ 2018-06-28 11:54 NewErA 阅读(170) 评论(0) 推荐(0)
摘要:Link: BZOJ 1800 传送门 Solution: $O(n^4)$…… Code: 阅读全文
posted @ 2018-06-28 11:47 NewErA 阅读(212) 评论(0) 推荐(0)
摘要:Link: BZOJ 3108 传送门 Solution: 样例教你做题系列 观察第三个输出为No的样例,发现只要存在$edge(i,k),edge(j,k)$,那么$i,j$的出边一定要全部相同 于是判断有相同出边的$i,j$是否有$edge(i,p)$但没有$edge(j,p)$即可判断是否输出 阅读全文
posted @ 2018-06-28 11:44 NewErA 阅读(245) 评论(0) 推荐(0)
摘要:Link: BZOJ 1567 传送门 Solution: 矩阵Hash/二维$Hash$模板题 涉及到需要快速查询、匹配的题目,考虑直接上$Hash$ 矩阵$Hash$其实就是每行先各$Hash$一次,对于$x~x+l-1$行取出$y~y+l-1$列的$Hash$值再进行一次$Hash$即可 取出 阅读全文
posted @ 2018-06-27 10:46 NewErA 阅读(236) 评论(0) 推荐(0)
摘要:Link: BZOJ 1509 传送门 Solution: 一开始受样例影响又犯了想当然的毛病……图中的C点不一定在直径上! 3次$dfs$求出树的直径及直径的两个端点$rt1,rt2$到每个点的距离$d1,d2$, 则结果为$max\{ Diameter+min\{ d1[i],d2[i] \} 阅读全文
posted @ 2018-06-27 09:27 NewErA 阅读(184) 评论(0) 推荐(0)
摘要:Link: BZOJ 1452 传送门 Solution: 二维树状数组模板题 发现颜色数很少$c<=100$,因此对于每个颜色都建一棵二维线段树即可 (第一次写二维数据结构,发现套个循环就行了?) Code: 阅读全文
posted @ 2018-06-26 21:15 NewErA 阅读(150) 评论(0) 推荐(0)
摘要:Link: BZOJ 1266 传送门 Solution: 好不容易自己写出来一道水题,练链式前向星的模板调了一小时o(╯□╰)o 思路非常好想,既然要想让最短路不成立,使最短路部分不连通即可 又要求最小代价,就是比较明显的最小割模型了 Tips: 1、关于如何快速将所有最短路部分重新建图 既然$n 阅读全文
posted @ 2018-06-26 20:10 NewErA 阅读(245) 评论(0) 推荐(0)
摘要:Link: BZOJ 3209 传送门 Solution: 首先,可以将1的个数相同的项合并 设$f[i]$为二进制中1的个数恰好为$i$的数的个数, 则所求为$1^{f[1]}*2^{f[2]}*3^{f[3]}*4^{f[4]}..........*n^{f[n]}$ 接下来,感觉$f[i]$非 阅读全文
posted @ 2018-06-26 14:44 NewErA 阅读(147) 评论(0) 推荐(0)
摘要:Link: BZOJ 1051 传送门 Solution: 因为每一个强连通块中的点具有等效性,可以统一处理 tarjan缩点建DAG 发现新图中仅在只有一个出度为1的点时才能出现符合要求的点,统计即可 (否则必然不可能有一个强连通分块是所有点的汇点) Tips:为了建立新图可以不用储存边集数组,使 阅读全文
posted @ 2018-06-26 08:39 NewErA 阅读(190) 评论(0) 推荐(0)
摘要:Link: BZOJ 1806 传送门 Solution: 为了使状态包含每个节点前所有必须的信息: 设$dp[i][a1][a2][b1][b2]$为配送到第$i$个,一厂前两个为$a1,a2$,二厂前两个为$b1,b2$时的最大权值, 每次向一厂添加/二厂添加转移。 要使用滚动数组,注意对每种情 阅读全文
posted @ 2018-06-08 21:56 NewErA 阅读(239) 评论(0) 推荐(0)
摘要:Link: BZOJ 1037 传送门 Solution: 由于对任意一段都有要求,于是我们对于所有前缀考虑其后缀不超过$k $即可: 设$dp[i][j][x][y]$为前$i$个人中有$j$个男孩,且后缀中男女最大相差$x$,女男最大相差$y$时的方案数 每次向添加女孩/添加男孩转移。 注意:如 阅读全文
posted @ 2018-06-08 21:35 NewErA 阅读(225) 评论(0) 推荐(0)
摘要:Link: POJ 1185 传送门 Solution: 看大家都说是一道状压$dp$基础题,结果我还是卡题了 发现决策第$i$行时,要同时考虑$i-1$和$i-2$行,因此状态中要包含两个“行”状态位 但$O(1024^3*100)$的复杂度明显不行啊,于是我就在这卡住了…… 其实可以发现仅考虑“ 阅读全文
posted @ 2018-06-08 21:21 NewErA 阅读(2492) 评论(0) 推荐(3)
摘要:Link: POJ1935 传送门 Solution: 一道吓唬人的水题 注意这是一棵树,两点间仅有唯一的路径! 于是每个“关键点”和起点只有一条路径,想去起点另一棵子树上的节点必须要回到起点 如果必须要回到起点,答案$res$就是除去无用边后整棵树总距离$*2$, 因为不必回到起点,最终结果为$r 阅读全文
posted @ 2018-06-08 20:46 NewErA 阅读(289) 评论(0) 推荐(0)
摘要:Link: POJ 2397 传送门 Solution: 设$dp[i][j]$表示第$i$步走到$j$高度时经过的最高高度 分向上走和向下走两种方式转移即可 注意记录路径,最后输出时要逆序输出 (逆序输出时可以考虑利用递归方式输出) Code: 阅读全文
posted @ 2018-06-08 20:22 NewErA 阅读(254) 评论(0) 推荐(0)
摘要:Link: POJ 2373 传送门 Solution: 一开始想错方向的一道简单$dp$,不应该啊…… 我一开始的想法是以$cows' ranges$的节点为状态来$dp$ 但明显一个灌溉的区间的两边不一定都在$cows's ranges$上, 因此应该以长为$L$的$field$上的每一个偶数节 阅读全文
posted @ 2018-06-08 19:58 NewErA 阅读(243) 评论(0) 推荐(0)
摘要:Link: POJ 3378 传送门 Solution: 按序列长度$dp$, 设$dp[i][j]$为到第$i$个数,符合要求的序列长度为$j$时的序列个数, 易得转移方程:$dp[i][j]=\sum_{k=1}^{i-1} dp[k][j-1] (dat[k]<dat[i])$ 用树状数组按$ 阅读全文
posted @ 2018-06-08 19:35 NewErA 阅读(375) 评论(0) 推荐(0)
摘要:Link: POJ 2329 传送门 Solution: 比较明显的$dp$,但爆搜好像也能过 用多个方向$dp$来解决此题,最后汇总答案即可 一开始我写了4个,但后来发现只要相反的2个方向即可,同时不用分别记录答案,直接不断更新答案即可 要特别注意对特例的判断: 不能只判断其最近距离相同且最近点相 阅读全文
posted @ 2018-06-08 19:26 NewErA 阅读(263) 评论(0) 推荐(0)
摘要:手把手教你如何一周内学完一学期内容 然后考倒一 UPD:倒一梦想成真了 阅读全文
posted @ 2018-06-07 22:11 NewErA 阅读(226) 评论(0) 推荐(2)
摘要:Link: BZOJ 4031 传送门 Solution: 矩阵树定理的模板题 看完下面两篇文章就会啦: 周冬论文:https://wenku.baidu.com/view/872eb02de2bd960590c677c6.html WerKeyTom_FTD的严谨证明%%%:https://blo 阅读全文
posted @ 2018-06-05 22:18 NewErA 阅读(183) 评论(0) 推荐(0)
摘要:Link: BZOJ 2547 传送门 Solution: 很容易通过解可行性的单调性想到二分答案,接下来考虑如何验证解 发现一个很奇妙的条件:步兵和骑兵的个数相同 因此交换位置时不用考虑可行性,保证能完成交换(口胡证明一下就行了) 于是可以将每一次交换位置想成转变职业(不用考虑能否交换) 每一个士 阅读全文
posted @ 2018-06-05 21:54 NewErA 阅读(247) 评论(0) 推荐(0)
摘要:Link: BZOJ 1804 传送门 Solution: 不容易啊,第一道完全自己A掉的IOI题目..... 算法思想其实很简单: 模拟缩减的过程即可 将每条边转为2条有向边,每次找到最左边的边,沿着最外圈走一周,并将走过的边打上$vis$标记 最后那些正向和反向都被走过的边就是能留下的边(最后形 阅读全文
posted @ 2018-06-05 20:51 NewErA 阅读(292) 评论(0) 推荐(0)
摘要:Link: POJ 1739 传送门 Solution: 这题除了一开始的预处理,基本上就是插头$dp$的模板题了 由于插头$dp$求的是$Hamilton$回路,而此题有起点和终点的限制 于是可以构造一条$[n,1]->[n+2,1]->[n+2,m]->[n,m]$的路径,正好只添加一条$S-> 阅读全文
posted @ 2018-06-05 20:14 NewErA 阅读(216) 评论(0) 推荐(0)
摘要:Link: BZOJ 2734 传送门 Solution: 真是奥妙重重的建模啊..... 我们发现$x,2*x,3*x$这些数太分散了,难以处理 于是我们构建这样的表格: x 3x 9x 27x.... 2x 6x 18x 54x... 4x 12x 36x 108x... ... ..... . 阅读全文
posted @ 2018-06-05 19:12 NewErA 阅读(184) 评论(0) 推荐(0)
摘要:Link: BZOJ 2118 传送门 Solution: 一眼望过去是数论题,结果是最短路经典模型??? 从一个很基础的性质出发: 由$a\equiv b(\mod c)$,得$(a+c*k)\equiv b(\mod c)$ 设$a[1]$为$<a_n>$中的最小值,$dist[i]$为$\mo 阅读全文
posted @ 2018-06-05 15:36 NewErA 阅读(163) 评论(0) 推荐(0)
摘要:Link: BZOJ 4057 传送门 Solution: 一道比较基础的状压DP 看到$n<=20$,状态转移与顺序相关,就可以开心地状压了 1表示破产,0表示未破产,不断扩展破产的集合即可 Code: 阅读全文
posted @ 2018-06-05 15:04 NewErA 阅读(201) 评论(0) 推荐(0)
摘要:Link: BZOJ 4008 传送门 Solution: 这题的约束: (1)若一张牌发动了技能,那么将结束此回合。 (2)若一张牌发动过技能那么它不能再发动技能。 这意味着不能以回合数为状态来进行$dp$ 由(2):一张牌最多发动一次技能,于是只要能算出每张牌的发动概率再统计即可 因此需要考虑经 阅读全文
posted @ 2018-06-05 13:51 NewErA 阅读(165) 评论(0) 推荐(0)
摘要:Link: BZOJ 3997 传送门 Solution: 这题是一个比较明显的最小链覆盖,只不过还给每条链加上了权值 $Dilworth$定理:最小链覆盖数=最长反链长度 一般用$Dilworth$定理都是求最长反链,这题算是逆运用吧 发现能构成反链的两点一定是具有“左上、右下”的位置关系, 于是 阅读全文
posted @ 2018-06-05 11:55 NewErA 阅读(165) 评论(0) 推荐(0)
摘要:Link: BZOJ 4010 传送门 Solution: 思路挺妙的一题 一看到有先后的约束关系,肯定要拓扑排序 而且对所有的数要求依次最优(不是字典序最小),看起来贪心选最小的就可以了 但从前往后贪心会出现问题: 对于两个数$x,y$,其中$x<y$,如果$y$无约束关系,其会出现在$x$之前 阅读全文
posted @ 2018-06-05 11:37 NewErA 阅读(152) 评论(0) 推荐(0)
摘要:Link: BZOJ 4033 传送门 Solution: 此题用到了计算贡献的方法, 将 多条路径的路径和 $->$ $\sum_{i=1}^{n-1} w[i]*cnt[i]$ 这样我们由找出所有路径再计算转化成了对每条边计算其的贡献 由于所有节点只用2种选择,接下来就是比较套路的树形DP了 设 阅读全文
posted @ 2018-06-05 10:54 NewErA 阅读(155) 评论(0) 推荐(0)
摘要:Link: BZOJ 3152 传送门 Solution: 喜闻乐见,gyz出的语文题,题意要看半小时 题意:使用最少的括号将序列分割,对于每个括号中的序列,设最左边的数为$num$,序列中元素个数为$cnt$, 要保证:$num>=cnt$(括号括起来后算作一个元素)。一开始一个括号包含$[1,n 阅读全文
posted @ 2018-06-03 22:40 NewErA 阅读(275) 评论(0) 推荐(0)
摘要:Link: BZOJ 3157 传送门 Solution: 题意:求解$\sum_{i=1}^n m^i \cdot {i^m}$ $O(m^2)$做法: 定义一个函数$f[i]$,$f[i]=\sum_{i=1}^n k^i \cdot {m^k}$ $(m-1)\cdot f(i)=\sum_{ 阅读全文
posted @ 2018-06-03 22:18 NewErA 阅读(494) 评论(0) 推荐(0)
摘要:Link: BZOJ 3218 传送门 Solution: 由于染色将点集分为两块,想到最小割模型 最大化权值可以看成总和减去最小化损失,于是由“最大割” > 最小割 (1)网络流建图 $<S,i,b[i]>$割掉表示选白色,$<i′,T,w[i]>$割掉表示选黑色, 接下来对于“奇怪的点对”$(i 阅读全文
posted @ 2018-06-03 21:42 NewErA 阅读(201) 评论(0) 推荐(0)
摘要:Link: Codeforces 35E 传送门 Brief Intro: 给定$n$个矩形,求出轮廓线的所有顶点 Solution: 对于此类可拆分成多个事件点的题目,使用扫描线的方式 将每个矩形分为起始边和终止边两个事件,排序,按顺序扫描 分类讨论: 维护当前最高的高度, (1)如果是起始边,判 阅读全文
posted @ 2018-06-02 23:03 NewErA 阅读(315) 评论(0) 推荐(0)
摘要:Link: BZOJ 3144 传送门 Solution: 发现要把点集分成不连通的两部分,最小割的模型还是很明显的 首先我们将原图转化为$R+1$层,从而将点权化为边权 关键还是在于建图是怎么保证$|h_i-h_j|<=D$这个条件 要保证$|h_i-h_j|<=D$这个条件也就意味着选了$i$就 阅读全文
posted @ 2018-06-02 22:32 NewErA 阅读(219) 评论(0) 推荐(0)
摘要:Link: BZOJ 2429 传送门 Solution: 可将题意转化为求使原图连通的子图中最长边的最小值, 那么立即联想到求最小生成树的Kruscal算法:每次选择最短的边加入答案集合 最小生成树的最长边就是要求的值 正确性是显然的(边权是从小到大选取的),而这也是最小生成树的推论之一: 对于任 阅读全文
posted @ 2018-06-02 22:05 NewErA 阅读(272) 评论(0) 推荐(0)
摘要:Link: BZOJ 3155 传送门 Solution: 我们发现要维护的序列的每一项都有$i$项要维护, 我们要将每一项转化为只有1项要维护才能$log(n)$维护(否则每对一个值更新要更新$n$个值) 于是我们将每一项拆为两个前缀和相减, 开两个树状数组,第一个维护$a[i]$前缀和,第二个维 阅读全文
posted @ 2018-06-02 21:54 NewErA 阅读(161) 评论(0) 推荐(0)
摘要:Link: BZOJ 3573 传送门 Solution: 一道语文题 转化后的题意就是使得每个节点的权值都等于 父亲节点的权值/儿子数 的最小操作数 能发现一条重要的性质:只要一个节点确定,所有节点的权值都确定了 于是我们只要枚举$1……n$每个节点权值不变, 算出根节点$root$的权值出现过的 阅读全文
posted @ 2018-06-01 12:08 NewErA 阅读(148) 评论(0) 推荐(0)
摘要:Link: BZOJ 1212 传送门 Solution: 看到字符串的多模式匹配,正解一般就是Trie树/AC自动机 此题由于每个模式串长度都很小,于是直接在Trie树上暴力就行了 先把所有模式串建一颗Trie树, 用$DP[i]$表示能否匹配到第$i$个字符,如果能,则从第$i+1$位开始继续从 阅读全文
posted @ 2018-06-01 10:33 NewErA 阅读(255) 评论(0) 推荐(0)