<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[yezi_coder的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/yezi_coder</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yezi_coder]]></copyright><item><title><![CDATA[Codeforces Round #772 (Div. 2) A~F]]></title><link>https://blog.youkuaiyun.com/yezi_coder/article/details/123057004</link><guid>https://blog.youkuaiyun.com/yezi_coder/article/details/123057004</guid><author>yezi_coder</author><pubDate>Mon, 21 Feb 2022 23:06:16 +0800</pubDate><description><![CDATA[前一段时间总是忙着学校的各种事情，好久没发过博客了，现在更新起来，从一场Codeforces的div2开始吧
A. Min Or Sum
题目大意
给你 nnn 个数记为 aia_iai​，你可以进行任意次数的操作，使得这 nnn 个数之和最小。
操作：选择两个不同的数 i,ji, ji,j ，以及两个非负整数 x,yx, yx,y，用 xxx 代替 aia_iai​，yyy 代替 aja_jaj​，且满足 ai∣aj=x∣ya_i | a_j = x|yai​∣aj​=x∣y
思路
看到 或 操作，容易想]]></description><category></category></item><item><title><![CDATA[Eclipse中没有server的解决办法]]></title><link>https://blog.youkuaiyun.com/yezi_coder/article/details/120521815</link><guid>https://blog.youkuaiyun.com/yezi_coder/article/details/120521815</guid><author>yezi_coder</author><pubDate>Tue, 28 Sep 2021 09:13:48 +0800</pubDate><description><![CDATA[最近在学JavaEEJava EEJavaEE，需要用 eclipseeclipseeclipse 来配置 tomcattomcattomcat，根据网上的教程，发现需要用到 PreferencePreferencePreference 中的 serverserverserver 但是我的 eclipseeclipseeclipse 中没有 serverserverserver
解决办法
首先你需要知道你的 eclipseeclipseeclipse 的版本号
在 MacMacMac 系统下，点击左上角 E]]></description><category></category></item><item><title><![CDATA[2021杭电多校第六场 1004——Decomposition]]></title><link>https://blog.youkuaiyun.com/yezi_coder/article/details/120278381</link><guid>https://blog.youkuaiyun.com/yezi_coder/article/details/120278381</guid><author>yezi_coder</author><pubDate>Tue, 14 Sep 2021 00:09:41 +0800</pubDate><description><![CDATA[题目大意
给你一个 nnn 个点的完全图 nnn 为奇数，让你划分为 kkk 条长度为 aia_iai​ 且不相交的路径，输出这 kkk 条路径。
解题思路
在完全图上构造 (n−1)/2(n-1)/2(n−1)/2 个不同的长度为 nnn 的欧拉回路。
完全图每个顶点的度数一定为偶数，每构造一个欧拉回路之后每个点的度仍然为偶数，所以一定可以构造出来这样的欧拉回路，构造出来之后就按顺序输出即可。
这里提供一种构造方法，至于为什么会想到不必深究。
由于点数是奇数，所以我们首先将最大的点选出来，然后对于前 (n]]></description><category></category></item><item><title><![CDATA[2021杭电多校第三场 1010——Road Discount]]></title><link>https://blog.youkuaiyun.com/yezi_coder/article/details/120237269</link><guid>https://blog.youkuaiyun.com/yezi_coder/article/details/120237269</guid><author>yezi_coder</author><pubDate>Sat, 11 Sep 2021 14:59:40 +0800</pubDate><description><![CDATA[题目大意
给你 nnn 个点， mmm 条边，每条边都有两个值ci,dic_i, d_ici​,di​，代表原始花费和折扣后的花费，问你使用 kkk 条折扣后的边使这 nnn 个点联通，最小花费是多少。对于 k∈[0,n−1]&nbsp;k∈Zk \in [0,n-1] \ k\in Zk∈[0,n−1]&nbsp;k∈Z 每一个值你都需要回答，题目保证有解。
2≤n≤1000,n−1≤m≤2×105,1≤di≤ci≤10002\leq n\leq1000, n-1\leq m\leq 2\times 10]]></description><category></category></item><item><title><![CDATA[2021杭电多校第三场 1004——Game on Plane]]></title><link>https://blog.youkuaiyun.com/yezi_coder/article/details/120161176</link><guid>https://blog.youkuaiyun.com/yezi_coder/article/details/120161176</guid><author>yezi_coder</author><pubDate>Tue, 07 Sep 2021 16:35:14 +0800</pubDate><description><![CDATA[题目链接
题目大意
给你 nnn 条线段， AliceAliceAlice 每次从中选 kkk 条，BobBobBob 每次划一条直线，定义 penaltypenaltypenalty 为 BobBobBob 所划直线与 AliceAliceAlice 所选直线相交的直线数， AliceAliceAlice 想最大化 penaltypenaltypenalty，BobBobBob 想最小化 penaltypenaltypenalty，对于每一个 1−n1-n1−n 的 kkk，你都需要回答 penaltyp]]></description><category></category></item><item><title><![CDATA[Codeforces Round #742 (Div. 2) E. Non-Decreasing Dilemma（线段树）]]></title><link>https://blog.youkuaiyun.com/yezi_coder/article/details/120137646</link><guid>https://blog.youkuaiyun.com/yezi_coder/article/details/120137646</guid><author>yezi_coder</author><pubDate>Mon, 06 Sep 2021 16:21:55 +0800</pubDate><description><![CDATA[题目链接
题目大意
给你一个长度为 nnn 的数组 aaa
每次有两种操作
1&nbsp;x&nbsp;y:ax=y1 \ x\  y: a_x = y1&nbsp;x&nbsp;y:ax​=y
2&nbsp;l&nbsp;r:2 \ l \ r:2&nbsp;l&nbsp;r: 问你区间 [l,r][l, r][l,r] 内有多少对 (p,q),l≤p≤q≤r(p, q), l \leq p \leq q \leq r(p,q),l≤p≤q≤r 满足子序列 ap≤ap+1≤⋯≤aqa_p \leq a_{]]></description><category></category></item><item><title><![CDATA[2021杭电多校第三场 1003——Forgiving Matching]]></title><link>https://blog.youkuaiyun.com/yezi_coder/article/details/120098603</link><guid>https://blog.youkuaiyun.com/yezi_coder/article/details/120098603</guid><author>yezi_coder</author><pubDate>Sat, 04 Sep 2021 13:42:19 +0800</pubDate><description><![CDATA[题目大意
给你两个字符串，一个长度为 nnn 模式串，一个长度为 mmm 匹配串，由字符 000 到 999 和 通配符 * 组成。问你匹配串在模式串中失配长度不超过 0,1,⋯ ,m0, 1,\cdots,m0,1,⋯,m 的字符串一共有多少个。
解题思路
考虑采用 fftfftfft 来做。
预处理
对于模式串，我们开十个数组（桶），来标记 000 到 999 出现的下标，如果出现了就标为 111，否则标为 000，对于通配符 ∗*∗ ，将 000 到 999 都标为 111，因为通配符是可以和任何字符]]></description><category></category></item><item><title><![CDATA[2021杭电多校第二场 1011——I love max and multiply]]></title><link>https://blog.youkuaiyun.com/yezi_coder/article/details/120089452</link><guid>https://blog.youkuaiyun.com/yezi_coder/article/details/120089452</guid><author>yezi_coder</author><pubDate>Fri, 03 Sep 2021 20:30:40 +0800</pubDate><description><![CDATA[题目大意
给你两个长度为 nnn 的数组 A、BA、BA、B，求 ∑i=0n−1Ci\sum_{i=0}^{n-1}C_i∑i=0n−1​Ci​，Ck=max{Ai×Bj}&nbsp;i&amp;j≥kC_k=max\{A_i\times B_j\}\  i\&amp;j\geq kCk​=max{Ai​×Bj​}&nbsp;i&amp;j≥k
解题思路
满足条件的 i&amp;j≥ki\&amp;j\geq ki&amp;j≥k 比较难求，我们可以把答案记录到 i&amp;j=ki\&amp;j = ki]]></description><category></category></item><item><title><![CDATA[2021杭电多校第二场 1008——I love exam]]></title><link>https://blog.youkuaiyun.com/yezi_coder/article/details/120080190</link><guid>https://blog.youkuaiyun.com/yezi_coder/article/details/120080190</guid><author>yezi_coder</author><pubDate>Fri, 03 Sep 2021 13:57:18 +0800</pubDate><description><![CDATA[题目大意
有一个人要为了期末考试而复习，现在一共有 nnn 门课，给你每门课复习时间所对应的分数，现在你有 ttt 时间来复习，最多挂 ppp 门课，每门课最多得分100，问你在最多挂 ppp 门课的情况下最大得分是多少，否则输出 -1
解题思路
先用一个背包 f[i][j]f[i][j]f[i][j] 表示第 iii 门课花费时间 jjj 的最大得分是多少
然后进行一个 dpdpdp
dp[i][k][kk]dp[i][k][kk]dp[i][k][kk] 表示前 iii 门课，花费时间 kkk，在挂 k]]></description><category></category></item><item><title><![CDATA[2021杭电多校第二场 1005——I love string]]></title><link>https://blog.youkuaiyun.com/yezi_coder/article/details/120076770</link><guid>https://blog.youkuaiyun.com/yezi_coder/article/details/120076770</guid><author>yezi_coder</author><pubDate>Fri, 03 Sep 2021 10:46:14 +0800</pubDate><description><![CDATA[题目大意
给你一个字符串，你遍历这个字符串，每次从这个字符串的第一个摘下一个字符插入到一个新字符串中，你使得新字符串的字典序最小，问你有多少种不同方法得到字典序最小的新字符串。
第一种插入方法是插入到新字符串的前面，第二种是插入到新字符串的后面。
解题思路
发现只有前面连续的相同字符才有两种插入方法，后面就只能有一种插入方法了，所以我们看前面有多少个相同连续的字符，那么答案就是 222 的这么多次幂。
Code
#include &lt;bits/stdc++.h&gt;
#define ll long l]]></description><category></category></item><item><title><![CDATA[2021杭电多校第四场 1008——Lawn of the Dead]]></title><link>https://blog.youkuaiyun.com/yezi_coder/article/details/120075320</link><guid>https://blog.youkuaiyun.com/yezi_coder/article/details/120075320</guid><author>yezi_coder</author><pubDate>Fri, 03 Sep 2021 10:16:52 +0800</pubDate><description><![CDATA[题目大意
给你一个 n×mn\times mn×m 的矩阵，给你 kkk 个点，表示这些点不可走，你从起点 (1,1)(1,1)(1,1) 出发，你每次只能向下或向右走，问你有多少个点是可到达的
解题思路
由于这道题没有限制总的 n×mn\times mn×m 之和小于一个值，题面给的是 ∑n≤107,∑m≤107\sum n \leq 10^7, \sum m \leq 10^7∑n≤107,∑m≤107，所以不可以直接 bfsbfsbfs
我们可以用两个线段树来做，两个线段树进行滚动，一个线段树维护的是]]></description><category></category></item><item><title><![CDATA[2021杭电多校第二场 1001——I love cube]]></title><link>https://blog.youkuaiyun.com/yezi_coder/article/details/120012161</link><guid>https://blog.youkuaiyun.com/yezi_coder/article/details/120012161</guid><author>yezi_coder</author><pubDate>Tue, 31 Aug 2021 10:38:56 +0800</pubDate><description><![CDATA[题目大意
给你一个边长为 n−1n-1n−1 的立方体，问你在其中能找出多少个等边三角形，三角形的三条边必须平行于坐标面
解题思路
我们发现一个边长为 111 的立方体中可以找出 888 个不同的等边三角形。
那么我们只需要计算有多少个边长为 1,2,3,⋯ ,n1, 2, 3, \cdots, n1,2,3,⋯,n 的立方体。
我们发现边长为 1,2,3,⋯ ,n−11, 2, 3, \cdots, n-11,2,3,⋯,n−1 的立方体分别有 (n−1)3,(n−2)3,⋯ ,13(n-1)^3, (n]]></description><category></category></item><item><title><![CDATA[2021杭电多校第三场 1009——Rise in Price]]></title><link>https://blog.youkuaiyun.com/yezi_coder/article/details/120003156</link><guid>https://blog.youkuaiyun.com/yezi_coder/article/details/120003156</guid><author>yezi_coder</author><pubDate>Mon, 30 Aug 2021 18:53:08 +0800</pubDate><description><![CDATA[题目大意
给你一个 n×nn \times nn×n 的矩阵，每个点有两个值，代表当前点物品的累加的数量和累加的价值，累加的价值就是说你到达了这个点，你所有物品的价值都会累加上这个价值，累加的数量表示你到达了这个点你的物品数量会加上这个值，你每次只能向下或者向右走。问你从 (1,1)(1, 1)(1,1) 走到 (n,n)(n, n)(n,n) 所获得的总价值最大是多少，总价值为数量乘以价值。
1≤n≤1001 \leq n \leq 1001≤n≤100
解题思路
dpdpdp
由于每个点有两个状态，我们]]></description><category></category></item><item><title><![CDATA[2020CCPC长春 F. Strange Memory]]></title><link>https://blog.youkuaiyun.com/yezi_coder/article/details/119961238</link><guid>https://blog.youkuaiyun.com/yezi_coder/article/details/119961238</guid><author>yezi_coder</author><pubDate>Fri, 27 Aug 2021 22:10:59 +0800</pubDate><description><![CDATA[题目链接
题目大意
给你一棵树，让你求树上所有满足 ai⨁aj=alca(i,j)a_i \bigoplus a_j = a_{lca(i, j)}ai​⨁aj​=alca(i,j)​ 的点对 i⨁ji \bigoplus ji⨁j 之和
解题思路
我们可以枚举每个点作为 lcalcalca 的贡献，这是一个不修改的子树问题，可以用树上启发式合并来做（dsu on tree），复杂度 O(nlogn)O(nlogn)O(nlogn)
我们怎么求 i⨁ji \bigoplus ji⨁j，我们可以用一个桶来记录]]></description><category></category></item><item><title><![CDATA[树上启发式合并（dsu on tree）]]></title><link>https://blog.youkuaiyun.com/yezi_coder/article/details/119951780</link><guid>https://blog.youkuaiyun.com/yezi_coder/article/details/119951780</guid><author>yezi_coder</author><pubDate>Fri, 27 Aug 2021 14:20:19 +0800</pubDate><description><![CDATA[dsu
dsu是并查集的意思，但是dsu on tree和并查集没什么关系。主要是借助并查集的思想，在树上进行一个合并。
解决什么问题
树上的问题大体可分两种，子树问题和树链问题。
树链问题可以用树链剖分来做，dsu on tree主要是解决不修改的子树问题。
核心思想
将轻子树往重子树上合并，删除轻子树的贡献。
什么是轻子树和重子树
我们定义轻子树是轻儿子所在的子树，重子树是重儿子所在的子树。
具体做法
处理轻子树及其子树的答案
处理重子树及其子树的贡献，并不删除贡献
暴力统计所有轻子树及其子树的贡献与上]]></description><category></category></item><item><title><![CDATA[2021杭电多校第二场 1002——I love tree]]></title><link>https://blog.youkuaiyun.com/yezi_coder/article/details/119909852</link><guid>https://blog.youkuaiyun.com/yezi_coder/article/details/119909852</guid><author>yezi_coder</author><pubDate>Wed, 25 Aug 2021 14:04:51 +0800</pubDate><description><![CDATA[题目大意
给你一棵树，有两种操作
1、将路径 uuu 到 vvv 上的点按照与 uuu 的距离，加上 1&nbsp;4&nbsp;9⋯i21 \ 4 \  9 \cdots i^21&nbsp;4&nbsp;9⋯i2
2、问节点 xxx 的值为多少
解题思路
树链剖分  + 线段树
首先我们可以进行一个树链剖分，这样便于处理操作1。
对于操作1，我们首先找出 uuu 与 vvv 的 lcalcalca
对于树链 uuu 到 lcalcalca，我们每个节点所加的值为
(dep[t]−dep[u]+1)2(d]]></description><category></category></item><item><title><![CDATA[dfs序与树链剖分]]></title><link>https://blog.youkuaiyun.com/yezi_coder/article/details/119898376</link><guid>https://blog.youkuaiyun.com/yezi_coder/article/details/119898376</guid><author>yezi_coder</author><pubDate>Tue, 24 Aug 2021 22:01:45 +0800</pubDate><description><![CDATA[dfs序
dfs序是对于一棵树而言，我们dfs的顺序。
主要目的是用于对一棵树上的结点形成一个数组，可以用于建线段树等操作。
在dfs序中，每个节点只出现一次（欧拉序每个节点出现两次）。

