<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Sdywolf的博客]]></title><description><![CDATA[Have no fear of perfection,you will never reach it.--Dali]]></description><link>https://blog.youkuaiyun.com/FYOIER</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; FYOIER]]></copyright><item><title><![CDATA[【BZOJ】【lucas定理】4403: 序列统计]]></title><link>https://blog.youkuaiyun.com/FYOIER/article/details/82191841</link><guid>https://blog.youkuaiyun.com/FYOIER/article/details/82191841</guid><author>FYOIER</author><pubDate>Wed, 29 Aug 2018 20:05:31 +0800</pubDate><description><![CDATA[令m=R−L+1m=R−L+1m=R-L+1如果长度确定为nnn，相当于求∑mi=1xi=n∑i=1mxi=n\sum_{i=1}^{m}x_i=n，用插板法得答案为(n+m−1m−1)(n+m−1m−1)n+m-1\choose m-1，然后就是一波骚操作：

由(xy)=(x−1y)+(x−1y−1)(xy)=(x−1y)+(x−1y−1){x\choose y}={x-1\choose y}...]]></description><category></category></item><item><title><![CDATA[【BZOJ】【中国剩余定理】1951: [Sdoi2010]古代猪文]]></title><link>https://blog.youkuaiyun.com/FYOIER/article/details/82118601</link><guid>https://blog.youkuaiyun.com/FYOIER/article/details/82118601</guid><author>FYOIER</author><pubDate>Mon, 27 Aug 2018 20:25:15 +0800</pubDate><description><![CDATA[题意

求 
G∑i|n(ni)(mod999911659)G∑i|n(ni)(mod999911659)
G^{\sum_{i|n}{n\choose i}}\pmod{999911659}




题解

由费马小定理 
ap−1≡1(modp)ap−1≡1(modp)
a^{p-1}\equiv 1\pmod p
 
得 
G∑i|n(ni)(modtt)=G∑i|n(ni)(modtt−1...]]></description><category></category></item><item><title><![CDATA[【Codechef】【主席树维护DP】【SnackDown 2017 Online Elimination Round】PREFIXOR: 异或前缀]]></title><link>https://blog.youkuaiyun.com/FYOIER/article/details/82013239</link><guid>https://blog.youkuaiyun.com/FYOIER/article/details/82013239</guid><author>FYOIER</author><pubDate>Fri, 24 Aug 2018 10:30:33 +0800</pubDate><description><![CDATA[如果能处理出每个点往右最多扩展到rgt[i]rgt[i]rgt[i]，那么答案就是 
∑i=lrmin{rgt[i],r}−i=∑i=lrrgt[i]−∑i=lri−∑i=l&amp;amp;rgt[i]&amp;gt;rrrgt[i]−r∑i=lrmin{rgt[i],r}−i=∑i=lrrgt[i]−∑i=lri−∑i=l&amp;amp;rgt[i]&amp;gt;rrrgt[i]−r
\sum_{i=l}^{r}min\...]]></description><category></category></item><item><title><![CDATA[【线段树维护矩阵转移】【Codeforces】573D. Bear and Cavalry]]></title><link>https://blog.youkuaiyun.com/FYOIER/article/details/82012831</link><guid>https://blog.youkuaiyun.com/FYOIER/article/details/82012831</guid><author>FYOIER</author><pubDate>Fri, 24 Aug 2018 10:15:23 +0800</pubDate><description><![CDATA[题意

给出一个[1,n][1,n][1,n]的排列，每次交换两个数，每次询问一个每一位都与这个数列不同排列，这样的排列的最大权值，一个排列的权值定义为a[i]∗b[p[i]]a[i]∗b[p[i]]a[i]*b[p[i]]。



题解

如果没有限制，由排序不等式，显然当aaa，bbb都顺序排列是最优解，现在有限制以后，可以证明（其实我不会）：每一位最多与排序后与它相差2的数配对。

