<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[LiuJunhao's Blog]]></title><description><![CDATA[An ex-OIer/CPCer's Blog]]></description><link>https://blog.youkuaiyun.com/outer_form</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; outer_form]]></copyright><item><title><![CDATA[【NOI2017】退役记——这是最坏的时代，也是最好的时代]]></title><link>https://blog.youkuaiyun.com/outer_form/article/details/76285603</link><guid>https://blog.youkuaiyun.com/outer_form/article/details/76285603</guid><author>outer_form</author><pubDate>Sat, 29 Jul 2017 00:08:09 +0800</pubDate><description><![CDATA[NOI2017Day 0早上从重庆坐火车去杭州，中途在利川恩施段遇到暴雨铁路封闭，到杭州的时候比预计晚了大概80min，成功错过去绍兴的高铁，只好在杭州住了一晚上。Day1 Check in Day  
中午从杭州去绍兴，下了火车才意识到绍兴原来比火炉之首的重庆还要热，嘿嘿。 
听说重庆队其他从重庆出发的人坐的飞机晚点了，所以他们比我还来得晚一个小时，然而从芜湖出发的dalao早就到了。 
南开的两]]></description><category></category></item><item><title><![CDATA[【回文树】[APIO2014]Palindromes]]></title><link>https://blog.youkuaiyun.com/outer_form/article/details/51277814</link><guid>https://blog.youkuaiyun.com/outer_form/article/details/51277814</guid><author>outer_form</author><pubDate>Sat, 15 Jul 2017 17:25:36 +0800</pubDate><description><![CDATA[题目链接

分析

用回文树，求出回文串的长度和出现的次数即可。

代码

#include
#include
#include
#define MAXN 300000
#define MAXC 26
using namespace std;
char s[MAXN+10];
int n;
long long ans;
inline void Read(int &x){
    static ch]]></description><category></category></item><item><title><![CDATA[【线段树】[BZOJ2104/WC2009]最短路问题]]></title><link>https://blog.youkuaiyun.com/outer_form/article/details/53509536</link><guid>https://blog.youkuaiyun.com/outer_form/article/details/53509536</guid><author>outer_form</author><pubDate>Sat, 15 Jul 2017 17:24:56 +0800</pubDate><description><![CDATA[题目描述分析在一个长条状的东西上维护信息，我们可以想到使用线段树。 
对于一个对应范围为[L,R][L,R]的节点，我们维护区间内最左边的那一列的点的每一个点和最右边一列的每一个点两两之间只经过[L,R][L,R]的点的最短路。 
关于合并，可以查看http://blog.youkuaiyun.com/iamzky/article/details/42119193 
关于最后求答案呢。 
我们求出1..l +]]></description><category></category></item><item><title><![CDATA[【提交答案题】[WC2009]优化设计]]></title><link>https://blog.youkuaiyun.com/outer_form/article/details/53509722</link><guid>https://blog.youkuaiyun.com/outer_form/article/details/53509722</guid><author>outer_form</author><pubDate>Sat, 15 Jul 2017 17:24:02 +0800</pubDate><description><![CDATA[题目描述

 
 




分析



第1、2组数据

很小，直接枚举。



第3、4组数据

都是A|BA|B的形式，其中AA和B=xiB=x_i或~xix_i，而且答案是全都可以满足，标准的2−SAT2-SAT

第5、6组数据

也是A|BA|B的形式，但是AA和B=xi1&xi2…B=x_{i1}\verb'&'x_{i2}\dots 
可以使用一下分配律。 
第5组可以全部满足，又是]]></description><category></category></item><item><title><![CDATA[【数论+组合数学】[省选十连测第十场]基本题]]></title><link>https://blog.youkuaiyun.com/outer_form/article/details/70255593</link><guid>https://blog.youkuaiyun.com/outer_form/article/details/70255593</guid><author>outer_form</author><pubDate>Sat, 15 Jul 2017 17:23:34 +0800</pubDate><description><![CDATA[题目描述

【问题描述】 
所谓的考试，就一定会有一道基本题给大家送分，而不嵌套题目 
的基本题怎么称得上基本呢？ 
我们可以把基本题具体看成由(),!四种字符组成的一个字符串， 
一道基本题是由若干个嵌套题中间加上,分隔组成，而所谓的嵌套题 
指 的 是 一 对 括 号 之 间 放 入 若 干 道 由 ! 分 隔 的 基 本 题 。 例 如 
(()!(()!())),(()!())就是一道基本]]></description><category></category></item><item><title><![CDATA[杜教筛]]></title><link>https://blog.youkuaiyun.com/outer_form/article/details/53386673</link><guid>https://blog.youkuaiyun.com/outer_form/article/details/53386673</guid><author>outer_form</author><pubDate>Sat, 15 Jul 2017 17:22:04 +0800</pubDate><description><![CDATA[莫比乌斯函数前缀和

