自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 ARC 109 (A-E 题解)

ARC 109 (A-E 题解)A简单分类讨论就好。B首先假设你需要买k个,则肯定使n+2−k,n+2−k+1,n+2−k+2......n+1n+2-k,n+2-k+1,n+2-k+2......n+1n+2−k,n+2−k+1,n+2−k+2......n+1这些。你把前k-1个都不需要切。再判定长度为n+1的能否切成n+2−kn+2-kn+2−k前面的。二分就行了。Cdpi,jdp_{i,j}dpi,j​表示从i开始j轮,剩下来的是什么?转移也很简单。D这题比较毒瘤。正常的做法:

2020-11-30 10:29:34 444

原创 [APIO2014]连珠线 题解

我们设初始的那个点为root。则所有的蓝色链都是形如father−now−sonfather-now-sonfather−now−son。我们设计两个dp状态: dpi,0dp_{i,0}dpi,0​表示i号点不作为蓝色链的中间点,dpi,1dp_{i,1}dpi,1​表示作为中间点。则以下的转移就非常容易了。dpi,0=∑max⁡(dpu,1+w,dpu,0)dp_{i,0}=\sum \max(dp_{u,1}+w,dp_{u,0})dpi,0​=∑max(dpu,1​+w,dpu,0​)dpi,

2020-11-30 09:56:55 153

原创 [APIO2018] New Home 新家 题解

[APIO2018] New Home 新家 题解传送门首先将时间离散化,然后依据时间建一棵线段树。将每一个店开业歇业时间搞到树上。这样问题就转化为:有一个数轴每次加入或删除一个点。每一个点有一个颜色。在任意时间询问某一个点距离某一种颜色的最远距离。到某一个颜色的距离为到这个颜色的点的最小距离。显然可以二分答案。每次询问区间[l,r][l,r][l,r]是否包含了所有颜色的点。对于每一个颜色我们搞一个set。记录每一个点到前面的那个同色的点,也就是前驱,记为pre[i]。这个玩意的充要条件是在区

2020-11-24 13:23:36 227

原创 AtCoder Regular Contest 108 (A-F) 题解

AtCoder Regular Contest 108 (A-F) 题解A枚举P的因子,时间复杂度O(p)O(\sqrt p)O(p​)B从前往后扫,维护一个栈,遇到一个完整的fox,就弹出。时间复杂度O(N)O(N)O(N)C搞一个生成树,根据父亲的颜色决定当前点的颜色。D分类讨论好题,????讨论每一种情况,看看字符串有多少形态?时间复杂度:O(n)O(n)O(n)E我们可以发现若l和r选择的话,则l,r内部的期望点数实际上与区间[l,r]外是无关的。所以用dp[l] [r]表

2020-11-22 22:10:09 208

原创 CERC 2017 gym 101620 Problem I: Intrinsic Interval

