<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ayw1069的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ayw1069</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ayw1069]]></copyright><item><title><![CDATA[LibreOJ2095 - 「CQOI2015」选数]]></title><link>https://blog.youkuaiyun.com/ayw1069/article/details/101317406</link><guid>https://blog.youkuaiyun.com/ayw1069/article/details/101317406</guid><author>ayw1069</author><pubDate>Mon, 28 May 2018 20:22:00 +0800</pubDate><description><![CDATA[Portal
Description
给出\(n,k,L,R(\leq10^9)\)，求从\([L,R]\)中选出\(n\)个可相同有顺序的数使得其gcd为\(k\)的方案数。
Solution
记\(f(x)\)表示gcd为\(x\)时的方案数，那么我们要求的就是\(f(k)\)。设\(F(x)=\sum_{x|d}f(d)\)表示gcd为\(x\)的倍数时的方案数，即\(F(x)=(...]]></description><category></category></item><item><title><![CDATA[Codeforces - Avito Code Challenge 2018]]></title><link>https://blog.youkuaiyun.com/ayw1069/article/details/101317402</link><guid>https://blog.youkuaiyun.com/ayw1069/article/details/101317402</guid><author>ayw1069</author><pubDate>Mon, 28 May 2018 08:46:00 +0800</pubDate><description><![CDATA[Portal
A. Antipalindrome
暴力。
B. Businessmen Problems
暴力。
C. Useful Decomposition
居然不是C打头的？！
将一棵树划分成若干条边不相交的路径，使得任意两个路径均有交点。
易知树上的两条路径最多有一个交点。若有三条路径两两相交，则必形成三个交点或一个交点。设路径1与路径2交于\(v_1\)，路径1与路径3交于\(...]]></description><category></category></item><item><title><![CDATA[LibreOJ2241 - 「CQOI2014」排序机械臂]]></title><link>https://blog.youkuaiyun.com/ayw1069/article/details/101317404</link><guid>https://blog.youkuaiyun.com/ayw1069/article/details/101317404</guid><author>ayw1069</author><pubDate>Sun, 27 May 2018 22:35:00 +0800</pubDate><description><![CDATA[Portal
Description
给出一个\(n(n\leq10^5)\)个数的序列\(\{a_n\}\)，对该序列进行\(n\)次操作。若在第\(i\)次操作前第\(i\)小的数在\(p_i\)位置，则翻转区间\([i,p_i]\)。易知\(n\)次操作后序列会变为升序。求出每一次的\(p_i\)。
Solution
splay。
题里的\(a_i\)是会重复的...所以先离散化一...]]></description><category></category></item><item><title><![CDATA[LibreOJ2044 - 「CQOI2016」手机号码]]></title><link>https://blog.youkuaiyun.com/ayw1069/article/details/101317400</link><guid>https://blog.youkuaiyun.com/ayw1069/article/details/101317400</guid><author>ayw1069</author><pubDate>Sat, 26 May 2018 16:04:00 +0800</pubDate><description><![CDATA[Portal
Description
给出两个十一位数\(L,R\)，求\([L,R]\)内所有满足以下两个条件的数的个数。

出现至少\(3\)个相邻的相同数字；
不能同时出现\(4\)和\(8\)。