这样就可...]]></description><category></category></item><item><title><![CDATA[【区间DP】Codeforces#505D 1025D Recovering BST]]></title><link>https://blog.youkuaiyun.com/FYOIER/article/details/81873338</link><guid>https://blog.youkuaiyun.com/FYOIER/article/details/81873338</guid><author>FYOIER</author><pubDate>Mon, 20 Aug 2018 16:25:09 +0800</pubDate><description><![CDATA[题意

给n个数，问能否构造出一个相邻节点不互质的二叉搜索树。



题解

JZ太神了，看了一眼就说区间DP。

定义lft[i][j]lft[i][j]lft[i][j]表示[i,j][i,j][i,j]接在i−1i−1i-1的右儿子是否可行，rgt[i][j]rgt[i][j]rgt[i][j]表示[i,j][i,j][i,j]接在j+1j+1j+1的左儿子是否可行。转移就用经典区间DP，枚...]]></description><category></category></item><item><title><![CDATA[【UOJ】【kruskal重构树】【NOI2018】归程]]></title><link>https://blog.youkuaiyun.com/FYOIER/article/details/81813796</link><guid>https://blog.youkuaiyun.com/FYOIER/article/details/81813796</guid><author>FYOIER</author><pubDate>Sat, 18 Aug 2018 22:29:21 +0800</pubDate><description><![CDATA[按照高度建最大生成树，构造kruskal重构树，每次连边时新建一个节点表示边权连到两端的父亲上。这样一棵树满足小根堆的性质。所以可以倍增跳到最顶端，然后答案就是子树里的最小权值（这里的权值为到1的最短路)。

代码



#include&amp;lt;cstdio&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[【UOJ】UER#3.B 开学前的日历]]></title><link>https://blog.youkuaiyun.com/FYOIER/article/details/81636805</link><guid>https://blog.youkuaiyun.com/FYOIER/article/details/81636805</guid><author>FYOIER</author><pubDate>Mon, 13 Aug 2018 20:48:54 +0800</pubDate><description><![CDATA[将条件转化为i,j⩾0,i+j⩾k|Av+i,u+j+=(i+ji)i,j⩾0,i+j⩾k|Av+i,u+j+=(i+ji)i,j\geqslant 0,i+j\geqslant k|A_{v+i,u+j}+={i+j\choose i}，  考虑组合意义，从(v,u)(v,u)(v,u)开始每次往右或往下走，走大于等于kkk布的方案数，直接DP。

#include&amp;lt;cstdio&amp;gt;
...]]></description><category></category></item><item><title><![CDATA[【UOJ】UER#3.A 开学前的作文]]></title><link>https://blog.youkuaiyun.com/FYOIER/article/details/81636779</link><guid>https://blog.youkuaiyun.com/FYOIER/article/details/81636779</guid><author>FYOIER</author><pubDate>Mon, 13 Aug 2018 20:47:25 +0800</pubDate><description><![CDATA[找规律。

#include&amp;lt;cstdio&amp;gt;
#include&amp;lt;cstring&amp;gt;
#include&amp;lt;algorithm&amp;gt;
using namespace std;
int T,n,m,ans;
int main(){
    freopen(&quot;A.in&quot;,&quot;r&quot;,stdin);freopen(&quot;A.out&quot;,&quot;w&quot;,stdout);
    sc]]></description><category></category></item><item><title><![CDATA[【容斥】Topcoder SRM div1-3 12004. SetAndSet]]></title><link>https://blog.youkuaiyun.com/FYOIER/article/details/81489819</link><guid>https://blog.youkuaiyun.com/FYOIER/article/details/81489819</guid><author>FYOIER</author><pubDate>Tue, 07 Aug 2018 22:29:22 +0800</pubDate><description><![CDATA[取反，变成or和相同。同一位，为1的不能放在同一边，并查集加容斥搞。

第一次在TC上做题，机制轻喷。。。

代码



#include&amp;lt;cstdio&amp;gt;
#include&amp;lt;cstring&amp;gt;
#include&amp;lt;iostream&amp;gt;
#include&amp;lt;algorithm&amp;gt;
#include&amp;lt;vector&amp;gt;
using namespace st...]]></description><category></category></item><item><title><![CDATA[【ZROI】【数学相关】【计数问题】【17 提高 6】异或统计]]></title><link>https://blog.youkuaiyun.com/FYOIER/article/details/80962314</link><guid>https://blog.youkuaiyun.com/FYOIER/article/details/80962314</guid><author>FYOIER</author><pubDate>Sun, 08 Jul 2018 20:42:47 +0800</pubDate><description><![CDATA[首先考虑这个问题的简化版：求∑(ai&amp;amp;nbsp;xor&amp;amp;nbsp;aj)∗(aj&amp;amp;nbsp;xor&amp;amp;nbsp;ak)∑(ai&amp;amp;nbsp;xor&amp;amp;nbsp;aj)∗(aj&amp;amp;nbsp;xor&amp;amp;nbsp;ak)\sum (ai\ xor\ aj)*(aj\ xor\ ak)，这就等价于求∑j((∑ai&amp;amp;nbsp;xor&amp;amp;nbsp;aj)(∑aj&amp;a]]></description><category></category></item><item><title><![CDATA[【ZROI】【数学相关】【17 提高 5】剪刀石头布]]></title><link>https://blog.youkuaiyun.com/FYOIER/article/details/80955512</link><guid>https://blog.youkuaiyun.com/FYOIER/article/details/80955512</guid><author>FYOIER</author><pubDate>Sun, 08 Jul 2018 20:41:54 +0800</pubDate><description><![CDATA[根据期望的线性性，可以计算获胜盘数的期望为wa∗∑bi+wb∗∑ci+wc∗∑aiwa∗∑bi+wb∗∑ci+wc∗∑aiwa*\sum bi+wb*\sum ci+wc*\sum ai，然后分类讨论，由于wa和wb都不会为0，所以∑bi=∑c[i]∑bi=∑c[i]\sum bi=\sum c[i]，并且，如果wa+wb=1e9wa+wb=1e9wa+wb=1e9，那么∑bi&amp;amp;lt;=∑ai∑b...]]></description><category></category></item><item><title><![CDATA[【ZROI】【DP】【17 提高 5】石头剪刀布]]></title><link>https://blog.youkuaiyun.com/FYOIER/article/details/80955408</link><guid>https://blog.youkuaiyun.com/FYOIER/article/details/80955408</guid><author>FYOIER</author><pubDate>Sun, 08 Jul 2018 20:41:24 +0800</pubDate><description><![CDATA[暴力DP可以定义f[i][a][b][c]f[i][a][b][c]f[i][a][b][c]表示到第i个数为止，以0结尾的最长胜利序列长度为a，以1结尾的最长胜利序列长度为b，以2结尾的最长胜利序列长度为c的方案数，显然这样过于暴力了。接下来，我们会发现一个结论，那就是a,b,c任意两个数相差不超过2，证明如下：