重要性质:若区间[l1,r1][l_1,r_1][l1​,r1​]合法,区间[l2,r2][l_2,r_2][l2​,r2​]也合法,其中满足l1<l2<r1<r2l_1<l_2<r_1<r_2l1​<l2​<r1​<r2​。可以轻轻松松证明:[l2,r1][l_2,r_1][l2​,r1​]也合法!也就是说若我们规定两个数L,R,其中对于所有>=R的位置i,求出在最大的xxx满足x<=L且,[x,i]合法。对于每一个i记录这个位置为x[

2020-11-20 23:55:12 153

原创 CF 1425 E. Excitation of Atoms 题解

CF 1425 E. Excitation of Atoms 题解一个FST好题! ????我们先分情况讨论。k=0,这没啥好说的,枚举每一个位置即可。k=1,比较复杂。。k=2,还是比较复杂。。k=3……k很多的时候就非常复杂了,我们可以先摸索摸索策略。由于n没有出边,所以你激活n的时候不会影响到其它的原子。所以我们尽量不直接激活n。假设前n-1个原子中di最小的是j。我们能否只激活j,然后就激活了所有呢?我们可以这样构造:1->2->…->j->j+1

2020-11-20 23:29:27 155

原创 AGC 049 总结+ABCD题解

AGC 049 总结+ABCD题解比赛链接赛况:202 Gary{\color{Yellow} \textrm{Gary} }Gary1800(4)187:231800 (4)\\187:231800(4)187:2340051:51400\\51:5140051:5160048:32600\\48:3260048:32800(4)167:23800 (4)\\167:23800(4)167:23---A - Erasing Vertices这

2020-11-20 11:51:52 577

原创 csacademy Squared Ends 题解(动态凸包/李超树/分治/二进制技巧)

csacademy Squared Ends 题解(动态凸包/李超树/分治/二进制技巧)题目链接首先这是一个比较明显的dp题:dpi,jdp_{i,j}dpi,j​表示前i个分成j段的最优解。dpi,j=min⁡(dpk,j+(ak+1−ai)2)=min⁡(dpk,j+ak+12−2×ak+1×ai)+ai2dp_{i,j}=\min(dp_{k,j}+(a_{k+1}-a_i)^2)=\min (dp_{k,j}+a_{k+1}^2-2\times a_{k+1}\times a_i)+a_i

2020-11-12 11:26:07 195

原创 Polynomials 题解

Polynomials 题解题意:给定 n 个形如$ yi(x) = a_0 + a_1x + a_2x^2 + a_3x^3 $的函数以及 q 个询问。每个询问给定整数 t,你 需要求出使得 yi(t) 最小化的函数 yi。题解:由于李超线段树只可以维护函数间最多只有一个交点的情况,由于这里的三次函数可能会有多个交点,所以这里就没办法直接使用李超树了。我们可以分治来解决,先处理好左半边函数在每一个区间内取得最小值的函数,和右半边函数在每一个区间内取得最小值的函数,可以存在一个vector中,

2020-11-11 23:12:52 682

原创 dp on 凸壳总结&gym 101806 T Touch The Sky 题解

dp on 凸壳总结&gym 101806 T Touch The Sky 题解我也不知道这个玩意究竟叫什么。。。。对于这样的dp问题:dpi,j=min⁡(dpi−1,j,dpi−1,j−1+wi)dp_{i,j}=\min (dp_{i-1,j},dp_{i-1,j-1}+w_i)dpi,j​=min(dpi−1,j​,dpi−1,j−1​+wi​),(for example :Touch The Sky)求任意的dpi,jdp_{i,j}dpi,j​。可以发现dpidp_{i}d

2020-11-10 23:51:28 197

原创 GYM 101806 T 总结

GYM 101806 T 总结这是一个经典的问题。首先我们发现要满足∑j=1i−1dpj≤lpi\sum _{j=1}^{i-1} d_{p_j}\leq l_{p_i}∑j=1i−1​dpj​​≤lpi​​,也就是说要使得∑j=1idpj≤lpi+dpi\sum _{j=1}^i d_{p_j}\leq l_{p_i}+d_{p_i}∑j=1i​dpj​​≤lpi​​+dpi​​。设si=li+dis_i=l_i+d_isi​=li​+di​。显而易见,我们应该按照sis_isi​升序放气球。这

2020-11-10 18:11:26 146

原创 ARC 107 F Sum of Abs 题解

ARC 107 F Sum of Abs 题解先来一波提示:若联通块内bib_ibi​的和为正数,最终的得分直接就是∑bi\sum b_i∑bi​,若和为负数,则最终分数为∑(bi×−1)\sum (b_i\times -1)∑(bi​×−1),也就是说每一个点要么直接将bib_ibi​算入答案,要么将bi×−1b_i\times -1bi​×−1算入答案,要么直接删去,且一个联通块内算入答案的方式相同(要么都不×−1\times -1×−1,要么都×−1\times -1×−1)。考虑每一

2020-11-06 23:22:54 293

原创 CF1442 D. Sum

CF1442 D. Sum首先可以发现,最终选择的结果一定是某一个数组选择了前几个,其它的数组要么全选,要么全不选。不然若存在两个都只选择了一部分的,结尾大的向后延申一个,小的向前一个答案一定更优。这样我们就可以枚举只拿一部分的物品,其他01背包就行了。时间复杂度为O(n2×k)O(n^2\times k)O(n2×k),TLE。但我们仔细分析一下就能发现,若我们第iii个物品只拿一部分,然后要对i+1i+1i+1到n做一次01背包,1到i-1做一次01背包。若枚举i+1只拿一部分,要对i+2到n做一

2020-11-06 08:43:48 172

原创 Buffalo Barricades 题解

Buffalo Barricades 题解这题的难点在于某一头牛可能被多个农名占有。怎么处理呢?我们仔细分析一下就会发现,每一个农名的篱笆最多被一个篱笆直接包含,所以我们把这些之间包含的农名之间连上边,最终形成的是一个森林。但是我们一开始卡在了:一个农名包含某一个农名的篱笆,只有这个农名来的更早,才能得到包含的这个农名的牛,这其实就变成了一个三维偏序问题,不太容易解。但其实我们可以从后往前将这些边加回来就可以了。用dsu维护。/*{#######################

2020-11-05 15:41:43 100

原创 CF gym 102082 E Eulerian Flight Tour题解

CF gym 102082 E Eulerian Flight Tour题解一题比较繁琐的构造题。首先存在欧拉回路的充要条件是每一个点的度数都为偶数,且图联通。若原图本来就是联通的,我们就只需要是每一个点的度数都为偶数就可以了。我们先建除一个补图。我们可以跑一个原图的dfs 树出来,然后从下往上,若以iii为根的子树内有奇数个奇数度数的点,就添加iii到它父亲的边。若根有奇数个,则无解。若不是,就从两个联通块内选出两个代表,向外连边。最后在把每一个联通快连接成一个环就行了(两个的情况比较特殊,需

2020-11-03 17:24:22 249

空空如也

空空如也

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

TA关注的人

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