51nod - 1244 
令S(n)=∑ni=1μ(i)S(n)=\sum_{i=1}^n\mu(i)，求S(n),1≤n≤1010S(n),1 \le n \le 10^{10}



做法

[n=1]=∑d|nμ(d)[n=1]=\sum_{d|n}\mu(d) 
∑i=1∑d|iμ(d)=∑i=1∑j=1⌊ni⌋μ(j)=∑i=1nS(ni)=1\sum_{i=1}]]></description><category></category></item><item><title><![CDATA[【PKUSC2017】我是一条咸鱼]]></title><link>https://blog.youkuaiyun.com/outer_form/article/details/72638466</link><guid>https://blog.youkuaiyun.com/outer_form/article/details/72638466</guid><author>outer_form</author><pubDate>Tue, 23 May 2017 11:58:14 +0800</pubDate><description><![CDATA[Day0报到日，我准备先去PKUSC考一天，再决定是继续是留在PKU还是THU，结果重庆省队过了THU初审的同学都是这么想的。。。。 
由于酒店离PKU有4km，试了试骑ofo去pku，由于有了之前apio、ctsc的骑(qiao)行(ke)经验，去北大只要20分钟，然后徒步和坐公交需要1h左右，感觉很赞。Day1今年先考数学，由于我太弱，所以感觉很难，考完之后有把握的只有两道题，和去年相比难度陡增]]></description><category></category></item><item><title><![CDATA[【数论】[CQOI2017]小 Q 的表格]]></title><link>https://blog.youkuaiyun.com/outer_form/article/details/70048317</link><guid>https://blog.youkuaiyun.com/outer_form/article/details/70048317</guid><author>outer_form</author><pubDate>Tue, 11 Apr 2017 10:33:28 +0800</pubDate><description><![CDATA[好气哦！！！题目描述输入输出输出文件 table.out。 
输出共m行，每次操作之后输出1行，表示答案mod 1,000,000,007之后的结果。分析好气啊！！！好气啊！！这样一个傻逼题为什么当时不A 
观察式子(a,a+b)(a,a+b)可以发现，我们可以根据gcdgcd给表格的元素分组。每次修改一个一个数(i,j)(i,j)，和它同组的元素都会修改。 
对于每一组，比如第gg组，f(i,j)]]></description><category></category></item><item><title><![CDATA[【考试总结】[CQOI2017]考试总结]]></title><link>https://blog.youkuaiyun.com/outer_form/article/details/69939426</link><guid>https://blog.youkuaiyun.com/outer_form/article/details/69939426</guid><author>outer_form</author><pubDate>Mon, 10 Apr 2017 00:00:48 +0800</pubDate><description><![CDATA[再奋斗一年，争取AK NOIP2016 CQOI2017、
这是去年我立的flag。Day0看考场，电脑挺快，而且配置和评测机一样，可以放心的在自己的电脑上卡常测试啦，好评。 
码了一道fft的题，没网只好拷着回家交，键盘蜜汁小，enter占据了两行，旁边还有关机按钮。。。。 
座位安排奥妙重重，和巴蜀dyf大神坐在一起。 
晚上在背模板中度过。Day1巴蜀同学和往常一样，考前大喊AK，一脸懵逼。当]]></description><category></category></item><item><title><![CDATA[【NOI2016】网格]]></title><link>https://blog.youkuaiyun.com/outer_form/article/details/55683816</link><guid>https://blog.youkuaiyun.com/outer_form/article/details/55683816</guid><author>outer_form</author><pubDate>Sat, 18 Feb 2017 23:01:44 +0800</pubDate><description><![CDATA[题目描述输入输出样例输入 
4 4 2  
1 1  
4 4  
2 3 1  
1 2  
2 2 2  
1 1  
2 2  
1 1 0样例输出 
2 
1 
0 
-1分析我们很容易看出答案只有可能是2,1,0,-1。关于一些表述的解释
  我们将蝈蝈所在格子称为障碍，其余格子称为空地。 
  根据题意，我们可以看做最外围也是一圈障碍，但是我们不去管它，一下所提到的障碍都不包括外围的一圈]]></description><category></category></item><item><title><![CDATA[WC2017&THUWC2017 游记]]></title><link>https://blog.youkuaiyun.com/outer_form/article/details/55243230</link><guid>https://blog.youkuaiyun.com/outer_form/article/details/55243230</guid><author>outer_form</author><pubDate>Thu, 16 Feb 2017 01:12:56 +0800</pubDate><description><![CDATA[我可能去了假的WC QAQ 
