<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Marcus]]></title><description><![CDATA[你白银觉得是我的锅，那就是我的锅：）]]></description><link>https://blog.youkuaiyun.com/Fate_Zero_Saber</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Fate_Zero_Saber]]></copyright><item><title><![CDATA[2019牛客暑期多校训练营（第一场）H-XOR]]></title><link>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/103961243</link><guid>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/103961243</guid><author>Fate_Zero_Saber</author><pubDate>Mon, 13 Jan 2020 17:27:22 +0800</pubDate><description><![CDATA[题意：
给n个数，对某一个数的子集，如果这个子集的抑或和为0，就给ans加上这个子集大小，求ans
范围：
链接：https://ac.nowcoder.com/acm/contest/881/H
题解：
观察题目
注意到①：对于每一个合法的子集，我们要加的是这个子集的大小而不是1，这启示我们可以统计每一个数都计算一次这个数在多少个合法的子集（也就是抑或和为0的子集）中出现的次数
我们可以先把这n...]]></description><category></category></item><item><title><![CDATA[【杜教筛】【GDOI2018Day1模拟4.17】呼吸决定]]></title><link>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79997442</link><guid>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79997442</guid><author>Fate_Zero_Saber</author><pubDate>Wed, 18 Apr 2018 21:48:30 +0800</pubDate><description><![CDATA[题意

求∑ni=1μ(i)∗im∑i=1nμ(i)∗im\sum_{i=1}^n μ(i)*i^m 
m&amp;lt;=2e5 
n&amp;lt;=1e9

题解

设pi=μ(i)∗im|si=∑ni=1pipi=μ(i)∗im|si=∑i=1npipi= μ(i)*i^m |si=\sum_{i=1}^n pi，现在尝试让p卷一个g（狄利克雷卷积）

∑ni=1(s∗g)(i)=∑ni=1∑d|ip(i...]]></description><category></category></item><item><title><![CDATA[HNOI2018D1T2 转盘]]></title><link>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79963303</link><guid>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79963303</guid><author>Fate_Zero_Saber</author><pubDate>Mon, 16 Apr 2018 17:10:44 +0800</pubDate><description><![CDATA[题意

可以选定一个初始位置，每一个时间可以往后走一步（是一个圆）或者不走，每一个位置有一个出现物品的时间点，如果当前所在位置的物品已经出现则可以将其拿走，求最少要多久可以拿走所有的物品



题解

首先对于一个固定的起点，一定有一种方法使得往下一个点走的次数恰好为n-1 
我们可以先任意选择一个最大值Ti，然后我们可以随便选择一个起点，依次处理每一个位置，这样肯定是最优解之一，如果有一个更优的...]]></description><category></category></item><item><title><![CDATA[jzoj5643【NOI2018模拟4.10】最小代价]]></title><link>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79888140</link><guid>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79888140</guid><author>Fate_Zero_Saber</author><pubDate>Tue, 10 Apr 2018 21:21:01 +0800</pubDate><description><![CDATA[题目

给你一个n个点m条边无向图，每一个点有两个权a，b，现在要你选出恰好k个点，其中这k个点可以形成恰好1个联通块，对于每一个这样的选取方案，代价是max{a}+max{b}，问最小的代价 
其中n&amp;lt;=3e5,m&amp;lt;=5e5



题解

大概的思路就是把每一条边都赋一个边权，把问题转化成选k-1条边，然后就可以lct（快速的求子树的大小）了

需要注意的是lct中不应该连的边不要乱...]]></description><category></category></item><item><title><![CDATA[JSOI2018 DAY 2 T2 林克卡特树]]></title><link>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79874091</link><guid>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79874091</guid><author>Fate_Zero_Saber</author><pubDate>Mon, 09 Apr 2018 22:38:49 +0800</pubDate><description><![CDATA[题意

自己去找吧 
转化之后大概就是给你一个有n个点的值，有边权，然后要你选出k+1条不相交的链，问选择的所有边的和的最大值



题解

先考虑一下60分，k是&amp;lt;=100的，那么我们不妨设f[i][j][0/1/2]表示当前我已经做完了i的子树，点i的度数是0/1/2，对于这一颗子树我们最多能选择的边权和是多少 
现在题目的关键是要恰好选择k+1条不相交的链，而选多了选少了答案都可能会变...]]></description><category></category></item><item><title><![CDATA[min_25 JZOJ5594 最大真因数]]></title><link>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79705580</link><guid>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79705580</guid><author>Fate_Zero_Saber</author><pubDate>Mon, 26 Mar 2018 22:33:22 +0800</pubDate><description><![CDATA[Time Limits: 2000 ms  Memory Limits: 524288 KB  Detailed Limits      Downloads

Description

一个合数的真因数是指这个数不包括其本身的所有因数，例如6 的正因数有 
1; 2; 3; 6，其中真因数有1; 2; 3。一个合数的最大真因数则是这个数的所有真因数中最大 
的一个，例如6 的最大真因数为3。 
给...]]></description><category></category></item><item><title><![CDATA[【NOI2018模拟3.11】派对]]></title><link>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79534285</link><guid>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79534285</guid><author>Fate_Zero_Saber</author><pubDate>Mon, 12 Mar 2018 22:41:43 +0800</pubDate><description><![CDATA[题目

Time Limits: 2000 ms  Memory Limits: 262144 KB 
Description

你想举行一场派对，有m个朋友会来参加。 
你有n个房间，由n-1条道路连接，形成一个树结构。你需要给每个朋友安排一个房间，满足以下条件： 
每个朋友住在一个单独的房间； 
存在一个房间(不一定要有人)，使得每个朋友到它的距离不超过k。求方案数对998244353取模的结...]]></description><category></category></item><item><title><![CDATA[agc009d]]></title><link>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79418133</link><guid>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79418133</guid><author>Fate_Zero_Saber</author><pubDate>Thu, 01 Mar 2018 22:30:06 +0800</pubDate><description><![CDATA[题目大意

类似点分治过程，只不过分治中心任意选择。  
求点分树最小深度。



题解

首先有一个很简单的东西：两个在点分树里深度相等的点的路径之间一定有一个在点分树中深度更小的点，并且只要有就是一个可行的方案 
那么我们直接设一个f[x]，这是一个二进制，表示当前x的子树中有多少种深度，某一个拥有这个深度的点到x的路径中没有深度更小的点，如果有对应位置就是1 
因为我们不知道最终有多少层，所...]]></description><category></category></item><item><title><![CDATA[arc074f]]></title><link>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79415307</link><guid>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79415307</guid><author>Fate_Zero_Saber</author><pubDate>Thu, 01 Mar 2018 17:24:39 +0800</pubDate><description><![CDATA[题目大意

给你一个n*m网格图，有起点荷叶和终点荷叶，有中转荷叶，其他的格子没东西，一个荷叶可以跳到同一行或者列的另一个荷叶。问最多删掉几个中转荷叶能让起点终点不连通。如果不行输出-1.  
n,m&amp;lt;=100



题解

中出了一个叛徒题目？？？ 
裸的最小割？？？ 
考虑到是删点我们直接把一个点拆成两个点，中间连一条流量为1的单向边就好了



#include&amp;lt;iostream...]]></description><category></category></item><item><title><![CDATA[border [arc077f]]]></title><link>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79414218</link><guid>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79414218</guid><author>Fate_Zero_Saber</author><pubDate>Thu, 01 Mar 2018 16:25:50 +0800</pubDate><description><![CDATA[题目大意

定义一个f(s)为将字符串s后面加上长度最小的串，使得新串仍时一个形如AA的串。在操作10^18次后求[L,R]中各个字母出现的次数。保证原串形如AA。



题解

首先操作可以看做是操作无限次 
我们考虑每一次后面新添加的字符串T满足什么样的条件 
一开始的S是形如s1s2s3...sns1s2s3...sns1s2s3...sns1s2s3...sns_1s_2s_3...s_n...]]></description><category></category></item><item><title><![CDATA[agc018d]]></title><link>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79412577</link><guid>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79412577</guid><author>Fate_Zero_Saber</author><pubDate>Thu, 01 Mar 2018 14:59:51 +0800</pubDate><description><![CDATA[题目大意

给你一棵树，然后你需要找到一个n的排列，使得  
相邻两个数在树中的距离和最大，输出这个距离



题解

不妨先单独的去考虑一条边，它把这一颗树分成了两个部分，我们经过这条边最多的次数就是其中点数较小的那一个部分 
假设树只有一个重心，如果我们把起点放到重心处，每一次我们到的点都跨过重心，那么我们惊喜的发现除了重心到终点的路径少走了一次其他的点都走满了，而如果我们从其他的点开始一定不...]]></description><category></category></item><item><title><![CDATA[agc016d]]></title><link>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79406350</link><guid>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79406350</guid><author>Fate_Zero_Saber</author><pubDate>Wed, 28 Feb 2018 22:20:03 +0800</pubDate><description><![CDATA[题目大意

现在一共有n个数，每一次你可以把其中一个数换成整个序列的抑或和，有一个目标序列，问最少多少步可以转化成目标序列，若无解输出-1

题解

这一题的操作本质上就是一开始序列中有n个数，然后你手上有这n个数的抑或和，每一次你可以把手上的数和序列中的一个数交换

那么我们实际上就是要求有多少个置换，答案就是置换个数加上每一个置换的大小，如果某一个置换的其中一个目标值为一开始的抑或和，那么答案...]]></description><category></category></item><item><title><![CDATA[agc009e]]></title><link>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79405467</link><guid>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79405467</guid><author>Fate_Zero_Saber</author><pubDate>Wed, 28 Feb 2018 21:03:00 +0800</pubDate><description><![CDATA[题目大意

给你n个0，m个1，和一个k。每次操作你选择k个数，擦去这k个数并加入他们的平均数（1个），问最后会有多少种不同的实数。  
n,m,k&amp;lt;=2000

题解

这题感觉好难啊。。。 
首先要进行一波神奇的转换，可以想象现在有一颗k叉树，然后一共有n+m个叶子节点，其中有n个为1，m个为0，每一个非叶子节点的值为所有儿子的平均数，问最后根节点有多少种不同的取值方案

这两者显然是本...]]></description><category></category></item><item><title><![CDATA[arc064f]]></title><link>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79393375</link><guid>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79393375</guid><author>Fate_Zero_Saber</author><pubDate>Tue, 27 Feb 2018 21:12:36 +0800</pubDate><description><![CDATA[题目大意

给出n,m.问有多少个长度为n的序列a满足:1&amp;lt;=a[i]&amp;lt;=m,并且序列a经过若干次循环左移能变成回文. 
i.e:1,1,2,2 左移一次-&amp;gt; 1,2,2,1. 
 n,m&amp;lt;=1e9



题解

先考虑如果没有旋转的限制的情况 
显然就是(n/2)m(n/2)m(n/2)^m，旋转的话理论上是乘n，但是显然会算重 
算重的原因就是因为几个回文串可以通过题目...]]></description><category></category></item><item><title><![CDATA[arc068f]]></title><link>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79391028</link><guid>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79391028</guid><author>Fate_Zero_Saber</author><pubDate>Tue, 27 Feb 2018 17:20:18 +0800</pubDate><description><![CDATA[题目大意

现在有一个1-n的序列，我们将它依次加入一个双端的序列，加完之后我们再每一次选择双端序列中的左端点/右端点，选择一个将对应的数删除并加入一个删除序列中，问最后有多少个合法的删除序列满足第k个是1



题解

好像和很多dalao的解法有一些出入

观察一下一开始的序列，发现是一个v型的东西，并且1就是v的中间最低那一个点 
那么我们的删除序列的1-k位就是一个可以分解为1个或者2个单...]]></description><category></category></item><item><title><![CDATA[arc072e]]></title><link>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79389602</link><guid>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79389602</guid><author>Fate_Zero_Saber</author><pubDate>Tue, 27 Feb 2018 15:58:51 +0800</pubDate><description><![CDATA[题目大意　

有一个人要去直线上lm远处的地方，他会依次给他的机器发出n个指令。第i个指令为di。他的机器收到一个指令x后，如果向目的地方向前进xm后比当前离目的地更近，就会向前移动xm，否则什么都不会做。

现在，给你q个询问，每一次给出一个x，问你能不能改变dx，使得这个人不能到达目的地。你可以决定把dx改成什么数。

题解

第一次看这一道题的时候一直在想一些猎奇做法，什么都想不出来，然后就...]]></description><category></category></item><item><title><![CDATA[arc072f]]></title><link>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79389021</link><guid>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79389021</guid><author>Fate_Zero_Saber</author><pubDate>Tue, 27 Feb 2018 15:30:19 +0800</pubDate><description><![CDATA[题目大意

你有一个大小为L的容器，每天早上都会有一个已知温度，已知体积的水到容器里面，但是这个容器是会爆的，为了不让他爆，每一天的晚上你都可以放一些水，求第n天时，在容器满容量的前提下，可以达到的最高温度是多少（每一天给你的水必须照单全收） 
温度变化的公式t1∗v1+t2∗v2v1+v2t1∗v1+t2∗v2v1+v2\frac{t1*v1+t2*v2}{v1+v2}

题解

观察一下这个温...]]></description><category></category></item><item><title><![CDATA[agc017f]]></title><link>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79385716</link><guid>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79385716</guid><author>Fate_Zero_Saber</author><pubDate>Tue, 27 Feb 2018 11:19:48 +0800</pubDate><description><![CDATA[题目大意

现在你要写出m个长度为n的二进制序列，有一些形如“第i个的第j位必须为x”的限制 
对于后面的二进制要&amp;gt;=前面的任意一个二进制

题解

每一个二进制只和和前面的一个二进制有关系，所以有一个很暴力的做法，就是状压前面的一个二进制然后枚举当前的二进制再判断是否合法，这样是22n22n2^{2n}级别的

如何更进一步

我们考虑从本质上思考如何判断两个二进制哪一个大哪一个小

前面...]]></description><category></category></item><item><title><![CDATA[agc013d]]></title><link>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79383407</link><guid>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79383407</guid><author>Fate_Zero_Saber</author><pubDate>Tue, 27 Feb 2018 08:27:00 +0800</pubDate><description><![CDATA[题目大意

一开始有一个盒子，里面有n个球（黑或白，但是具体的数量我们并不清楚）然后进行m轮这样的操作

1：拿一个球，放到序列中 
2：放一个黑球，一个白球 
3：拿一个球，放到序列中

问最后的序列的情况数



题解

那么每一次就有00,01,10,11四种情况，并且四种情况都对当前盒子里面的球的数量都有限制 
一个困扰我们的问题是一开始盒子里面球的数量是不清楚的，但是发现我们要求的东西和...]]></description><category></category></item><item><title><![CDATA[arc075f]]></title><link>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79382007</link><guid>https://blog.youkuaiyun.com/Fate_Zero_Saber/article/details/79382007</guid><author>Fate_Zero_Saber</author><pubDate>Mon, 26 Feb 2018 21:32:09 +0800</pubDate><description><![CDATA[题目大意

定义rev(n)为n翻转后的那个数，比如123变成321 
现在给出一个d(d&amp;lt;=1e9)，求n+d=rev(n)的数的个数



题解

一个关键的问题是n似乎是可以无限大的，所以肯定要先确定一个n的上界

观察原式： 
n−rev(n)=dn−rev(n)=dn-rev(n)=d 
设其位数为s，n的第i位为p[i]（第一位是个位） 
那么原式等于 
∑s−1i=0(p[i]...]]></description><category></category></item></channel></rss>