10 2020 档案

摘要:题目戳我 Solution: 考虑显然树形dp. 1.设dp[i][j]表示子树i选了j个的最小代价。 发现转移时的cost没法转移。 2.设dp[i][j][k]表示子树i选了k个,距离i最近的伐木场是j的最小代价。 不方便处理i阅读全文
posted @ 2020-10-27 23:03 Refined_heart 阅读(169) 评论(0) 推荐(1) 编辑
摘要:题目戳我 Solution: 题目大意是求,单点修改,i=1na[i][imodx=y] 考虑根号分治:对x分类讨论。 当x\leq \sqrt时,设sum[i][j]表示模ij的所有数之和。这一部分可以$O(n\sqrt 阅读全文
posted @ 2020-10-27 17:20 Refined_heart 阅读(88) 评论(0) 推荐(0) 编辑
摘要:题目戳我 Solution: 先考虑前三个操作,用rev[i]表示第i行是不是被反转,vis[i][j]\(\)(i,j)是不是被反转。 若vis[i][j]rev[i],意味着a[i][j]=0.反之若vis[i][j]=rev[i], 阅读全文
posted @ 2020-10-25 20:11 Refined_heart 阅读(153) 评论(0) 推荐(0) 编辑
摘要:题目戳我 Solution:dp[l][r][0/1]\(\)[l,r]已经排列好,且这个人是从左边/右边加入进来的。 考虑分别转移: \(dp[l][r][0]=[a_l<a_{l+1}]dp[l+1][r][0]+[a_l<a_r]dp[l+1][r][1] 阅读全文
posted @ 2020-10-24 14:33 Refined_heart 阅读(87) 评论(0) 推荐(0) 编辑
摘要:题目戳我 Solution: 考虑dp. dp[i][j]表示前i个物品,锅里j个的最大值。 则dp[i][j]=\max\left{dp[i-1][k]+a_i*j\right} \(dp[i][j]=\max\left\{dp[i-1][k]+a_i*j 阅读全文
posted @ 2020-10-21 22:18 Refined_heart 阅读(101) 评论(0) 推荐(0) 编辑
摘要:A 题目大意:给定a,b,\(求\)\min\left{(x⊕a)+(x⊕b)\right} 是异或。 solution: 显然答案应该是axorb.令两个括号其中一者为0即可。 #include<bits/stdc++.h> using namespac 阅读全文
posted @ 2020-10-18 20:08 Refined_heart 阅读(181) 评论(0) 推荐(1) 编辑
摘要:题目戳我 Solution: 考虑dp,dp[i][j]表示前i个物品智商为j的情商最大值。 先考虑负数情况,可以整体挪动一个最大值,更改状态为前i个物品智商为j+Mx的情商最大值。 那么有显然dp方程:\(dp[i][j]=\max\left\{ 阅读全文
posted @ 2020-10-15 17:26 Refined_heart 阅读(94) 评论(0) 推荐(0) 编辑
摘要:题目戳我 Solution: 这题不要把思想局限到线段树上……这题大意就是求路径经过的值中x的出现性问题。 最开始的想法是值域线段树……看了题解发现直接vector加二分即可O(nlog2n)解决。 思路: 用vector存下颜色i所出现的所有节点,对 阅读全文
posted @ 2020-10-07 14:33 Refined_heart 阅读(201) 评论(0) 推荐(0) 编辑
摘要:题目戳我 Solution: 这题的转化思想很巧妙…… 考虑把dep给拆掉。 首先可以明确的是,每一个LCA一定在rootz的路径上。 考虑一个LCA被选中,意味rootLCA这个路径上所有的值都+1. 于是,我们可以把询问看成将点$p\ 阅读全文
posted @ 2020-10-06 16:57 Refined_heart 阅读(126) 评论(0) 推荐(0) 编辑
摘要:题目戳我 Solution: 关于分层图: 一般用于处理:给你k次机会对边权进行修改的最短路问题。 算法流程: 建立出k层图,对应进行k次操作后的局面。 不同图之间建立边,即表示从当前局面进行一次操作转移到下一个局面。 由分层对图的边和点较多,所以开空间的时候一定要 阅读全文
posted @ 2020-10-06 10:46 Refined_heart 阅读(148) 评论(0) 推荐(0) 编辑
摘要:题目戳我 Solution: 树上启发式合并,是对普通暴力的一种优化。 考虑本题,最暴力的做法显然是暴力统计每一次的子树,为了避免其他子树影响,每次统计完子树都需要清空其信息。 但是,如果我们先对非x的节点进行统计,最后统计x然后合并其他节点的信息,那么,x的统计信 阅读全文
posted @ 2020-10-05 17:01 Refined_heart 阅读(153) 评论(0) 推荐(0) 编辑
摘要:题目戳我 Solution: 题目很显然可以设dp[i]表示i的子树内的关键点都不和i联通的最小待机,有如下dp方程: vsonu,vkey:dp[u]+=dis(u,v) \(v\in son_u,v\not\in key:dep[u 阅读全文
posted @ 2020-10-04 13:35 Refined_heart 阅读(184) 评论(0) 推荐(0) 编辑
摘要:题目戳我 Solution: 考虑建图。操作可以看作对1进行的操作,于是有以下运行过程: 1w[i]e[i]... 考虑倍数,一个数可以走到所有是它的倍数的数。于是这样建图: w[i]e[i],iij. 然后发现倍数的边可 阅读全文
posted @ 2020-10-02 21:44 Refined_heart 阅读(147) 评论(0) 推荐(0) 编辑
摘要:题目戳我 Solution: 考虑第二问,赢的局数最小,即输和平的局数最多。 考虑网络流,1,2,3表示Alice选择的三种可能性,4,5,6同理。 它们像源点和汇点连的是局数为容量的边,然后对于能和它平的和输的连边,边权为inf,因为源点和汇点已经限制了流量, 阅读全文
posted @ 2020-10-01 23:13 Refined_heart 阅读(179) 评论(0) 推荐(0) 编辑
摘要:题目戳我 Solution:[l,r]子段和是0,sum[r]=sum[l1]. 于是我们可以考虑维护当前哪一个前缀和出现过。对于区间[l,r]若其子段和为0则在r1的地方插入一个+即可。 初始化要把0赋值为出现过。 #in 阅读全文
posted @ 2020-10-01 22:23 Refined_heart 阅读(312) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示