<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[chen1352]]></title><description><![CDATA[怀惧日，泛痛夜， 熊熊烈火退凌冽。 众皆失于战火劫。 仰望群星—— 希望之光永不灭！]]></description><link>https://blog.youkuaiyun.com/chen1352</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; chen1352]]></copyright><item><title><![CDATA[从csdn搬家到博客园（无尽的蓝黄）]]></title><link>https://blog.youkuaiyun.com/chen1352/article/details/80486784</link><guid>https://blog.youkuaiyun.com/chen1352/article/details/80486784</guid><author>chen1352</author><pubDate>Mon, 28 May 2018 18:22:34 +0800</pubDate><description><![CDATA[用csdn写博客已经有两年多了，可以说csdn记录了我作为IOer两年来的经历。 
但是用久了也觉得csdn似乎有些差强人意， 
1、界面太单调了，也不能改改背景之类的，为了给读者更好的观博体验，我觉得转到博客园。 
2、csdn有时会突然崩溃一会，造成一些小麻烦。 
3、广告好多，超级烦！ 
各位关注我的朋友，以及未来的关注我的人， 
经过一个月的努力（刚好一个月4.28–&amp;gt;5.28），我...]]></description><category></category></item><item><title><![CDATA[【51nod 1847】奇怪的数学题]]></title><link>https://blog.youkuaiyun.com/chen1352/article/details/80139295</link><guid>https://blog.youkuaiyun.com/chen1352/article/details/80139295</guid><author>chen1352</author><pubDate>Fri, 04 May 2018 22:22:16 +0800</pubDate><description><![CDATA[题目描述

给出 N,K ,请计算下面这个式子: 
 ∑Ni=1∑Nj=1sgcd(i,j)k∑i=1N∑j=1Nsgcd(i,j)k∑_{i=1}^N∑_{j=1}^Nsgcd(i,j)^k 
其中,sgcd(i, j)表示(i, j)的所有公约数中第二大的,特殊地,如果gcd(i, j) = 1, 那么sgcd(i, j) = 0。 
考虑到答案太大,请输出答案对2^32取模的结果. 
 1≤...]]></description><category></category></item><item><title><![CDATA[Codeforces Round #446 Div1 E]]></title><link>https://blog.youkuaiyun.com/chen1352/article/details/79997718</link><guid>https://blog.youkuaiyun.com/chen1352/article/details/79997718</guid><author>chen1352</author><pubDate>Wed, 18 Apr 2018 22:08:06 +0800</pubDate><description><![CDATA[题目大意

有n个数，进行k轮操作：随机一个i，让aiaia_i减1，然后ans加上Πj≠iaiΠj≠iai\Pi_{j\neq i}a_i。 
求ans的期望。



分析

发现，造成的伤害就是原来的ai的积减去k轮操作后的ai的积（其实我在看题解前根本没发现）。 
题目就变成了求k轮操作后的ai的积的期望。 
设ai经过了k轮操作减去了bi 
E(Πni=1(ai−bi))=1nk∑∑ni=...]]></description><category></category></item><item><title><![CDATA[【agc005d】~K Perm Counting]]></title><link>https://blog.youkuaiyun.com/chen1352/article/details/79805452</link><guid>https://blog.youkuaiyun.com/chen1352/article/details/79805452</guid><author>chen1352</author><pubDate>Tue, 03 Apr 2018 16:34:57 +0800</pubDate><description><![CDATA[题目大意

求有多少中1~n的排列，使得abs(第i个位置的值−i)!=kabs(第i个位置的值−i)!=kabs(第i个位置的值-i)!=k



解题思路

考虑容斥，ans=∑ni=0(−1)ig[i](n−i)!(g[i]表示至少有i个位置是不合法的方案数)ans=∑i=0n(−1)ig[i](n−i)!(g[i]表示至少有i个位置是不合法的方案数)ans=\sum_{i=0}^{n}(-...]]></description><category></category></item><item><title><![CDATA[【JZOJ5603】【NOI2018模拟3.27】Xjz]]></title><link>https://blog.youkuaiyun.com/chen1352/article/details/79715062</link><guid>https://blog.youkuaiyun.com/chen1352/article/details/79715062</guid><author>chen1352</author><pubDate>Tue, 27 Mar 2018 16:25:18 +0800</pubDate><description><![CDATA[题目描述

