<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wangyiyang2的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wangyiyang2</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wangyiyang2]]></copyright><item><title><![CDATA[NOIP2020 集训]]></title><link>https://blog.youkuaiyun.com/wangyiyang2/article/details/110009308</link><guid>https://blog.youkuaiyun.com/wangyiyang2/article/details/110009308</guid><author>wangyiyang2</author><pubDate>Mon, 23 Nov 2020 22:36:35 +0800</pubDate><description><![CDATA[11.2311.2311.23
做了道 CF514E 加深了矩阵加速 dp 转移的方法。
即原本 dp 方程为 fi=∑j=1100fi−j×gsjf_{i}=\sum\limits_{j=1}^{100}f_{i-j}\times gs_jfi​=j=1∑100​fi−j​×gsj​ ，其中 gsjgs_jgsj​ 为深度为 jjj 的点的个数。
然后考虑矩阵优化一下就好了，时间复杂度 O(1003×log⁡m)O(100^{3}\times\log m)O(1003×logm)
为了加强代码能力做了道大]]></description><category></category></item><item><title><![CDATA[题解 CSP 2020S T1- 儒略日]]></title><link>https://blog.youkuaiyun.com/wangyiyang2/article/details/109633212</link><guid>https://blog.youkuaiyun.com/wangyiyang2/article/details/109633212</guid><author>wangyiyang2</author><pubDate>Wed, 11 Nov 2020 22:43:52 +0800</pubDate><description><![CDATA[题解 - P7075\mathrm{P7075}P7075
题目意思
题目传送门
Sol\mathrm{Sol}Sol
给一种二分的做法？
我们考虑先做 公元前 4713∼14713 \sim 14713∼1 年，我们预处理经过整 xxx 年需要几天。那么我们可以快速算出 nnn 天是在哪一年？
找到那一年我们只要 12 个月份依次模拟一遍即可。这样已经可以得到 404040 分。
然后我们考虑公园 $1 \sim 10^9 $ 年。我们考虑二分 nnn 天后在哪一年。我们首先要从公元 111 年开始二分，]]></description><category></category></item><item><title><![CDATA[题解 CF232E 【Quick Tortoise】]]></title><link>https://blog.youkuaiyun.com/wangyiyang2/article/details/109373911</link><guid>https://blog.youkuaiyun.com/wangyiyang2/article/details/109373911</guid><author>wangyiyang2</author><pubDate>Thu, 29 Oct 2020 23:01:06 +0800</pubDate><description><![CDATA[题解 - CF232E\mathrm{CF232E}CF232E
题目意思
题目传送门
给你一张 n×mn\times mn×m 的图。 QQQ 次询问 (x,y,x1,y1)(x,y,x_1,y_1)(x,y,x1​,y1​) 问你能否从 (x,y)∼(x1,y1)(x,y)\sim(x_1,y_1)(x,y)∼(x1​,y1​)
n,m≤500,Q≤6e5n,m\leq 500,Q\leq 6e5n,m≤500,Q≤6e5
Sol\mathrm{Sol}Sol
分治 + dp\mathrm{dp}dp ]]></description><category></category></item><item><title><![CDATA[10.21 做题记录]]></title><link>https://blog.youkuaiyun.com/wangyiyang2/article/details/109211750</link><guid>https://blog.youkuaiyun.com/wangyiyang2/article/details/109211750</guid><author>wangyiyang2</author><pubDate>Wed, 21 Oct 2020 22:40:27 +0800</pubDate><description><![CDATA[概况
完成 cf 难度总和：≈30000≈30000≈30000
然而 wyq 今天做疯了竟然做了 ≈40000≈40000≈40000
简要题解
CF865D
一道贪心题，最原始的想法就是建一个小根堆每次比较 aia_iai​ 与堆顶 xxx 如果 x&lt;aix&lt;a_ix&lt;ai​ 那么贡献即为 ai−xa_i-xai​−x 。但是这样是不对的，要考虑如何实现后悔，比如对于 [1,3,100][1,3,100][1,3,100] 显然买进 111 卖出 100100100 是最划算的。那么做]]></description><category></category></item><item><title><![CDATA[10.19 做题记录]]></title><link>https://blog.youkuaiyun.com/wangyiyang2/article/details/109166091</link><guid>https://blog.youkuaiyun.com/wangyiyang2/article/details/109166091</guid><author>wangyiyang2</author><pubDate>Mon, 19 Oct 2020 18:29:29 +0800</pubDate><description><![CDATA[概况
完成 cf 难度总和：2000+2300+2000+2300+1200+2000+2800+2400=170002000+2300+2000+2300+1200+2000+2800+2400=170002000+2300+2000+2300+1200+2000+2800+2400=17000
被 wyq ≈20000≈ 20000≈20000 吊打
简要题解
CF920F
简单ds题，方法和区间开平方根差不多。每个数进行不了几次操作。于是我们维护区间和和区间 max⁡\maxmax。如果区间 max⁡]]></description><category></category></item><item><title><![CDATA[CF1428F Fruit Sequences]]></title><link>https://blog.youkuaiyun.com/wangyiyang2/article/details/109147002</link><guid>https://blog.youkuaiyun.com/wangyiyang2/article/details/109147002</guid><author>wangyiyang2</author><pubDate>Sun, 18 Oct 2020 16:52:19 +0800</pubDate><description><![CDATA[题解 - CF1428F\mathrm{CF1428F}CF1428F
题目意思
题目传送门
Sol\mathrm{Sol}Sol
考虑对于每个 111 单独算贡献。
假设 ai=1a_i=1ai​=1 那么以其为结尾的连续 111 的长度为 lll，那么在 [1,i−l][1,i-l][1,i−l] 的区间找一个最远的 jjj 满足 aj=1a_j=1aj​=1 且以其为起头的 连续 111 段的长度 L≤lL\leq lL≤l。这个我们可以用线段树维护区间 max⁡\maxmax 标记来轻松实现。
假设]]></description><category></category></item><item><title><![CDATA[10.12 做题总结]]></title><link>https://blog.youkuaiyun.com/wangyiyang2/article/details/109039405</link><guid>https://blog.youkuaiyun.com/wangyiyang2/article/details/109039405</guid><author>wangyiyang2</author><pubDate>Mon, 12 Oct 2020 23:28:22 +0800</pubDate><description><![CDATA[概况
完成 cf 难度总和：2300+2300+2100+2100+2000+2000+900+2100=158002300+2300+2100+2100+2000+2000+900+2100=158002300+2300+2100+2100+2000+2000+900+2100=15800
被 wyq ≈20000≈ 20000≈20000 吊打
简要题解
CF1422D
这道题目 2300 就过分，直接分别按照横纵坐标对传送门排序，相邻之间暴力连边。然后跑最短路就好了。
P4552
一道不错的思维题，考]]></description><category></category></item><item><title><![CDATA[题解 - P2221]]></title><link>https://blog.youkuaiyun.com/wangyiyang2/article/details/108980172</link><guid>https://blog.youkuaiyun.com/wangyiyang2/article/details/108980172</guid><author>wangyiyang2</author><pubDate>Fri, 09 Oct 2020 15:56:17 +0800</pubDate><description><![CDATA[题解 - P2221\mathrm{P2221}P2221
题目描述
题目链接
Sol\mathrm{Sol}Sol
一道线段树维护数列题。
首先我们考虑每次询问的贡献 V(l,r)=∑i=lrai×(i−l+1)×(r−i)V_{(l,r)}=\sum\limits_{i=l}^{r}a_i\times(i-l+1)\times (r-i)V(l,r)​=i=l∑r​ai​×(i−l+1)×(r−i)
这个式子没什么用，我们化简后面的式子：ai×(ri−i2−lr−li+r−i)→ai×(r−lr)+(r]]></description><category></category></item><item><title><![CDATA[题解 CF991F 【Concise and clear】]]></title><link>https://blog.youkuaiyun.com/wangyiyang2/article/details/108980096</link><guid>https://blog.youkuaiyun.com/wangyiyang2/article/details/108980096</guid><author>wangyiyang2</author><pubDate>Fri, 09 Oct 2020 15:49:14 +0800</pubDate><description><![CDATA[题解 - CF991F\mathrm{CF991F}CF991F
题目意思
题目传送门
Sol\mathrm{Sol}Sol
我的方法特别复杂，细节及其多，代码长达 320320320 行
我们考虑构造形式：
x=a+b×cdx=a+b\times c^dx=a+b×cd
x=cd+efx=c^d+e^fx=cd+ef
x=cd×ef+ax=c^d\times e^f+ax=cd×ef+a
x=cd×b+ax=c^d\times b+ax=cd×b+a
对于第一种情况我们暴力枚举 cdc^dcd 可以轻松算]]></description><category></category></item><item><title><![CDATA[Grakn Forces 2020 A-F 简要题解]]></title><link>https://blog.youkuaiyun.com/wangyiyang2/article/details/108900366</link><guid>https://blog.youkuaiyun.com/wangyiyang2/article/details/108900366</guid><author>wangyiyang2</author><pubDate>Fri, 02 Oct 2020 10:31:52 +0800</pubDate><description><![CDATA[Grakn&nbsp;Forces&nbsp;2020A−F\mathrm{Grakn\ Forces\ 2020 A-F}Grakn&nbsp;Forces&nbsp;2020A−F 简要题解
Grakn Forces 2020
注：若题目为多组数据 nnn 表示 ∑n\sum n∑n
A
由于题目保证 ai≠bi≠cia_i ≠ b_i ≠ c_iai​​=bi​​=ci​ 所以直接逐位判断选什么即可，时间复杂度 O(n)O(n)O(n)
code
B
贪心地加数，直至这个序列不能加数增加一个序列，]]></description><category></category></item><item><title><![CDATA[Codeforces Round #671 (Div. 2) 简要题解]]></title><link>https://blog.youkuaiyun.com/wangyiyang2/article/details/108741722</link><guid>https://blog.youkuaiyun.com/wangyiyang2/article/details/108741722</guid><author>wangyiyang2</author><pubDate>Tue, 22 Sep 2020 21:32:40 +0800</pubDate><description><![CDATA[CF671[div2]\mathrm{CF671[div2]}CF671[div2] 题解
比赛链接
A∼C\mathrm{A\sim C}A∼C
一眼题不多讲，其实 B\mathrm{B}B 做了我好一会
D1+D2\mathrm{D1+D2}D1+D2
简单题，我已开始以为只能过 D1 的然后把 D2 也给过了。首先我们把 aia_iai​ 从小到大排序，我们要让“谷”最多那么奇数位置我们就从 an2+1a_{\frac{n}{2}+1}a2n​+1​ 放到 ana_nan​，偶数位置我们从 a1a_1]]></description><category></category></item><item><title><![CDATA[题解 - 保卫王国（倍增做法）]]></title><link>https://blog.youkuaiyun.com/wangyiyang2/article/details/108589528</link><guid>https://blog.youkuaiyun.com/wangyiyang2/article/details/108589528</guid><author>wangyiyang2</author><pubDate>Mon, 14 Sep 2020 22:19:28 +0800</pubDate><description><![CDATA[题目意思
题目传送门
Sol\mathrm{Sol}Sol
首先对于每次分别做 dp 是 O(n2)O(n^2)O(n2)，即设 fu,0/1f_{u,0/1}fu,0/1​ 表示这个点选不选的最小代价，转移就是简单背包：fu,0=∑v∈ufv,1,fu,1=∑v∈umin⁡(fv,0,fv,1)f_{u,0}=\sum\limits_{v∈u}f_{v,1},f_{u,1}=\sum\limits_{v∈u}\min(f_{v,0},f_{v,1})fu,0​=v∈u∑​fv,1​,fu,1​=v∈u∑​]]></description><category></category></item><item><title><![CDATA[题解 P5593 【小猪佩奇爬树 加强版】]]></title><link>https://blog.youkuaiyun.com/wangyiyang2/article/details/108569939</link><guid>https://blog.youkuaiyun.com/wangyiyang2/article/details/108569939</guid><author>wangyiyang2</author><pubDate>Sun, 13 Sep 2020 22:58:59 +0800</pubDate><description><![CDATA[题解 - P5593\mathrm{P5593}P5593
题目描述
题目传送门
给出一棵 nnn 个点的树，每个点上有一种颜色。现在请你求出对于每一种颜色，树上有多少条链包含该种颜色的所有点。
n≤3×106n\leq 3\times 10^6n≤3×106
Sol\mathrm{Sol}Sol
一道细节很多的题目。
首先我们很容易想到若一种颜色的数量 ti=0t_i=0ti​=0 那么输出 n×(n+1)2\frac{n\times(n+1)}{2}2n×(n+1)​。已经如果一种颜色在大于等于三棵子树]]></description><category></category></item><item><title><![CDATA[题解 CF1406D 【Three Sequences】]]></title><link>https://blog.youkuaiyun.com/wangyiyang2/article/details/108562825</link><guid>https://blog.youkuaiyun.com/wangyiyang2/article/details/108562825</guid><author>wangyiyang2</author><pubDate>Sun, 13 Sep 2020 15:15:13 +0800</pubDate><description><![CDATA[CF1406D\mathrm{CF1406D}CF1406D
题目意思
题目传送门
给你一个长度为 nnn 的序列 aia_iai​，让你构造 bi,cib_i,c_ibi​,ci​ 使得 bi+ci=aib_i+c_i=a_ibi​+ci​=ai​ 并且 bib_ibi​ 不降，cic_ici​ 不升，使得 min⁡(max⁡i=1n(ai,bi))\min(\max\limits_{i=1}^{n}(a_i,b_i))min(i=1maxn​(ai​,bi​))，并且有 qqq 次修改。n,q≤105n]]></description><category></category></item><item><title><![CDATA[题解 CF1365G 【Secure Password】]]></title><link>https://blog.youkuaiyun.com/wangyiyang2/article/details/108532179</link><guid>https://blog.youkuaiyun.com/wangyiyang2/article/details/108532179</guid><author>wangyiyang2</author><pubDate>Fri, 11 Sep 2020 12:54:49 +0800</pubDate><description><![CDATA[题解 - CF1365G\mathrm{CF1365G}CF1365G
题目意思

