<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[WAautomaton的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/WAautomaton</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; WAautomaton]]></copyright><item><title><![CDATA[CTT2020 游记]]></title><link>https://blog.youkuaiyun.com/WAautomaton/article/details/114904572</link><guid>https://blog.youkuaiyun.com/WAautomaton/article/details/114904572</guid><author>WAautomaton</author><pubDate>Tue, 16 Mar 2021 23:17:53 +0800</pubDate><description><![CDATA[不要问我这只鸽子为啥要更四个月前的东西，非要问的话大概是因为被张神写游记的热情深深打动了吧！!1
其实还有个主要原因就是感觉自己的 OI 水平似乎每天都要下降不少，感觉过不了多久可能就见底了……所以希望谨以此文，可能是最后一次，怀念自己曾经和 OI 的美妙缘分吧（泪目）
Day0
做火车去北京的一天，最深的印象就是自己的座位被安排在 djq 和 ___ 之间！！！我怎能甘心俯首称电灯泡，遂把自己的位置和 djq swap 了一下。
火车上我只好盯着他们讨论 PVZ，讨论森林冰火人已经有多少个版本被他们一起刷]]></description><category></category></item><item><title><![CDATA[神经网络初探（BP 算法、手写数字识别）]]></title><link>https://blog.youkuaiyun.com/WAautomaton/article/details/108542706</link><guid>https://blog.youkuaiyun.com/WAautomaton/article/details/108542706</guid><author>WAautomaton</author><pubDate>Fri, 11 Sep 2020 22:52:13 +0800</pubDate><description><![CDATA[神经网络的结构就不说了，网上一大堆……
这次手写数字识别采用的是 sigmoid 激活函数和 MSE 损失函数。
虽然网上说这种方式比不上 softmax 激活函数和交叉熵损失函数，后者更适合用于分类，但是实测前者可以达到 97.4% 的准确率，后者本机只能达到 92% 的准确率（固定学习率不加任何优化）。
这里就记录一下计算梯度的方式。
对于最后一层，记 did_idi​ 表示点 iii 激活之前的值，vi=sigmoid(di)=11+e−div_i=\text{sigmoid}(d_i)=\frac{]]></description><category></category></item><item><title><![CDATA[NOI 2020 游记]]></title><link>https://blog.youkuaiyun.com/WAautomaton/article/details/108113186</link><guid>https://blog.youkuaiyun.com/WAautomaton/article/details/108113186</guid><author>WAautomaton</author><pubDate>Thu, 20 Aug 2020 21:06:44 +0800</pubDate><description><![CDATA[Day -1
到了长沙一中，发现和陈太阳分到了一个宿舍，rp++，然后和舍友颓了一个晚上。
Day 0
上午开幕式，差点没位置坐，暗示我今年没了？
下午笔试，好像有几个笔试题库上没有的题。不过这是小问题，都很水，NOI 唯一能 AK 的一场比赛。
最后晚上和舍友聊了聊，还是颓了一个晚上，打了个平衡树睡觉了。
Day 1
开题，过了大概 20min 左右发现这 T1 好像是个裸矩阵乘法，开始码。
大致 1h 的时候码完（键盘实在是不习惯，码了很久）
然后自闭的时候到了，我写了大致形如下面的代码：
for (i]]></description><category></category></item><item><title><![CDATA[HDU 2020 多校第七场 游记]]></title><link>https://blog.youkuaiyun.com/WAautomaton/article/details/107853952</link><guid>https://blog.youkuaiyun.com/WAautomaton/article/details/107853952</guid><author>WAautomaton</author><pubDate>Tue, 11 Aug 2020 21:14:25 +0800</pubDate><description><![CDATA[队友太强了被带到了 rk1
1001
签到题。枚举区间长度，若干个区间求和的话，就相当于第一个数乘 1，第二个数乘 2……然后中间某一段数字乘 kkk（区间长度），末尾再依次乘 k−1k-1k−1 到 111。直接各种前缀和搞搞就行，复杂度 O(n)O(n)O(n)。
#include&lt;bits/stdc++.h&gt;
using namespace std;
const int mod=1e9+7,maxn=300000;
int test,n,a[222222],ans;
int inv[333]]></description><category></category></item><item><title><![CDATA[最小内向森林算法（HDU 6811 Joyful Party）]]></title><link>https://blog.youkuaiyun.com/WAautomaton/article/details/107922373</link><guid>https://blog.youkuaiyun.com/WAautomaton/article/details/107922373</guid><author>WAautomaton</author><pubDate>Mon, 10 Aug 2020 21:49:32 +0800</pubDate><description><![CDATA[题目链接
题目大意
给定一个 nnn 个点的有向图，连边方式是从点 xxx 向区间 [l,r][l,r][l,r] 中的所有点连一条权值为 ccc 的有向边，求该图不小于 KKK 棵树的最大内向森林权值。
题解
首先把边权取反，转化成最小内向森林问题。
最小内向森林
注意到最小内向森林权值关于树的个数是个凸函数。于是二分斜率 kkk，建一个新点 TTT，所有点向 TTT 连一条权值为 kkk 的边，然后求最小树形图即可。最小树形图算法是可以使用可并堆（线段树合并）优化到 O(Elog⁡E)O(E \log ]]></description><category></category></item><item><title><![CDATA[HDU 2020 多校第四场 游记]]></title><link>https://blog.youkuaiyun.com/WAautomaton/article/details/107696587</link><guid>https://blog.youkuaiyun.com/WAautomaton/article/details/107696587</guid><author>WAautomaton</author><pubDate>Thu, 30 Jul 2020 19:15:34 +0800</pubDate><description><![CDATA[这次 1006 挂了 5 发，太惨了 /ll，罚时罚到了 rk7……
1001
毒瘤三维计算几何，不看不看
1002
签到题，显然每个武器打死对方所用的时间都能算出来，O(n2)O(n^2)O(n2) 枚举即可。
#include &lt;bits/stdc++.h&gt;
typedef long long LL;
using namespace std;