给定字符串 S 和 T。 
串A和串B匹配的定义改为：存在一个字符的映射，使得A应用这个映射之后等于B，且这个映射必须为一个排列。 
A=121, B=313，当映射为{1-&amp;gt;3, 2-&amp;gt;1, 3-&amp;gt;2}时A’=B,可以匹配 
A=212, B=313，当映射为{1-&amp;gt;1, 2-&amp;gt;3, 3-&amp;gt;2}时A’=B,可以匹配 
A=232, B=313，当映...]]></description><category></category></item><item><title><![CDATA[【JZOJ5605】【NOI2018模拟3.26】Arg]]></title><link>https://blog.youkuaiyun.com/chen1352/article/details/79714879</link><guid>https://blog.youkuaiyun.com/chen1352/article/details/79714879</guid><author>chen1352</author><pubDate>Tue, 27 Mar 2018 16:15:46 +0800</pubDate><description><![CDATA[题目描述

给出一个长度为 m 的序列 A, 请你求出有多少种 1…n 的排列, 满足 A 是它的一个 LIS.

解题思路

如何求出一个序列的LIS？ 
对于二分的方法，每次插入一个数，将它放到第一个比它大的数的位置处代替之，最后的长度就是LIS的长度。 
考虑模拟这个过程，设f[s]，表示当前这n个数的是否加入的状态为s，s是一个三进制数，0表示还没加入，1表示加入了且仍在当前的LIS中，2...]]></description><category></category></item><item><title><![CDATA[【agc004e】Salvage Robots]]></title><link>https://blog.youkuaiyun.com/chen1352/article/details/79587488</link><guid>https://blog.youkuaiyun.com/chen1352/article/details/79587488</guid><author>chen1352</author><pubDate>Fri, 16 Mar 2018 22:01:29 +0800</pubDate><description><![CDATA[题目大意

一个n*m的矩阵，矩阵内有一个出口和若干个机器人，每一步操作可以使所有的机器人向任意方向移动一格，如果机器人出了边界就爆炸。求最多可以让多少个机器人走到出口。

解题思路

发现，移动所有机器人，其实就相当于移动出口和边界。 
于是，设f[i][j][k][l]，表示机器人走完了子矩阵(i,j)(k,l)，最多可以让多少个机器人走到出口。 
每次多加一行或一列转移，根据边界来看增加的机...]]></description><category></category></item><item><title><![CDATA[【agc004c】AND Grid]]></title><link>https://blog.youkuaiyun.com/chen1352/article/details/79557768</link><guid>https://blog.youkuaiyun.com/chen1352/article/details/79557768</guid><author>chen1352</author><pubDate>Wed, 14 Mar 2018 17:29:14 +0800</pubDate><description><![CDATA[前言

一个奇妙的构造题…

题目大意

给定一个矩阵，某些位置涂有颜色（不保证联通）。 
构造两个大小相同矩阵，两个矩阵内涂有颜色，使得每个矩阵的颜色联通，并且颜色重合部分的位置恰好与给定的矩阵一样。



解题思路

被坑死了，想了半天，一看题解秒懂。 
因为给定的矩阵边界没有颜色，于是第一个矩阵左边边界涂色，第二个矩阵右边边界涂色。 
然后除了左右边界，第一个矩阵涂满奇数行，第二个矩阵涂满偶...]]></description><category></category></item><item><title><![CDATA[【agc004d】Teleporter]]></title><link>https://blog.youkuaiyun.com/chen1352/article/details/79548165</link><guid>https://blog.youkuaiyun.com/chen1352/article/details/79548165</guid><author>chen1352</author><pubDate>Tue, 13 Mar 2018 22:38:39 +0800</pubDate><description><![CDATA[题目大意

一棵树，改变一些边的父亲，使得深度不超过k。

解题思路

我一开始就想到了贪心，结果莫名其妙的把这种方法给否决了， 
然后考虑优化树形dp，然后优化失败⊙﹏⊙ 
贪心思路很简单，也很好感受出来，从下往上跑，每当到底下的深度大于k，将其断掉，连向根节点。