人世几回伤往事，山形依旧枕寒流。day1报到日，然而我们学校从重庆坐火车去绍兴，完美错过开幕式day2上午鏼鏼鏼讲字符串，勉强听懂前半截。 
下午rzz的猜数游戏，尛焱轟讲IOI2016试题，勉强跟上节奏。 
从晚上的营员交流开始，冬眠营正式拉开序幕。 
myy的Berlekamp Massey算法，从头开始懵逼 
敦敦敦的30KB神题彻底将我催眠，接下来的仙人掌计数在]]></description><category></category></item><item><title><![CDATA[【矩阵相关】[Codeforces - 736D]Permutations]]></title><link>https://blog.youkuaiyun.com/outer_form/article/details/53437989</link><guid>https://blog.youkuaiyun.com/outer_form/article/details/53437989</guid><author>outer_form</author><pubDate>Tue, 27 Dec 2016 14:41:20 +0800</pubDate><description><![CDATA[题目大意

n个的排列，给你m条规则，规则是一个数对(ai,bi)(a_i,b_i)，代表数字bib_i可以放在第aia_i个位置。 
对于每一条规则，如果我们删掉它，符合剩下的规则的排列数如果是奇数，就输出YES，否则输出NO。



分析

首先，我们可以把这些规则表示成邻接矩阵。 
那本来的排列数就是邻接矩阵的积和式，但是我们无法快速计算积和式，但是我们只需要知道奇偶性。 
考虑一下求积和式]]></description><category></category></item><item><title><![CDATA[【暴力/网络流】[Codeforces - 739E]Gosha is hunting]]></title><link>https://blog.youkuaiyun.com/outer_form/article/details/53426347</link><guid>https://blog.youkuaiyun.com/outer_form/article/details/53426347</guid><author>outer_form</author><pubDate>Tue, 27 Dec 2016 14:40:36 +0800</pubDate><description><![CDATA[题目大意

有n个口袋妖怪，a个精灵球，b个超级球，抓住第i个口袋妖怪的几率分别为pip_i和uiu_i，对于每个口袋妖怪，每种球最多只能使用1个，你必须在一开始就决定丢球的方案，使得抓住的口袋妖怪的数量最大。



分析



费用流

对于每个口袋妖怪，如果只扔一个球，那么收益就是pi  
p_i或者qiq_i，如果两球都扔，收益就是分别扔两球的和减去pi×qip_i \times  q_i，]]></description><category></category></item><item><title><![CDATA[【网络流】[Codeforces - 739D]Recover a functional graph]]></title><link>https://blog.youkuaiyun.com/outer_form/article/details/53425328</link><guid>https://blog.youkuaiyun.com/outer_form/article/details/53425328</guid><author>outer_form</author><pubDate>Fri, 02 Dec 2016 19:16:52 +0800</pubDate><description><![CDATA[题目大意

有一个n个点的有向图，每个点的出度为1。 
对于每个点，有两个信息，一个是这个点到环的距离x，一个是这个点能够到达的环的长度y。 
有一些点的的某些信息未知，求能否构造出这样一个图。

分析