const int MAXN = 1005;
int aa[MAXN], dd[MAXN], ta[MAXN], T, n;

int main()]]></description><category></category></item><item><title><![CDATA[HDU 2020 多校第三场 游记]]></title><link>https://blog.youkuaiyun.com/WAautomaton/article/details/107641451</link><guid>https://blog.youkuaiyun.com/WAautomaton/article/details/107641451</guid><author>WAautomaton</author><pubDate>Tue, 28 Jul 2020 21:50:00 +0800</pubDate><description><![CDATA[这次成功靠队友 AK 了，罚时 rk2，orz 队友们！
1001
套路题，首先考虑怎么算某个字符串 sss 第一次出现的期望步数。考虑 PGF，定义 F(x)F(x)F(x) 为第 iii 步时恰好结束的方案，G(x)G(x)G(x) 为第 iii 步时还未结束的方案。则列出方程：
F+G=xG+1G⋅xn26n=∑i∈border(s)F⋅xn−i26n−iF+G=xG+1 \\
G \cdot \frac{x^n}{26^n}=\sum_{i \in border(s)}F \cdot \frac{x]]></description><category></category></item><item><title><![CDATA[HDU 2020 多校第二场 游记]]></title><link>https://blog.youkuaiyun.com/WAautomaton/article/details/107584307</link><guid>https://blog.youkuaiyun.com/WAautomaton/article/details/107584307</guid><author>WAautomaton</author><pubDate>Sat, 25 Jul 2020 21:43:50 +0800</pubDate><description><![CDATA[咕了整整一天才来写 2333
这次邓老师没来 /kk，不过打的还算不错，可惜还是有一题没调出来，不然就是 11 题队了 /ll
1001
题意好像有点奇怪，不过 djq 还是一眼看对了，拿了这题一血。
题解
看对题就没啥好说的了，裸签到题，把点按权值从大到小排序，不断加入点，用并查集维护当前连通块个数，乘一下相邻两个权值的差加起来即可。复杂度 O(nlog⁡n)O(n \log n)O(nlogn)。
code by djq
#include &lt;bits/stdc++.h&gt;
#define re]]></description><category></category></item><item><title><![CDATA[HDU 2020 多校第一场 1007 Hunting Monsters]]></title><link>https://blog.youkuaiyun.com/WAautomaton/article/details/107527989</link><guid>https://blog.youkuaiyun.com/WAautomaton/article/details/107527989</guid><author>WAautomaton</author><pubDate>Thu, 23 Jul 2020 11:02:57 +0800</pubDate><description><![CDATA[链接
吐槽
我开场第一个开的题就是这个，误判断以为是个我不会的中档贪心题，结果扔给 djq 都难以想到做法，然后就自闭了 2333
题解
真·hard 神题，给出题人点赞！接下来大概就是把英文题解翻译了一遍吧，顺便补了一点证明。
观察
最初始的贪心部分，相信大家都想到了。我们把怪物分成 Ai&gt;BiA_i &gt; B_iAi​&gt;Bi​ 和 Ai≤BiA_i \le B_iAi​≤Bi​ 的部分，分别记为集合 S,TS,TS,T，那么有以下性质：