Solution
数位DP。
首先将问题转换成\(solve(R)-solve(L)\)的形式，这样只需要求不超过\(n\)的满足条件的数的个数。
定义\(dp[k][x][f_1][...]]></description><category></category></item><item><title><![CDATA[LibreOJ2043 - 「CQOI2016」K 远点对]]></title><link>https://blog.youkuaiyun.com/ayw1069/article/details/101317403</link><guid>https://blog.youkuaiyun.com/ayw1069/article/details/101317403</guid><author>ayw1069</author><pubDate>Sat, 26 May 2018 14:36:00 +0800</pubDate><description><![CDATA[Portal
Description
给出平面上的\(n(n\leq10^5)\)个整点，求在欧几里得距离下第\(k\)远的点对之间的距离。
Solution
k-d树+堆。
用小根堆维护当前找到的第\(k\)大，然后以堆顶元素为基准在k-d树上搜索即可。搜索到一个新值\(d\)时，将其与堆顶元素比较，若大于堆顶元素则弹出堆顶并加入\(d\)。
Code
//「CQOI2016」K 远点...]]></description><category></category></item><item><title><![CDATA[LibreOJ2045 - 「CQOI2016」密钥破解]]></title><link>https://blog.youkuaiyun.com/ayw1069/article/details/101317398</link><guid>https://blog.youkuaiyun.com/ayw1069/article/details/101317398</guid><author>ayw1069</author><pubDate>Sat, 26 May 2018 12:44:00 +0800</pubDate><description><![CDATA[Portal
Description
给出三个正整数\(e,N,c(\leq2^{62})\)。已知\(N\)能表示成\(p\cdot q\)的形式，其中\(p,q\)为质数。计算\(r=(p-1)(q-1),ed\equiv 1 \pmod r\)，求\(c^d \bmod N\)。
Solution
其实主要就是一件事：分解大数\(N\)。这里要用到一个叫做Pollard's Rho...]]></description><category></category></item><item><title><![CDATA[LibreOJ2042 - 「CQOI2016」不同的最小割]]></title><link>https://blog.youkuaiyun.com/ayw1069/article/details/101317401</link><guid>https://blog.youkuaiyun.com/ayw1069/article/details/101317401</guid><author>ayw1069</author><pubDate>Fri, 25 May 2018 11:45:00 +0800</pubDate><description><![CDATA[Portal
Description
给出一个给出一个\(n(n\leq850)\)个点\(m(m\leq8500)\)条边的无向图。定义\(cut(s,t)\)等于\(s,t\)的最小割的容量，求在所有\(cut(s,t)\)中不同的值有多少个。
Solution
有一个我也想不好为什么的性质：若\(s,t\)的最小割将原图划分成\(S,T\)两个集合，那么\(\forall u\in...]]></description><category></category></item><item><title><![CDATA[LibreOJ2097 - 「CQOI2015」任务查询系统]]></title><link>https://blog.youkuaiyun.com/ayw1069/article/details/101317396</link><guid>https://blog.youkuaiyun.com/ayw1069/article/details/101317396</guid><author>ayw1069</author><pubDate>Fri, 25 May 2018 11:10:00 +0800</pubDate><description><![CDATA[Portal
Description
给出\(n(n\leq10^5)\)个任务，和总时间范围\(m(m\leq10^5)\)。每个任务有开始/结束时间\(s_i,e_i(1\leq s_i \leq e_i \leq m)\)和优先级\(p_i(p_i\leq10^9)\)。接下来\(m\)个询问，每次询问在时刻\(t_i\)时优先级前\(k\)大的任务的优先级之和，若\(k\)大于此...]]></description><category></category></item><item><title><![CDATA[洛谷P4175 - [CTSC2008]网络管理]]></title><link>https://blog.youkuaiyun.com/ayw1069/article/details/101317397</link><guid>https://blog.youkuaiyun.com/ayw1069/article/details/101317397</guid><author>ayw1069</author><pubDate>Fri, 25 May 2018 10:54:00 +0800</pubDate><description><![CDATA[Portal
Description
给出一棵\(n(n\leq8\times10^4)\)个点的带点权的树，进行\(m(m\leq8\times10^4)\)次操作，操作有两种：

修改一个点的点权。
询问路径\((u,v)\)上第\(k\)大的点权。若路径上的点不足\(k\)个输出invalid request!。