对于两个信息都已经知道的点，我们就可以根据这些点来算出我们还需要哪些点。 
那些有部分信息未知的点就可以向需求连边，跑网络流。 
如果所有需求都能被满足，则有解。 
特别地，对于y未知的点，如果]]></description><category></category></item><item><title><![CDATA[【DP+二分】[CodeForces - 713D] Animals and Puzzle]]></title><link>https://blog.youkuaiyun.com/outer_form/article/details/52585100</link><guid>https://blog.youkuaiyun.com/outer_form/article/details/52585100</guid><author>outer_form</author><pubDate>Mon, 19 Sep 2016 13:44:54 +0800</pubDate><description><![CDATA[题目大意给你一个01矩阵，询问一个矩形区域内最大的全1正方形。分析令f[i][j]f[i][j]表示以(i,j)(i,j)为右下角的最大全1正方形。 
显然f[i][j]=min(f[i−1][j],f[i][j−1],f[i−1][j−1])+1f[i][j]=\min(f[i-1][j],f[i][j-1],f[i-1][j-1])+1 
然后用二维st表维护f数组的区间最大值 
然后对于每个询]]></description><category></category></item><item><title><![CDATA[【DP】[CodeForces - 713C]Sonya and Problem Wihtout a Legend]]></title><link>https://blog.youkuaiyun.com/outer_form/article/details/52585006</link><guid>https://blog.youkuaiyun.com/outer_form/article/details/52585006</guid><author>outer_form</author><pubDate>Mon, 19 Sep 2016 13:31:57 +0800</pubDate><description><![CDATA[题目大意给你一个序列，每次操作你可以使一个数+1或-1，问最少需要多少次操作能够使这个序列严格递增。分析严格递增就是要ai+1>=ai+1a_{i+1}>=a_i+1，我们两边同时减去i−1i-1，就是ai+1−(i+1)>=ai−ia_{i+1}-(i+1)>=a_i-i 
我们令bi=ai−ib_i=a_i-i，原问题就等价于使bb序列不降，这是一个经典问题。 
可以参考poj3666或者cf1]]></description><category></category></item><item><title><![CDATA[【线段树】[CodeForces - 717F]Heroes of Making Magic III]]></title><link>https://blog.youkuaiyun.com/outer_form/article/details/52584914</link><guid>https://blog.youkuaiyun.com/outer_form/article/details/52584914</guid><author>outer_form</author><pubDate>Mon, 19 Sep 2016 13:14:46 +0800</pubDate><description><![CDATA[题目大意一个长度为n的序列，每一个位置都有一些小怪。英雄可以在序列上左右移动，并且可以击杀一个他所到达的位置上的小怪，每次移动必须击杀小怪。 
有两种操作：
1 a b k 区间[a,b]中的每一个位置都增加k个小怪
2 a b 英雄能否在一个端点开始，在另一个端点结束，并且杀光[a,b]内所有小怪，英雄不能移动出区间。
分析设第ii个位置有aia_i个小怪 
假设区间为[l,r][l,r]，我们让]]></description><category></category></item><item><title><![CDATA[【费用流】[CodeForces - 717G]Underfail]]></title><link>https://blog.youkuaiyun.com/outer_form/article/details/52584460</link><guid>https://blog.youkuaiyun.com/outer_form/article/details/52584460</guid><author>outer_form</author><pubDate>Mon, 19 Sep 2016 11:48:51 +0800</pubDate><description><![CDATA[题目大意题目大概说给一个主串和几个有价值的模式串，某个模式串与主串匹配就能累加对应的价值，一个模式串可以在多个位置和主串匹配但同一个位置只能一次，此外主串各个字符最多可以用x次，问如何匹配使获得的价值最大。分析暴力匹配模式串在主串中的位置，然后在匹配区间的左端点和右端点+1的地方连一条边，容量为1，费用为匹配这个模式串的收益。 
然后在相邻的两个位置之间连边，容量为1，费用为0。跑一次最大费用流即可]]></description><category></category></item><item><title><![CDATA[【Fibonacci 序列+第一类Stirling数+二项式定理】[CodeForces - 717A]Festival Organization]]></title><link>https://blog.youkuaiyun.com/outer_form/article/details/52584268</link><guid>https://blog.youkuaiyun.com/outer_form/article/details/52584268</guid><author>outer_form</author><pubDate>Mon, 19 Sep 2016 11:30:24 +0800</pubDate><description><![CDATA[题目大意问有多少种方案选择k个不同的长度相同01串。 
这些01串中要求不能出现连续的两个0。长度在[l,r][l,r]区间内。分析很容易发现，长度为ii合法01串个数为Fi+2F_{i+2}(FiF_i表示斐波那契数列的第i项)，方案数就为(Fi+2k)F_{i+2}\choose k，令Sn=∑n+2i=3(Fik)S_n=\sum _{i=3}^{n+2} {F_{i}\choose k}，则]]></description><category></category></item><item><title><![CDATA[【DP or 生成函数】[CodeForces - 712D]Memory and Scores]]></title><link>https://blog.youkuaiyun.com/outer_form/article/details/52511806</link><guid>https://blog.youkuaiyun.com/outer_form/article/details/52511806</guid><author>outer_form</author><pubDate>Mon, 12 Sep 2016 11:07:13 +0800</pubDate><description><![CDATA[题目大意Memory 和 Lexa分别取数，取t轮，每一轮取的数字的范围为[−k,k][-k,k]，并且将取的数字加他们的得分，问有多少种方案Memory的得分严格大于Lexa。分析算法1 :DP很容易想到计算一个人在游戏开始后得分的动态规划。 
令f[i][j]f[i][j]表示取了ii轮得jj分的情况，显然f[i][j]=∑l=−kkf[i−1][j−l]f[i][j]=\sum_{l=-k}^]]></description><category></category></item></channel></rss>