#include &amp;lt;cmath&amp;gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;cst...]]></description><category></category></item><item><title><![CDATA[【agc002f】Leftmost Ball]]></title><link>https://blog.youkuaiyun.com/chen1352/article/details/79503866</link><guid>https://blog.youkuaiyun.com/chen1352/article/details/79503866</guid><author>chen1352</author><pubDate>Fri, 09 Mar 2018 22:23:07 +0800</pubDate><description><![CDATA[题目大意

有n种颜色，每种k个球。将这些球任意排列，将每种颜色中最前面的一个求涂成白色（就是n+1种颜色），求最终的排列的方案的个数。



解题思路

考虑如何计算不会算重， 
按颜色顺序，每次往排列插入k个球，k-1个某种颜色，以及一个白球。 
那么只要我们每次插入k个球时，保证白球一定在之前插入的白球的后面，并且某种颜色的第一个球，放在上一次的颜色的第一个球的后面，就可以保证不会算重，最后...]]></description><category></category></item><item><title><![CDATA[【agc002d】Stamp Rally]]></title><link>https://blog.youkuaiyun.com/chen1352/article/details/79460488</link><guid>https://blog.youkuaiyun.com/chen1352/article/details/79460488</guid><author>chen1352</author><pubDate>Tue, 06 Mar 2018 16:45:34 +0800</pubDate><description><![CDATA[题目大意

无向图中，每次询问从x和y分别出发，一共经过z个点，使需要走过编号最大的边最小。



解题思路

对于暴力，我们对于每个询问二分答案ans，将1~ans的边加入，用并查集维护，如果x和y在同一个并查集，则判断该并查集大小是否大于等于z，否则判断该x所在并查集和y所在并查集大小的和是否大于等于z。 
考虑如何优化，整体二分，二分边的编号，同时对于每个编号区间[l,r]，记录一个询问集合...]]></description><category></category></item><item><title><![CDATA[【arc068F】Solitaire]]></title><link>https://blog.youkuaiyun.com/chen1352/article/details/79413488</link><guid>https://blog.youkuaiyun.com/chen1352/article/details/79413488</guid><author>chen1352</author><pubDate>Thu, 01 Mar 2018 15:47:21 +0800</pubDate><description><![CDATA[题目大意

有一个队列，头尾都可以进出。 
首先将n个数1~n从小到大扔进队列，然后将一次弹出队列，求最后弹出来的排列中，第k个数为1的排列有多少种。



解题思路

我们来考虑一下一个合法排列的性质，



第k个数是1
前k-1个数是可以拆成一个或两个单调递减的序列。
前k-1个数中其中一个序列的最小值一定大于后n-k个数中的最大值。

考虑如何来满足这个构造出这个排列。 
先考虑后n-k-...]]></description><category></category></item><item><title><![CDATA[51nod 1172 Partial Sums V2]]></title><link>https://blog.youkuaiyun.com/chen1352/article/details/79265450</link><guid>https://blog.youkuaiyun.com/chen1352/article/details/79265450</guid><author>chen1352</author><pubDate>Mon, 05 Feb 2018 22:48:18 +0800</pubDate><description><![CDATA[题目

给出一个数组A，经过一次处理，生成一个数组S，数组S中的每个值相当于数组A的累加，比如：A = {1 3 5 6} =&amp;gt; S = {1 4 9 15}。如果对生成的数组S再进行一次累加操作，{1 4 9 15} =&amp;gt; {1 5 14 29}，现在给出数组A，问进行K次操作后的结果。(输出结果 Mod 10^9 + 7)



分析

发现，每次处理相当于将A卷上一个I(∀ai=...]]></description><category></category></item><item><title><![CDATA[快速数论变换NTT模板]]></title><link>https://blog.youkuaiyun.com/chen1352/article/details/79247957</link><guid>https://blog.youkuaiyun.com/chen1352/article/details/79247957</guid><author>chen1352</author><pubDate>Sat, 03 Feb 2018 16:42:45 +0800</pubDate><description><![CDATA[51nod 1348 乘积之和



#include &amp;lt;cmath&amp;gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstdlib&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
#include &amp;lt;queue&amp;gt;
#include]]></description><category></category></item><item><title><![CDATA[快速傅立叶变换FFT模板]]></title><link>https://blog.youkuaiyun.com/chen1352/article/details/79247935</link><guid>https://blog.youkuaiyun.com/chen1352/article/details/79247935</guid><author>chen1352</author><pubDate>Sat, 03 Feb 2018 16:40:37 +0800</pubDate><description><![CDATA[递归版