Solution
带修改的可持久化线段树。
首先对于每个节点\(u...]]></description><category></category></item><item><title><![CDATA[POJ2888 - Magic Bracelet]]></title><link>https://blog.youkuaiyun.com/ayw1069/article/details/101317394</link><guid>https://blog.youkuaiyun.com/ayw1069/article/details/101317394</guid><author>ayw1069</author><pubDate>Fri, 25 May 2018 09:28:00 +0800</pubDate><description><![CDATA[Portal
Description
用\(m(m\leq10)\)种颜色给一个\(n(n\leq10^9)\)个点的环染色，其中有\(k\)对颜色不能相邻。求在旋转同构下本质不同的方案数，对\(9973\)取模。
Solution
设\(f(x)\)表示用\(m\)种颜色给一个\(x\)个点的环染色的在满足约束下的方案数。那么
\[\begin{align*}
n\cdot ans&a...]]></description><category></category></item><item><title><![CDATA[POJ1286 - Necklace of Beads]]></title><link>https://blog.youkuaiyun.com/ayw1069/article/details/101317395</link><guid>https://blog.youkuaiyun.com/ayw1069/article/details/101317395</guid><author>ayw1069</author><pubDate>Thu, 24 May 2018 22:48:00 +0800</pubDate><description><![CDATA[Portal
Description
给出一个正整数\(n(n\leq23)\)，求用三种颜色对一个\(n\)个点的环染色的方案数。如果两种方案能够通过旋转/翻转来得到，则视为一种方案（即旋转同构，翻转同构）。
Solution
Polya裸题。
群\(G\)的由\(n\)个旋转置换和\(n\)个翻转置换构成。考虑每个置换的轮换数。
对于顺时针旋转\(x\)个点的一个旋转置换，其轮换数为...]]></description><category></category></item><item><title><![CDATA[Codeforces834D - The Bakery]]></title><link>https://blog.youkuaiyun.com/ayw1069/article/details/101317390</link><guid>https://blog.youkuaiyun.com/ayw1069/article/details/101317390</guid><author>ayw1069</author><pubDate>Thu, 24 May 2018 11:02:00 +0800</pubDate><description><![CDATA[Portal
Description
给出一个\(n(n\leq35000)\)个数的数列\(\{a_i\}\)和\(m(m\leq50)\)。将原数列划分成\(m\)个连续的部分，每个部分的权值等于其中不同的数的个数。求所有划分方案中，所有部分权值和中的最大值。
Solution
线段树优化DP。
记录\(f[k][i]\)表示将前\(i\)个数划分为\(k\)段的最大权值和，\(w(...]]></description><category></category></item><item><title><![CDATA[Codeforces963B - Destruction of a Tree]]></title><link>https://blog.youkuaiyun.com/ayw1069/article/details/101317393</link><guid>https://blog.youkuaiyun.com/ayw1069/article/details/101317393</guid><author>ayw1069</author><pubDate>Wed, 23 May 2018 11:41:00 +0800</pubDate><description><![CDATA[Portal
Description
给出一个\(n(n\leq2\times10^5)\)个点的树，每次可以删除一个度数为偶数的点及其相连的边，求一种能够删掉整棵树的方案。
Solution
简单起见，我们用“Odd树”和“Even树”表示大小为奇数/偶数的树。
首先易知原树为Even树时无解。因为每次都会删掉偶数条边而Even树有奇数条边。
当我们要删掉一棵树的时候，我们将其划分为三...]]></description><category></category></item><item><title><![CDATA[LibreOJ2085 - 「NOI2016」循环之美]]></title><link>https://blog.youkuaiyun.com/ayw1069/article/details/101317389</link><guid>https://blog.youkuaiyun.com/ayw1069/article/details/101317389</guid><author>ayw1069</author><pubDate>Fri, 18 May 2018 10:27:00 +0800</pubDate><description><![CDATA[Portal
Description
给出\(n,m(n,m\leq10^9)\)和\(k(k\leq2000)\)，求在\(k\)进制下，有多少个数值不同的纯循环小数可以表示成\(\dfrac{x}{y}\)的形式，其中\(x\in[1,n],y\in[1,m]\)。一个数是纯循环小数当且仅当它能写成\(a.\dot{c_1} c_2 c_3 \ldots c_{p-1}\dot{c_...]]></description><category></category></item><item><title><![CDATA[BZOJ1197 - [HNOI2006]花仙子的魔法]]></title><link>https://blog.youkuaiyun.com/ayw1069/article/details/101317391</link><guid>https://blog.youkuaiyun.com/ayw1069/article/details/101317391</guid><author>ayw1069</author><pubDate>Tue, 15 May 2018 19:25:00 +0800</pubDate><description><![CDATA[Portal
Description
求\(n(n\leq15)\)维空间中的\(m(m\leq150)\)个球最多将空间划分成几部分。
Solution
记录\(ans[k][i]\)表示\(k\)维空间中的\(i\)个球最多将空间划分为几部分。
一维情况非常简单，\(ans[1][i]=2i\)。一维上的球就是两个点。
接下来考虑二维情况。假设现在有\(x\)个圆，要加入一个新圆。这...]]></description><category></category></item><item><title><![CDATA[BZOJ2654 - tree]]></title><link>https://blog.youkuaiyun.com/ayw1069/article/details/101317387</link><guid>https://blog.youkuaiyun.com/ayw1069/article/details/101317387</guid><author>ayw1069</author><pubDate>Tue, 15 May 2018 13:20:00 +0800</pubDate><description><![CDATA[Portal
Description
给出一个无向连通图\((V,E)\)（\(|V|\leq5\times10^4,|E|\leq10^5\)），边分为白边和黑边，边权不超过\(100\)。求该无向图的恰好包含\(k\)条白边的最小生成树的权值。保证有解。
Solution
二分。
我们给所有白边一个额外权值\(w'\)。显然MST中白边的数量与\(w'\)负相关，于是我们二分这个\(...]]></description><category></category></item><item><title><![CDATA[洛谷P3625 - [APIO2009]采油区域]]></title><link>https://blog.youkuaiyun.com/ayw1069/article/details/101317388</link><guid>https://blog.youkuaiyun.com/ayw1069/article/details/101317388</guid><author>ayw1069</author><pubDate>Tue, 15 May 2018 11:28:00 +0800</pubDate><description><![CDATA[Portal
Description
给出一个\(n\times m(n,m\leq1500)\)的矩阵，从中选出\(3\)个互不相交的\(k\times k\)方阵，使得被选出的数的和最大。
Solution
奇怪做法...