比如者一棵树的dfs序为 ABCDEF
时间戳
每个节点第一次被访问的时间
dfs序的性质
父节点的时间戳小于子节点的时间戳
树链剖分
可以解决的问题
对于树上两个节点 u,vu, vu,v
1、将路径 uuu 到 vvv 上的点都加上一个值
2、求路径  uuu 到 vvv 所有点的权值和
3、将节点 uuu 为根的子]]></description><category></category></item><item><title><![CDATA[2021牛客多校第三场 B——Black and white]]></title><link>https://blog.youkuaiyun.com/yezi_coder/article/details/119897734</link><guid>https://blog.youkuaiyun.com/yezi_coder/article/details/119897734</guid><author>yezi_coder</author><pubDate>Tue, 24 Aug 2021 20:11:58 +0800</pubDate><description><![CDATA[题目大意
给你一个 n×mn \times mn×m 的矩形，每填一个格子都有一个花费，当你把一个矩形四个角中任意三个角填上了，另外一个角自动填上，问你最小花费是多少
解题思路
首先我们肯定是从花费小的开始填，我们可以维护一个并查集。当一个点被填上之后，把这个点所在的行列都加入到一个并查集中。当我们要填一个点的时候，如果这个点的行列在同一个并查集中，说明这个点是可以自动被填上的。
Code
#include &lt;bits/stdc++.h&gt;
#define ll long long
#defin]]></description><category></category></item><item><title><![CDATA[2021杭电多校第二场 1004——I love counting]]></title><link>https://blog.youkuaiyun.com/yezi_coder/article/details/119880045</link><guid>https://blog.youkuaiyun.com/yezi_coder/article/details/119880045</guid><author>yezi_coder</author><pubDate>Mon, 23 Aug 2021 23:37:27 +0800</pubDate><description><![CDATA[题目大意
给你 nnn 个数的数列 vvv，有 mmm 次询问，询问 [l,r][l, r][l,r] 内满足 v⨁a≤bv \bigoplus a \leq bv⨁a≤b，不同的 vvv 有多少个
解题思路
莫队分块
分块大小 k=nk = \sqrt nk=n​
我们将询问按区间左端点分块，然后排序，先按块号排，如果块号相同按右端点升序排。
然后我们将 vvv 数组分块。
我们如何统计答案呢？我们用桶来统计数是否出现过。
我们对于每一个询问的区间从高位到地位考虑 bbb
我们记录一个变量 sss 使得我]]></description><category></category></item><item><title><![CDATA[2021牛客多校第二场 L——WeChat Walk]]></title><link>https://blog.youkuaiyun.com/yezi_coder/article/details/119874849</link><guid>https://blog.youkuaiyun.com/yezi_coder/article/details/119874849</guid><author>yezi_coder</author><pubDate>Mon, 23 Aug 2021 18:13:06 +0800</pubDate><description><![CDATA[题目大意
给定 nnn 个人之间的好友关系，每次单点增加一个人的步数，求每个人在自己好友列表保持冠军的时间
解题思路
分块
我们将 nnn 个点分为大小点，定义 s=ms = \sqrt ms=m​，对于度数大于 sss 的点我们称为大点，对于度数小于等于 sss 的点称为小点。可知，大点个数不超过 sss。
对于小点的更新，我们直接暴力更新，复杂度不超过 m\sqrt mm​
对于大点的更新，大点所连大点我们可以直接更新，复杂度也不超过 m\sqrt mm​
对于大点所连大点，我们考虑开一个数组 c[i]]]></description><category></category></item></channel></rss>