最终方案任意 TTT 集合的元素必然在 SSS ]]></description><category></category></item><item><title><![CDATA[HDU 2020 多校第一场 游记]]></title><link>https://blog.youkuaiyun.com/WAautomaton/article/details/107523935</link><guid>https://blog.youkuaiyun.com/WAautomaton/article/details/107523935</guid><author>WAautomaton</author><pubDate>Wed, 22 Jul 2020 22:50:42 +0800</pubDate><description><![CDATA[和邓老师、戴老师，以及 JS A 队爷 lqs2015 四排了一场多校，感觉很爽。
可惜的一点就是 1012 的精度问题，最后都没过，说不定是数据问题呢（大嘘）……不然就是 8 题队了。
还有一个可惜的一点就是 1010 djq 的做法被卡常了，也是有点可惜吧。
大概整理一下题目（有些难题未完待续）。
1013 Cookies
链接
吐槽
被邓老师开场秒了 orz……一血
题解
强行二合一题，显然二分可以直接算出第 kkk 个（也可以线性直接算，不过无所谓了），唯一的难度在于求 fff。
好像目前没发现啥好]]></description><category></category></item><item><title><![CDATA[CF 1368G Shifting Dominoes]]></title><link>https://blog.youkuaiyun.com/WAautomaton/article/details/107381706</link><guid>https://blog.youkuaiyun.com/WAautomaton/article/details/107381706</guid><author>WAautomaton</author><pubDate>Thu, 16 Jul 2020 14:18:54 +0800</pubDate><description><![CDATA[题意
有一个 n×mn \times mn×m 的网格上放满了 1×21 \times 21×2 的多米诺骨牌，你可以拿走某个多米诺骨牌，然后让剩下某个多米诺骨牌沿着它的长边移动一格（必须要有空位相邻才能移动），这样会让两个空格的位置产生变化。问最终可以产生多少种不同的两个空格位置。
题解
写了个做法死活过不了样例 3，看到有人写 SegBeats 还以为自己假了，检查了半天，结果是扫描线写挂了……
首先冷静分析一下，把空格看成是独立的点，每次移动多米诺骨牌就相当于把空格沿着多米诺骨牌的长边移动两格。
于是]]></description><category></category></item><item><title><![CDATA[CF 1372F Omkar and Modes]]></title><link>https://blog.youkuaiyun.com/WAautomaton/article/details/107381374</link><guid>https://blog.youkuaiyun.com/WAautomaton/article/details/107381374</guid><author>WAautomaton</author><pubDate>Thu, 16 Jul 2020 14:03:54 +0800</pubDate><description><![CDATA[题意
交互，告诉你一个不降的序列 aaa 长度为 nnn，你可以使用若干次下面的询问：
询问 l,rl,rl,r，返回 [l,r][l,r][l,r] 中的众数 xxx 以及它的出现次数 fff。如果有多个众数，返回最小的那个。
假设数列中有 kkk 个不同的数字（kkk 不告诉你），你需要在 4k4k4k 次询问中求出这个序列。n≤200000n \le 200000n≤200000
题解
没看过官方标算，不知道自己的做法和标算一不一样……
考虑 solve(l,r)solve(l,r)solve(l,r]]></description><category></category></item><item><title><![CDATA[LOJ3315 「ZJOI2020」抽卡]]></title><link>https://blog.youkuaiyun.com/WAautomaton/article/details/107232318</link><guid>https://blog.youkuaiyun.com/WAautomaton/article/details/107232318</guid><author>WAautomaton</author><pubDate>Thu, 09 Jul 2020 17:14:22 +0800</pubDate><description><![CDATA[题意
有 mmm 张卡片，每张卡片上有一个 1∼n1 \sim n1∼n 的数字，数字两两不同。每次随机选择一张卡片（一张卡片可以被多次选择），问期望选多少次，会出现 KKK 个连续的数字。
K≤m≤200000,n≤2mK \le m \le 200000,n \le 2mK≤m≤200000,n≤2m
题解
看到期望选多少次这种东西第一反应是 min-max 容斥，然而做不了……
第二反应是对于 iii，算出 iii 步之后仍然没有出现 KKK 个连续数字的概率，加起来就行。记 fjf_jfj​ 表示从]]></description><category></category></item><item><title><![CDATA[LOJ 3313 「ZJOI2020」序列]]></title><link>https://blog.youkuaiyun.com/WAautomaton/article/details/107217416</link><guid>https://blog.youkuaiyun.com/WAautomaton/article/details/107217416</guid><author>WAautomaton</author><pubDate>Wed, 08 Jul 2020 23:51:44 +0800</pubDate><description><![CDATA[题意
一个长度为 nnn 的序列，你每次可以执行下面三个操作中的一种：