UOJ34多项式乘法



//容易暴栈，但是很好理解
#include &amp;lt;cmath&amp;gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstdlib&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
#include &amp;lt;queu...]]></description><category></category></item><item><title><![CDATA[【GDKOI2018】总结]]></title><link>https://blog.youkuaiyun.com/chen1352/article/details/79222251</link><guid>https://blog.youkuaiyun.com/chen1352/article/details/79222251</guid><author>chen1352</author><pubDate>Wed, 31 Jan 2018 21:24:38 +0800</pubDate><description><![CDATA[前言

车祸现场。。。

day1

T1：其实就是对于每个点的有用的时间点建一个点，然后连边，对于询问(x,y)，从点(y,inf)，往回走，能走到的最早的x的时间点就是答案。 
比赛上用最后的一个多小时来调，还是过不了样例，wa的一声哭了出来，水了10分。 
T2：AC自动机裸题，SAM也可以，不多说。 
比赛上突然忘记怎么打对拍，于是只能手动，浪费了很多时间，最后还是过了。 
T3：弄成矩阵]]></description><category></category></item><item><title><![CDATA[【51nod 1824】染色游戏]]></title><link>https://blog.youkuaiyun.com/chen1352/article/details/79048696</link><guid>https://blog.youkuaiyun.com/chen1352/article/details/79048696</guid><author>chen1352</author><pubDate>Fri, 12 Jan 2018 22:39:55 +0800</pubDate><description><![CDATA[有 n 个红球， m 个蓝球，从中取出 x 个红球和 y 个蓝球排成一排的得分是 rx⋅by ，其中 r0=b0=1 。 
定义 f(t) 表示恰好取出 t 个球排成一排的所有可能局面的得分之和。 
两个局面相同，当且仅当这两排球的个数相等，且在对应列位置上的颜色都是相同的。 
小Q想知道，有多少 t (1≤t≤n+m) 使得 f(t) 是奇数，你能告诉他满足条件的 t2 之和吗？ 
对于]]></description><category></category></item><item><title><![CDATA[类欧几里得小记]]></title><link>https://blog.youkuaiyun.com/chen1352/article/details/78907299</link><guid>https://blog.youkuaiyun.com/chen1352/article/details/78907299</guid><author>chen1352</author><pubDate>Tue, 26 Dec 2017 22:28:58 +0800</pubDate><description><![CDATA[类欧几里得小记]]></description><category></category></item><item><title><![CDATA[【清华集训2017模拟12.09】塔]]></title><link>https://blog.youkuaiyun.com/chen1352/article/details/78804584</link><guid>https://blog.youkuaiyun.com/chen1352/article/details/78804584</guid><author>chen1352</author><pubDate>Thu, 14 Dec 2017 16:52:05 +0800</pubDate><description><![CDATA[有一个塔,他的名字叫做粽粑,粽粑的每一层都有一个颜色 . 
粽粑非常厉害,它在吸收天地精华之后会长高.粽粑的长高方式有两种: 
 1.在塔顶长出一层. 
2.在塔底长出一层,即原来的第一层变成第二层,第二层变成第三层,以此类推,新长出来的是第一层. 
粽粑有可能在某个时刻不是很开心,这个时候它会撤销它的前若干次长高. 
你现在想知道粽粑长高的奥秘,于是找到了粽粑,发现它的入口上写着这么一句话:要]]></description><category></category></item><item><title><![CDATA[【51nod1792】Jabby's segment tree]]></title><link>https://blog.youkuaiyun.com/chen1352/article/details/78761379</link><guid>https://blog.youkuaiyun.com/chen1352/article/details/78761379</guid><author>chen1352</author><pubDate>Thu, 14 Dec 2017 16:36:33 +0800</pubDate><description><![CDATA[线段树是一种经典的数据结构，一颗[1,n]的线段树他的根是[1,n]，当一个线段树的结点是[l,r]时，设mid=(l+r)>>1，则这个结点的左儿子右儿子分别是[l,mid]，[mid+1,r] 
当我们在线段树上跑[x,y]询问时，一般是从根节点开始计算的，设现在所在结点是[l,r]，有以下几种分支： 
1.若[x,y]包含[l,r]，计算结束 
2.否则，若左儿子和[x,y]有交，计算左儿]]></description><category></category></item></channel></rss>