三个矩形分别在三个部分中，把矩形划分成三部分只有这六种。首先搞出\(s[i][j]\)表示以\((i,j)\)为右下角的\(k\times k\)方阵的和，然后...]]></description><category></category></item><item><title><![CDATA[BZOJ4805 - 欧拉函数求和]]></title><link>https://blog.youkuaiyun.com/ayw1069/article/details/101317383</link><guid>https://blog.youkuaiyun.com/ayw1069/article/details/101317383</guid><author>ayw1069</author><pubDate>Tue, 08 May 2018 10:03:00 +0800</pubDate><description><![CDATA[Portal
Description
给出\(n(n\leq2\times10^9)\)，求\(\sum_{i=1}^n \varphi(i)\)。
Solution
杜教筛。
杜教筛的作用就是以一个低于\(O(n)\)（准确来说是\(O(n^{\frac{2}{3}})\)）的时间复杂度来计算积性函数\(f\)的前缀和。
记\(S(x)=\sum_{i=1}^x f(i)\)。那么对于...]]></description><category></category></item><item><title><![CDATA[群论 - Group Theory]]></title><link>https://blog.youkuaiyun.com/ayw1069/article/details/101317386</link><guid>https://blog.youkuaiyun.com/ayw1069/article/details/101317386</guid><author>ayw1069</author><pubDate>Mon, 07 May 2018 13:47:00 +0800</pubDate><description><![CDATA[群的定义
若非空集合\(G\)和定义在\(G\)上的二元运算\(⋅\)构成的代数结构\((G,⋅)\)，满足：

封闭性：\(\forall a,b\in G\)，有\(a⋅b\in G\)。
结合律：\(\forall a,b,c\in G\)，有\((a⋅b)⋅c=a⋅(b⋅c)\)。
单位元：\(\exists e\in G\)，满足\(\forall a\in G\)有\(a⋅e...]]></description><category></category></item><item><title><![CDATA[BZOJ3561 - DZY Loves Math VI]]></title><link>https://blog.youkuaiyun.com/ayw1069/article/details/101317382</link><guid>https://blog.youkuaiyun.com/ayw1069/article/details/101317382</guid><author>ayw1069</author><pubDate>Sun, 06 May 2018 18:37:00 +0800</pubDate><description><![CDATA[Portal
Description
共\(T(T\leq3)\)组测试数据。给出\(n,m(n\leq5\times10^5)\)，求
\[ \sum_{i=1}^n \sum_{j=1}^m lcm(i,j)^{gcd(i,j)}\]
Solution
喜闻乐见推推推。
\[\begin{align*}
ans &amp;= \sum_{i=1}^n \sum_{j=1}^m lcm...]]></description><category></category></item></channel></rss>