题目传送门

Sol\mathrm{Sol}Sol

很巧妙的一道思维题

我们首先考虑如果可以交互的次数较多怎么做？
我们可以设 fi,jf_{i,j}fi,j​ 表示对于 aka_{k}ak​ 的或和，其中 kkk 的第 iii 位为 jjj。那么统计答案时候比如 P6=f3,0∣f2,0∣f1,1P_6=f_{3,0}|f_{2,0}|f_{1,1}P6​=f3,0​∣f2,0​∣f1,1​，因为 (6)2=[1,1,]]></description><category></category></item><item><title><![CDATA[题解 CF1409E 【Two Platforms】]]></title><link>https://blog.youkuaiyun.com/wangyiyang2/article/details/108425300</link><guid>https://blog.youkuaiyun.com/wangyiyang2/article/details/108425300</guid><author>wangyiyang2</author><pubDate>Sat, 05 Sep 2020 22:03:00 +0800</pubDate><description><![CDATA[题解- CF1409E\mathrm{CF1409E}CF1409E
题目意思
题目传送门
Sol\mathrm{Sol}Sol
真就我用数据结构做这道题目？？！
我们首先对坐标离散化一下然后计算出以 iii 开头的平台 [i,i+k][i,i+k][i,i+k] 能落下几个小球记做 sis_isi​ 。我们对 sis_isi​ 建一颗线段树维护区间最大值。
于是我们枚举第一个平台的起点 ststst ，那么这次的贡献即为 sst+max⁡j=st+1n(sj)s_{st}+\max\limits_{j=s]]></description><category></category></item><item><title><![CDATA[题解 CF1401D 【Maximum Distributed Tree】]]></title><link>https://blog.youkuaiyun.com/wangyiyang2/article/details/108175974</link><guid>https://blog.youkuaiyun.com/wangyiyang2/article/details/108175974</guid><author>wangyiyang2</author><pubDate>Sat, 22 Aug 2020 22:24:34 +0800</pubDate><description><![CDATA[题解 - CF1401D\mathrm{CF1401D}CF1401D
题目意思
题目传送门
Sol\mathrm{Sol}Sol
简单树上贪心
我们肯定考虑一条边的权值 viv_ivi​ 左边有 lslsls 个点右边就 (n−ls)(n-ls)(n−ls) 个点，那么这条边的贡献为 ls(n−ls)×vils(n-ls)\times v_ils(n−ls)×vi​
那么我们肯定尽量让大的权值的贡献最大，从大到小排个序累加一下即可，剩下的就是简单模拟一下。
时间复杂度：O(nlog⁡n)O(n\log n]]></description><category></category></item><item><title><![CDATA[题解 CF1401F 【Reverse and Swap】]]></title><link>https://blog.youkuaiyun.com/wangyiyang2/article/details/108175961</link><guid>https://blog.youkuaiyun.com/wangyiyang2/article/details/108175961</guid><author>wangyiyang2</author><pubDate>Sat, 22 Aug 2020 22:23:39 +0800</pubDate><description><![CDATA[题解 - CF1401F\mathrm{CF1401F}CF1401F
题目意思
题目传送门
Sol\mathrm{Sol}Sol
一道不难的ds题
我们考虑把序列放到线段树上，2n2^n2n 个数相当于线段树的叶子结点上的数。
对于 1∼41\sim 41∼4 的操作也就 2,32,32,3 比较难维护，我们考虑对于 222 操作，假设第 iii 个节点在线段树上为第 ddd 层（111节点为第 nnn 层）。那么反转操作相当于把下面所有层的左右儿子分别反转，于是我们对 0∼d0\sim d0∼d 层打上]]></description><category></category></item><item><title><![CDATA[题解 CF1392D 【Omkar and Bed Wars】]]></title><link>https://blog.youkuaiyun.com/wangyiyang2/article/details/108078004</link><guid>https://blog.youkuaiyun.com/wangyiyang2/article/details/108078004</guid><author>wangyiyang2</author><pubDate>Tue, 18 Aug 2020 15:22:38 +0800</pubDate><description><![CDATA[题解 - P1392D\mathrm{P1392D}P1392D
题目描述
题目传送门
Sol\mathrm{Sol}Sol
好像大家都是找规律做法，我提供一种 dp 的做法
设 fi,j,kf_{i,j,k}fi,j,k​ 表示到第 iii 个人攻击方向为 j∈[0,1]j∈[0,1]j∈[0,1] 当前受到 k∈[0,1,2]k∈[0,1,2]k∈[0,1,2] 个人攻击的最少修改次数。
我们每次枚举上一个人的攻击方向 ljljlj 以及受到攻击次数 lklklk 进行转移。分 444 种情况进行讨论：]]></description><category></category></item><item><title><![CDATA[题解 CF1398E 【Two Types of Spells】]]></title><link>https://blog.youkuaiyun.com/wangyiyang2/article/details/108019011</link><guid>https://blog.youkuaiyun.com/wangyiyang2/article/details/108019011</guid><author>wangyiyang2</author><pubDate>Sat, 15 Aug 2020 10:31:11 +0800</pubDate><description><![CDATA[题解 CF1398E\mathrm{CF1398E}CF1398E
题目意思
题目传送门
Sol\mathrm{Sol}Sol
感觉这是最近我做过比较难的 EEE 啦，细节真的草鸡多
我们在这里假定 AAA 为能翻倍的法术，BBB 相反
我们首先有个贪心思路就是每个 AAA 尽量配对大的 权值，并且第一个使用 AAA 的本身权值尽可能小，因为其不能产生翻倍贡献。
我们考虑用 set 维护 AAA 权值的集合（既保证不重复也从小到大排序便于操作）。并且假设现在有 sss 个 AAA 那么我们计 s1s1s1 ]]></description><category></category></item></channel></rss>