由于石头的上一个必然是布，所以c&amp;amp;gt;=a−1c&amp;amp;gt;=a−1c&amp;gt;=a-1，...]]></description><category></category></item><item><title><![CDATA[【ZROI】【贪心】【DP】【17 提高 4】怪物猎人]]></title><link>https://blog.youkuaiyun.com/FYOIER/article/details/80955396</link><guid>https://blog.youkuaiyun.com/FYOIER/article/details/80955396</guid><author>FYOIER</author><pubDate>Sun, 08 Jul 2018 20:41:01 +0800</pubDate><description><![CDATA[假设我们已经确定了要杀那几只怪，假设第i只怪在第j天被杀死，那么它对猎人造成的伤害就是(a[i]+j∗d)(b[i]+j∗d)=a[i]∗b[i]+j2d2+j∗d∗(a[i]+b[i])(a[i]+j∗d)(b[i]+j∗d)=a[i]∗b[i]+j2d2+j∗d∗(a[i]+b[i])(a[i]+j*d)(b[i]+j*d)=a[i]*b[i]+j^2d^2+j*d*(a[i]+b[i])，贪...]]></description><category></category></item><item><title><![CDATA[【ZROI】【DP】【17 提高 3】建造]]></title><link>https://blog.youkuaiyun.com/FYOIER/article/details/80955387</link><guid>https://blog.youkuaiyun.com/FYOIER/article/details/80955387</guid><author>FYOIER</author><pubDate>Sun, 08 Jul 2018 20:40:02 +0800</pubDate><description><![CDATA[假设我们已经确定了一个建造的顺序，那么如何计算按照这个顺序建造的方案数？这就相当于确定一个数组d，其中∑di&amp;amp;lt;=X∑di&amp;amp;lt;=X\sum d_idi&amp;amp;gt;=max{hi,hi+1}di&amp;amp;gt;=max{hi,hi+1}d_i&amp;gt;=max\{h_i,h_{i+1}\}，为了方便起见，记∑max{hi,hi+1}=S∑max{hi,hi+1}=S\sum max\{h_i,h_{i+1}\}...]]></description><category></category></item><item><title><![CDATA[【ZROI】【高维前缀和】【lucas定理】【17 提高 2】World Of Our Own]]></title><link>https://blog.youkuaiyun.com/FYOIER/article/details/80955367</link><guid>https://blog.youkuaiyun.com/FYOIER/article/details/80955367</guid><author>FYOIER</author><pubDate>Sun, 08 Jul 2018 20:39:23 +0800</pubDate><description><![CDATA[第3步a0^a1^a1^a2^a1^a2^a2^a3

第2步a0^a1^a1^a2  a1^a2^a2^a3

