
洛谷题解
DYT_B
略过
展开
-
Lougu - P3203 BZOJ-2002 [HNOI2010]BOUNCE 弹飞绵羊
题面:题目描述某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当绵羊达到第i个装置时,它会往后弹ki步,达到第i+ki个装置,若不存在第i+ki个装置,则绵羊被弹飞。绵羊想知道当它从第i个装置起步时,被弹几次后会被弹飞。为了使得游戏更有趣,L原创 2017-11-04 13:25:57 · 283 阅读 · 0 评论 -
SPOJ 10628 /LuoguSP10628 COT - Count on a tree
题目描述:戳这里题解:这题是主席树上树(???)我们发现对于一个点,我们可以维护从它到根的权值线段树,那么对于一个点对x,y,我们只需要求出它们的lca z,以及z的父节点,那么就可以容斥一下,sumx+sumy−sumz−sumfazsumx+sumy-sumz-sum fazsumx+sumy−sumz−sumfaz。直接建n颗主席树是会mle的,所以我们直接用主席树,一个点的线段树建立...原创 2018-10-28 15:37:43 · 341 阅读 · 0 评论 -
最小费用最大流:Luogu P3381 【模板】最小费用最大流
题目描述:戳这里 题解: 最小费用最大流的套路基本上就是这样的: 1.求出当前残留网络之中s -> t的最短路 (spfa) 因为有可能会有负权边 2.答案+= dis[t] × totflow 3.在处理完了之后修正途径边的流量(正减反加) 4.循环1 2 3,直到S到T不连通代码如下:#include<cstdio>#include<stri...原创 2018-08-27 08:51:09 · 291 阅读 · 0 评论 -
树链剖分:P3384 【模板】树链剖分
题目描述:戳这里 题解: 其实树剖的重点就在于轻重链,这篇文章写的很好 然而我线段树写得全是问题,改了半天2333代码如下:#include<cstdio>#include<string>#include<cstring>using namespace std;const int maxn=100005;int n,m,root,tt,t...原创 2018-08-06 09:33:41 · 257 阅读 · 0 评论 -
主席树:LuoguP3834 【模板】可持久化线段树 1(主席树)
题目描述:戳这里 题解: 话说我去年好像学过主席树。。。 然后我就不会了,然后我就害怕的又学了一次。 主席树其实就是线段树的优化。 我们考虑这道模板题。 如果用暴力的方法做,肯定会Tle。 那么我们想一想能不能用线段树来优化一下。 先简单化一下题目,如果求的是1~m(m&lt;=n)的第k大值,怎么用线段树做? 那么我们就可以建立一颗权值(权值是点权离散化之后的位置)线段树,每一...原创 2018-08-05 16:52:31 · 255 阅读 · 0 评论 -
Manacher算法:Luogu P3805 【模板】manacher算法
题目描述:戳这里题解:: 以前听说过,但是没有学过manacher算法,现在发现其实还挺简单的。。。 manacher算法可以用来解决最长回文串的长度这一类的问题。 讲这个算法之前,我们首先要解决一个重要的问题:回文串分为奇数长度和偶数长度。 那么我们可以用一个巧妙(暴力)的方法,每两个字符之间加一个#(或者随便什么符号),这样不管是偶数长度还是奇数长度的回文字符串都会变成奇数长度的。...原创 2018-07-28 10:06:49 · 248 阅读 · 0 评论 -
AC自动机模板:P3796 【模板】AC自动机(加强版)
题目描述:戳这里 题解:AC自动机简单版的题解 这题相较于那一题只是改变了一下求的东西,我们只要稍加改动,就能AC。代码如下:#include<cstdio>#include<string>#include<cstring>using namespace std;const int maxn=10505,maxm=1e6+5;int n...原创 2018-07-18 07:59:16 · 372 阅读 · 0 评论 -
AC自动机模板:Luogu P3808 【模板】AC自动机(简单版)
题目描述:戳这里题解:这题是AC自动机的模板题。 AC自动机可以看作是Trie和kmp的结合体(我连kmp都不会写了。。。) 它可以看作是kmp的延伸。kmp求的是某一字符串在给定字符串中出现的次数,而AC自动机求的是某一些字符串在给定字符串中出现的次数之和或者这一类的问题。 AC自动机是用Trie来实现的,只是多了一个fail(指针)。 那么我们就重点来介绍fail的作用。 ...原创 2018-07-17 21:30:38 · 290 阅读 · 0 评论 -
割点【模板】 Luogu P3388 【模板】割点(割顶)
题目描述:戳这里 题解: 边双的模板题啦。 我们可以考虑tarjan刷有向图的环的方法,只要稍稍修改,就能AC了。 我们需要注意一下两点: 1.对于每一个点,只要它的任意下一层的子树中有一个点的low[x]&gt;dfn[当前节点]这个点就可以是割点了 2.对于一个根节点,如果它的子树个数&gt;=2,那么它就一定是割点。其它和tarjan就比较像了。代码如下:#inc...原创 2018-07-16 20:58:32 · 308 阅读 · 0 评论 -
LuoguP2397 yyy loves Maths VI (mode)
题目描述题解:同BZOJ2465 题解代码如下:#include<cstdio>using namespace std;int n,x,y,sum;int main(){ scanf("%d",&n); scanf("%d",&x); y=x,sum=1; for (int i=2;i<=n;i++) { ...原创 2018-06-26 15:13:54 · 212 阅读 · 0 评论 -
LuoguP2396 yyy loves Maths VII
题目描述题解:这是一道卡常状压DP题。 f[i]表示当前状态的方案数,dis[i]表示当前状态的步数。那么我们会发现复杂度比较大,所以要稍微卡一下常数,用一下位运算然后mod拿来减就好了(开了O2才过了)。代码如下:#include<cstdio>#include<string>using namespace std;const int maxn...原创 2018-06-26 15:01:06 · 332 阅读 · 0 评论 -
Luogu P4071 [SDOI2016]排列计数
题目描述:传送门题解:这题是一道排列组合问题。 我们注意到有m个数是对应的,就可以用C(n,m)来计算。因为要mod,再用一下逆元就好了。 还有n-m个位置是每一个都是错位的,这就是经典的错排公式:D(n)=(n-1)*(D(n-1)+D(n-2))。预处理一下就好了。 注意D(0)=1!!! 代码如下:#include<cstdio>#include<...原创 2018-06-21 20:43:25 · 390 阅读 · 0 评论 -
BZOJ1856: [Scoi2010]字符串&&Luogu P1641 [SCOI2010]生成字符串
题目描述:LG传送门 BZOJ传送门题解:这题看似有点像DP题,但是其实是一道排列组合题。答案就是C(n+m,m)-C(n+m,m-1)。 详细参考LG上xyz32768的题解 代码如下:#include<cstdio>#include<string>using namespace std;const int maxn=20000...原创 2018-06-21 19:39:36 · 267 阅读 · 0 评论 -
Luogu(?) CF5C Longest Regular Bracket Sequence
题目描述:传送门 题解: 做过最水的提高+省选-题。。。DP一下。对于每一个),找到和它匹配的(。考虑可以有(…)(…)(…)这种情况,我们只要再开一个DP数组维护一下就好了。。。代码如下:#include&lt;cstdio&gt;#include&lt;string&gt;#include&lt;cstring&gt;using namespace std;const in...原创 2018-05-12 19:16:04 · 187 阅读 · 0 评论 -
Luogu(?) CF5C Longest Regular Bracket Sequence
题目描述:传送门 题解: 这题是一道贪心题。 我们可以先默认将每一个?都作为)来匹配。 对于每一个问号,如果匹配完了之后,用来记录是否完成匹配(0则匹配)的sum小于0,说明)太多了,就要将前面的某一个?变成的)变成(。那么我们要最小代价,可以建一个堆,找到代价最小的来替换。#include&lt;cstdio&gt;#include&lt;string&gt;#include&l...原创 2018-05-12 10:31:43 · 384 阅读 · 3 评论 -
Luogu(?) CF2B The least round way
题目描述:传送门 题解: 这题比较简单。要后缀零的个数最少,2和5最少就可以了。那么我们只要每一个数挖出2和5,分别DP就可以轻松解决了。注意要特判中间有一个或一些数是0的情况,如果有,则判断是否有没有一个后缀零的情况,如果没有,答案就是1。 代码如下:#include<cstdio>#include<string>using namespace std;...原创 2018-05-11 19:36:46 · 296 阅读 · 0 评论 -
Luogu(?) CF1C Ancient Berland Circus
题目描述:传送门 题解:luogu中的Dalao写的题解已经很好了,计算几何题。。。 ps:第一次发现三角函数是弧度制的[汗]#include<cstdio>#include<string>#include<cmath>using namespace std;const double PI=acos(-1.0),eps=1e-2;double ...原创 2018-05-11 15:35:49 · 251 阅读 · 0 评论