随笔分类 -  a经典做法

摘要:4557: [JLoi2016]侦察守卫 链接 分析: 因为D比较小,所设状态f[i][j]表示子树i内,从i往下第j层及第j层以下都覆盖了的最小代价,g[i][j]表示覆盖完子树内所有点,还可以往上覆盖j层的最小花费。 g的转移从子树内转移的时候,可以覆盖其他子树内的点, f数组直接求和即可。 最 阅读全文
posted @ 2019-03-02 10:51 MJT12044 阅读(204) 评论(0) 推荐(0)
摘要:5469: [FJOI2018]领导集团问题 链接 题意: 要求在一棵树内选一个子集,满足子集内的任意两个点u,v,如果u是v的祖先,那么u的权值小于等于v。 分析: dp[u][i]表示在u的子树内,最大的数是i的时候,最多选多少点。其中每个i都要和i+1取max,即每个i维护后缀最大值。 考虑优 阅读全文
posted @ 2019-02-27 10:55 MJT12044 阅读(470) 评论(0) 推荐(0)
摘要:2194: 快速傅立叶之二 链接 分析: 把相乘的,列到纸上,看一看就明白了。 k为0的情况: k为1的情况,7没有与它相连的点的了,于是可以加倍a数组。 其他的同理,然后怎么快速求出这些位置的乘积之和。 将a数组翻转然后就是一个卷积的形式了,于是可以FFT。b数组后面填0即可。 代码: 阅读全文
posted @ 2019-02-26 09:07 MJT12044 阅读(179) 评论(0) 推荐(0)
摘要:4827: [Hnoi2017]礼物 链接 分析: 求最小的$\sum_{i=1}^{n}(x_i-y_i)^2$ 设旋转了j位,每一位加上了c。 $\sum\limits_{i=1}^{n}(x_{i+j}+c-y_i)^2$ $=\sum\limits_{i=1}^{n}x_{i+j}^2+y_ 阅读全文
posted @ 2019-02-25 22:01 MJT12044 阅读(155) 评论(0) 推荐(0)
摘要:5289: [Hnoi2018]排列 链接 分析: 首先将题意转化一下:每个点向a[i]连一条边,构成了一个以0为根节点的树,要求选一个拓扑序,点x是拓扑序中的第i个,那么价值是i*w[x]。让价值最大。 然后贪心:直观的考虑,应该让权值小的尽量靠前,那么依次考虑当前最小的权值,一旦选了它的父节点, 阅读全文
posted @ 2019-02-25 17:57 MJT12044 阅读(232) 评论(0) 推荐(0)
摘要:5286: [Hnoi2018]转盘 链接 分析: $\min\limits_{i=1}^n \{ \max\limits_{j=i}^{i + n - 1} \{ a_{j}+i \} \} +n-1$ $\min\limits_{i=1}^n \{ \max\limits_{j=i}^{2n} 阅读全文
posted @ 2019-02-22 17:32 MJT12044 阅读(176) 评论(0) 推荐(0)
摘要:E. Decypher the String 链接 题意: 有一个字符串,一些操作,每次操作交换两个位置的字符,经过这些操作后,会得到新的字符串。给你新的字符串,求原来的串。可以有3次询问,每次询问给出一个字符串,返回操作后的字符串。 分析: 如果长度小于等于26,那么询问abc...xyz,就可以 阅读全文
posted @ 2019-02-21 07:55 MJT12044 阅读(338) 评论(0) 推荐(0)
摘要:4820: [Sdoi2017]硬币游戏 链接 分析: 期望dp+高斯消元。 首先可以建出AC自动机,Xi表示经过节点i的期望次数,然后高斯消元,这样点的个数太多,复杂度太大。但是AC自动机上末尾节点只有n个,并且只有n个有用。所以考虑优化一下。 一个串内部的转移是没有必要的,考虑转移到结尾节点的转 阅读全文
posted @ 2019-02-18 10:53 MJT12044 阅读(221) 评论(0) 推荐(0)
摘要:4513: [Sdoi2016]储能表 链接 分析: 数位dp。 横坐标和纵坐标一起数位dp,分别记录当前横纵坐标中这一位是否受n或m的限制,在记录一维表示当前是否已经大于k了。 然后需要两个数组记录答案,分别记录个数和答案的和。 语意不清了。。。看代码吧。。 代码: 阅读全文
posted @ 2019-02-17 19:28 MJT12044 阅读(244) 评论(0) 推荐(1)
摘要:1444: [Jsoi2009]有趣的游戏 链接 分析: 如果一个点回到0号点,那么会使0号点的概率增加,而0号点的概率本来是1,不能增加,所以这题用期望做。 设$x_i$表示经过i的期望次数,然后初始可以知道$x_0=0$,又因为末尾节点只会经过一次,所以末尾节点的概率就是期望。 然后建出AC自动 阅读全文
posted @ 2019-02-16 20:40 MJT12044 阅读(256) 评论(0) 推荐(0)
摘要:2115: [Wc2011] Xor 链接 分析: 对于图中的一个环,是可以从1到这个环,转一圈然后在回到1的,所以可以一开始走很多个环,然后在走一条1到n的路径。 那么可以求出所有的环,加入到线性基中,然后任意一条1->n的路径,取一遍最大值。 如果1->n的路径就是最终要走的路径,那么就取到了。 阅读全文
posted @ 2019-02-14 18:02 MJT12044 阅读(185) 评论(0) 推荐(0)
摘要:E. Cool Slogans 链接 题意: 给定一个字符串S,从中选出k个子串a[1],a[2]...a[k],满足a[i]在a[i+1]中出现了两次(可以重叠),求最大的k。 分析: 建出SAM,在parent树上dp,dp[i]表示到第i个点,最多选了多少个子串,那么如果fa[i]在i中出现了 阅读全文
posted @ 2019-02-13 11:41 MJT12044 阅读(279) 评论(0) 推荐(0)
摘要:2555: SubString 链接 题意: 动态在末尾加入一个字符串,询问一个字符串出现了多少次。 分析: 如果没有动态加入,那么建出SAM后,求出parent树上,每个点|Right|,然后走一遍找到对应的点,这个点的Right集合的大小就是答案。 求Right可以从叶子结点往上走一遍。 考虑动 阅读全文
posted @ 2019-02-12 21:06 MJT12044 阅读(194) 评论(0) 推荐(0)
摘要:#2473. 「九省联考 2018」秘密袭击 #2473. 「九省联考 2018」秘密袭击 链接 分析: 首先枚举一个权值W,计算这个多少个连通块中,第k大的数是这个权值。 $f[i][j]$表示到第i个节点,有j个大于W数的连通块的个数。然后背包转移。 复杂度是$O(n^2k)$,时限5s,然后卡 阅读全文
posted @ 2019-02-10 19:49 MJT12044 阅读(350) 评论(1) 推荐(0)
摘要:D. Jongmah 链接 题意: 一些数字,有两种方式组成一个三元组,[x,x,x],[x,x+1,x+2],每个数字只能用一次,求最多组成多少三元组。 分析: 因为每三个[x,x+1,x+2]是可以拆成[x,x,x],[x+1,x+1,x+1],[x+2,x+2,x+2]的,所以可以认为对于以x 阅读全文
posted @ 2019-02-09 09:00 MJT12044 阅读(628) 评论(0) 推荐(0)
摘要:4013: [HNOI2015]实验比较 链接 分析: 首先把等号用并查集合并起来。 由于只存在最多一个质量不比i差的数,发现这是森林。若x<y,连边x->y。于是建虚拟根节点0。 然后树形dp,f[i][j]表示第i棵子树内,分成了j段的方案数,即存在j-1个小于号。 依次合并每个子树,假设一棵树 阅读全文
posted @ 2019-02-07 22:32 MJT12044 阅读(136) 评论(0) 推荐(0)
摘要:4008: [HNOI2015]亚瑟王 链接 分析: 根据期望的线性性,直接求出每张牌出现的概率,最后乘以攻击力就是答案。 每张牌出现的概率只与它前面的牌有关,与后面的没有关系,于是按顺序考虑每张牌。 $f[i][j]$表示到第i张牌,还剩j次出牌的机会(即轮数)的概率,那么有$f[0][r] = 阅读全文
posted @ 2019-02-07 22:05 MJT12044 阅读(161) 评论(0) 推荐(0)
摘要:P4211 [LNOI2014]LCA 链接 分析: 首先一种比较有趣的转化是,将所有点到1的路径上都+1,然后z到1的路径上的和,就是所有答案的deep的和。 对于多次询问,要么考虑有把询问离线,省去每次询问的复杂度,多个一起处理,要么做到优化掉查询。 这里发现求deep和的过程不能在省了,于是可 阅读全文
posted @ 2019-02-02 10:09 MJT12044 阅读(130) 评论(0) 推荐(0)
摘要:3532: [Sdoi2014]Lis 链接 分析: 首先dp一遍,求出f[i],表示第i个位置在最长上升子序列中的最优排在什么位置。 然后建图,求最小割,可以求得第一问。S->i,容量INF;i->i+n,容量B[i];i+n->T,容量INF。 对于求字典序最小的最小割,那么首先按C排序,依次判 阅读全文
posted @ 2019-01-31 09:38 MJT12044 阅读(259) 评论(0) 推荐(0)
摘要:2597: [Wc2007]剪刀石头布 链接 分析: 费用流。 首先转化一下问题,整张图最优的情况是存在$C_n^3$个,即任意3个都行,然后考虑去掉最少不满足的三元环。 如果u赢了v,u向v连一条边,如果v有k条入边,那么说明少了$C_k^2$个三元环,所对每场比赛分配度数,求最小费用最大流。 具 阅读全文
posted @ 2019-01-30 22:04 MJT12044 阅读(153) 评论(0) 推荐(0)