第1步a0^a1    a1^a2   a2^a3

第0步a0       a1      a2      a3

每次的合并操作相当于每个数往上走一步或是往左上走一步，那么，最终第iii个数在第jjj步走到位置0

（将原来1~n重新编号为0~n-1，这样可以方便计算）的方案数为C...]]></description><category></category></item><item><title><![CDATA[【ZROI】【启发式合并】【17 提高 2】Last mile of the way]]></title><link>https://blog.youkuaiyun.com/FYOIER/article/details/80955345</link><guid>https://blog.youkuaiyun.com/FYOIER/article/details/80955345</guid><author>FYOIER</author><pubDate>Sun, 08 Jul 2018 20:38:33 +0800</pubDate><description><![CDATA[做法就是每次将一个点的所有子节点的答案合并到这个点上去，暴力的合并可以每次枚举子节点背包的大小，这样的复杂度是O(ns2)O(ns2)O(ns^2)的。可以利用启发式合并的trick，每次将子节点中最重的儿子直接复制过来，然后对于其他子树中的所有节点直接暴力合并，由于合并单个节点的复杂度是O(s)O(s)O(s)的，而每次合并了以后子树大小至少变成了原来的2倍，所以每个节点最多被合并log2nlo...]]></description><category></category></item><item><title><![CDATA[【数位DP】树状数组]]></title><link>https://blog.youkuaiyun.com/FYOIER/article/details/80582297</link><guid>https://blog.youkuaiyun.com/FYOIER/article/details/80582297</guid><author>FYOIER</author><pubDate>Tue, 05 Jun 2018 15:40:03 +0800</pubDate><description><![CDATA[题解

考虑如何计算f[l][r]f[l][r]f[l][r]。

很显然，可以分别计算l,rl,rl,r的二进制中1的个数，然后减去(最大公共前缀的1的个数)*2。

考虑如何统计每一对l,rl,rl,r的最大前缀中1的个数，可以用数位DP。

记f[i][j][1/0][1/0]f[i][j][1/0][1/0]f[i][j][1/0][1/0]表示前iii位，最大公共前缀中1的个数为jjj，...]]></description><category></category></item><item><title><![CDATA[【康复训练】【cdq分治】【BZOJ】3295: [Cqoi2011]动态逆序对]]></title><link>https://blog.youkuaiyun.com/FYOIER/article/details/80512901</link><guid>https://blog.youkuaiyun.com/FYOIER/article/details/80512901</guid><author>FYOIER</author><pubDate>Wed, 30 May 2018 17:12:27 +0800</pubDate><description><![CDATA[Description

对于序列A，它的逆序对数定义为满足i

题解

cdq分治. 
将删除操作倒序看就是加入操作，然后就是一个经典的三位偏序问题了。



代码



#include&amp;lt;cstdio&amp;gt;
#include&amp;lt;cstring&amp;gt;
#include&amp;lt;algorithm&amp;gt;
#define maxn 100006
#define maxm 50006
#...]]></description><category></category></item><item><title><![CDATA[Emacs配置]]></title><link>https://blog.youkuaiyun.com/FYOIER/article/details/80471668</link><guid>https://blog.youkuaiyun.com/FYOIER/article/details/80471668</guid><author>FYOIER</author><pubDate>Sun, 27 May 2018 19:24:17 +0800</pubDate><description><![CDATA[(custom-set-variables 
 ;; custom-set-variables was added by Custom. 
 ;; If you edit it by hand, you could mess it up, so be careful. 
 ;; Your init file should contain only one such instance. 
 ;; I...]]></description><category></category></item><item><title><![CDATA[【康复训练】【主席树】【BZOJ】1112: [POI2008]砖块Klo]]></title><link>https://blog.youkuaiyun.com/FYOIER/article/details/80470347</link><guid>https://blog.youkuaiyun.com/FYOIER/article/details/80470347</guid><author>FYOIER</author><pubDate>Sun, 27 May 2018 16:34:28 +0800</pubDate><description><![CDATA[Description

N柱砖,希望有连续K柱的高度是一样的. 你可以选择以下两个动作 1:从某柱砖的顶端拿一块砖出来,丢掉不要了. 2:从仓库中拿出一块砖,放到另一柱.仓库无限大. 现在希望用最小次数的动作完成任务.

题解

主席树。只要求出中位数、比中位数小的数的总和和个数、比中位数大的数的总和和个数。

代码



#include&amp;lt;cstdio&amp;gt;
#include&amp;lt;c...]]></description><category></category></item></channel></rss>