选择一个区间，把区间中的数字 −1-1−1。
选择一个区间，把区间中编号为奇数的数字 −1-1−1。
选择一个区间，把区间中编号为偶数的数字 −1-1−1。

问至少需要多少次操作可以把序列全部变成 0.
n≤100000,T≤10n \le 100000,T \le 10n≤100000,T≤10
题解
不知道有没有什么高妙的贪心或者结论，反正 LP 对偶可以暴力做……（如果有高妙做法请留言教教我 /kel）
简化版
为了方便，我们]]></description><category></category></item><item><title><![CDATA[LOJ 3311 「ZJOI2020」字符串]]></title><link>https://blog.youkuaiyun.com/WAautomaton/article/details/107186568</link><guid>https://blog.youkuaiyun.com/WAautomaton/article/details/107186568</guid><author>WAautomaton</author><pubDate>Tue, 07 Jul 2020 18:14:47 +0800</pubDate><description><![CDATA[这个题刚开始胡了个假做法，导致做完整个题用了一整个下午，我果然还是太菜了……
题意
长度为 nnn 的串，mmm 组询问，求区间本质不同平方串个数。
n,m≤200000n,m \le 200000n,m≤200000
题解
首先有若干个 djq 说早就被普及了的结论，也不一定需要都用上。
引理 1（runs theorem）： run 的个数不超过 n−1n-1n−1。
证明大概是每个 run 的 lyndon 根不交。
引理 2： 每个位置结尾的本原平方串个数为 O(log⁡n)O(\log n)O(l]]></description><category></category></item><item><title><![CDATA[CSP2019 游记]]></title><link>https://blog.youkuaiyun.com/WAautomaton/article/details/103112064</link><guid>https://blog.youkuaiyun.com/WAautomaton/article/details/103112064</guid><author>WAautomaton</author><pubDate>Sun, 17 Nov 2019 20:18:32 +0800</pubDate><description><![CDATA[Day-50 to Day -2
被六校联合训练各种神仙题血虐，天天被吊打，搞得 CSP 都没信心考了……
Day -1
和 G1 的神仙们打了一整天 MC，真的是一整天，还被 dyt 嘲讽说我太颓了（可怜）
Day 0
感觉好虚啊……毕竟自己已经高二了，CSP 再炸就退役了（泪奔）
所以赶紧把模板题打了个遍（什么后缀自动机回文自动机splay左偏树也打了一遍），然后晚上更虚了，赶紧打了一晚上隔膜...]]></description><category></category></item><item><title><![CDATA[NOI2019 机器人（多项式+dp）]]></title><link>https://blog.youkuaiyun.com/WAautomaton/article/details/96825203</link><guid>https://blog.youkuaiyun.com/WAautomaton/article/details/96825203</guid><author>WAautomaton</author><pubDate>Mon, 22 Jul 2019 08:45:45 +0800</pubDate><description><![CDATA[题目链接
题解
首先可以考虑暴力区间 dp，fi,j,kf_{i,j,k}fi,j,k​ 表示区间 [i,j][i,j][i,j] 中，所有数字都不超过 kkk 的方案数。显然可以枚举 lll，使 ∣(l−i)−(j−l)∣≤2|(l-i)-(j-l)| \le 2∣(l−i)−(j−l)∣≤2，fi,j,k=fi,j,k−1+∑lfi,l−1,kfl+1,j,k−1f_{i,j,k}=f_{i,...]]></description><category></category></item><item><title><![CDATA[JSOI2019精准预测（2-SAT+bitset+乱搞）]]></title><link>https://blog.youkuaiyun.com/WAautomaton/article/details/90648044</link><guid>https://blog.youkuaiyun.com/WAautomaton/article/details/90648044</guid><author>WAautomaton</author><pubDate>Tue, 28 May 2019 21:59:03 +0800</pubDate><description><![CDATA[题目链接
题解：
考场上的时候似乎还不太会2-SAT，yy了一个出来还写挂了……
暴力的大概思路就是每个时刻，每个人拆成生死两个点，按照2-SAT连边。注意有隐藏条件，就是人死不能复生。
由于大部分点都是没用的，也就是说只有出现在条件的xxx中的点才需要被使用，当然T+1T+1T+1时刻肯定也要被用到，那么总共就只有2(n+m)2(n+m)2(n+m)个点。
如何判断呢？我们可以两两枚举，判断一个...]]></description><category></category></item><item><title><![CDATA[HNOI2019 DAY2 题解]]></title><link>https://blog.youkuaiyun.com/WAautomaton/article/details/89321741</link><guid>https://blog.youkuaiyun.com/WAautomaton/article/details/89321741</guid><author>WAautomaton</author><pubDate>Mon, 15 Apr 2019 21:45:39 +0800</pubDate><description><![CDATA[校园旅行
题目链接
题解：
这可能是 HNOI2019 里最神的一题了 orz。
首先不难发现一个暴力，记 f(i,j)f(i,j)f(i,j) 表示点对 i,ji,ji,j 之间是否存在回文路径，枚举他们的出边暴力转移即可。初始的时候所有的 f(i,i)f(i,i)f(i,i) 和两个颜色相同且相邻的点 f(a,b)f(a,b)f(a,b) 为 truetruetrue，扔到队列里 bfsbfs...]]></description><category></category></item><item><title><![CDATA[HNOI2019 DAY1 题解]]></title><link>https://blog.youkuaiyun.com/WAautomaton/article/details/89302539</link><guid>https://blog.youkuaiyun.com/WAautomaton/article/details/89302539</guid><author>WAautomaton</author><pubDate>Sun, 14 Apr 2019 21:38:37 +0800</pubDate><description><![CDATA[鱼
题目链接
题解：
容易发现等腰三角形个数似乎是 O(n2)O(n^2)O(n2) 的？于是可以计算出任意两个点作为底边，向两个方向的等腰三角形个数。之后显然枚举中心点，然后把其它点极角排序，算出所有等腰三角形的中垂线，然后再枚举一个作为鱼尾，二分+前缀和查询即可。复杂度 O(n2logn)O(n^2logn)O(n2logn)。
#include &lt;bits/stdc++.h&gt;
u...]]></description><category></category></item></channel></rss>