<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Dawn_LLLLLLL]]></title><description><![CDATA[【AFO】歌唱吧。]]></description><link>https://blog.youkuaiyun.com/Dawn_LLLLLLL</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Dawn_LLLLLLL]]></copyright><item><title><![CDATA[POJ 3764 The xor-longest Path]]></title><link>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/86654987</link><guid>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/86654987</guid><author>Dawn_LLLLLLL</author><pubDate>Sat, 26 Jan 2019 10:49:14 +0800</pubDate><description><![CDATA[传送门

题目大意：给定一棵 n 个点的带权树，求树上最长的异或和路径。

对于树上从x到y的路径的异或和，表示为 D(x,y)D(x,y)D(x,y)，则有：
D(x,y)=D(1,x)⊕D(1,y)D(x,y)=D(1,x) \oplus D(1,y)D(x,y)=D(1,x)⊕D(1,y)
而所有的D(1,i)D(1,i)D(1,i)是可以O(n)O(n)O(n)求出的。
问题转化为在N-1...]]></description><category></category></item><item><title><![CDATA[LOJ #10029 棋盘游戏]]></title><link>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/86648532</link><guid>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/86648532</guid><author>Dawn_LLLLLLL</author><pubDate>Fri, 25 Jan 2019 16:40:57 +0800</pubDate><description><![CDATA[传送门

题目大意：有两个4×4的01方阵，在只能交换相邻的点的情况下，求从一个方阵转移到另一个所需要的最少的步数。

tag是广搜，但是深搜能过还跑得飞快。
输入时处理出两组数组，第一组是初始状态为0目标状态为1的棋子的坐标，另一组是初始状态为1目标状态为0的棋子的坐标。我们只需要把第一组的棋子移到第二组的棋子的位置就好了。
而事实上不需要去模拟棋子移动的过程，直接爆搜每个点的目的地，代价就是两...]]></description><category></category></item><item><title><![CDATA[NOIP2018游记]]></title><link>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/84338218</link><guid>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/84338218</guid><author>Dawn_LLLLLLL</author><pubDate>Fri, 23 Nov 2018 13:44:10 +0800</pubDate><description><![CDATA[今年神神奇奇地过了初赛。
说实话考提高组还是有点紧张的
其实能过初赛我已经很高兴了
Day 0
下午就出发去六中了于是早上就看看模板，最后重新写了一遍负环发现过不了？？？据说是改了题了但是来不及调于是就仓促地出发了。
这趟车坐的真是极其不舒服，大概是遭了头天晚上仗着不用上课拉着舍友唠嗑的报应吧。
酒店的房间真的小，晚上出去吃饭听到了一个极其震撼的消息，但可能是因为我比较冷血或是说没有造成什么实质性...]]></description><category></category></item><item><title><![CDATA[洛谷 P3313 [SDOI2014]旅行（树链剖分+线段树）]]></title><link>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/81010294</link><guid>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/81010294</guid><author>Dawn_LLLLLLL</author><pubDate>Thu, 12 Jul 2018 09:31:48 +0800</pubDate><description><![CDATA[传送门



这题是求固定路径上某固定宗教的评级最大值或和，由于我们知道树上路径是顺着链走的，我们可以用树链剖分使一条链上的编号连续，方便查询。

每个宗教建一棵线段树，动态开点，编号按树链剖分后的新编号，维护的是城市评价。 
那么改变评级就相当于改变某线段树内的值，改变宗教就相当于换根（移到另一棵线段树内）。

求值时按链往上跳，统计答案。



Code:



#include&amp;lt;cst...]]></description><category></category></item><item><title><![CDATA[洛谷 P3157 [CQOI2011]动态逆序对（主席树+树状数组）]]></title><link>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/81000672</link><guid>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/81000672</guid><author>Dawn_LLLLLLL</author><pubDate>Wed, 11 Jul 2018 14:55:37 +0800</pubDate><description><![CDATA[传送门



做这题前请先学动态第k小，这里blog。

首先我们有


  对于序列A，它的逆序对数定义为满足i&amp;amp;amp;lt;j，且Ai&amp;amp;amp;gt;Aj的数对(i,j)的个数。


那么第一次输出时直接输出序列的逆序对个数，然后问题就转化为删去某个元素时删去的逆序对数。

若删去元素的位置为x，它产生的贡献就是原序列中区间[1,x-1]中大于x的数的个数与区间[x+1,n]中小于x的数的个数加上前面删去的...]]></description><category></category></item><item><title><![CDATA[洛谷 P2468 [SDOI2010]粟粟的书架（主席树+二分）]]></title><link>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80998249</link><guid>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80998249</guid><author>Dawn_LLLLLLL</author><pubDate>Wed, 11 Jul 2018 11:43:22 +0800</pubDate><description><![CDATA[传送门



首先我们知道，这题数据有两部分：


  对于50%的数据，满足R, C≤200，M≤200,000； 
  另有50%的数据，满足R＝1，C≤500,000，M≤20,000；



对于前50%的数据，我们可以直接二分取书的页数下界解决。 
于是我们定义to[i][j][k]表示矩阵[1,1]至矩阵[i,j]中所有不小于k的数的总和，num[i][j][k]为它们的个数。 
于是...]]></description><category></category></item><item><title><![CDATA[洛谷 P2617 Dynamic Rankings（树状数组+主席树）]]></title><link>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80982022</link><guid>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80982022</guid><author>Dawn_LLLLLLL</author><pubDate>Tue, 10 Jul 2018 10:34:59 +0800</pubDate><description><![CDATA[传送门



动态区间第k小主要需要学习两种算法，一种是树状数组，另一种是主席树。也就是树状数组套主席树，可以去我以前的blog里看。

在树状数组里，一个点x维护的是区间[x-lowbit(x)+1,x]的信息，而第x棵主席树维护的是区间[1,x]的信息，若是按原来的前缀和主席树修改会很麻烦，于是我们把它们套一套得到：第x棵主席树维护的是区间[x-lowbit(x)+1,x]的信息。

而我们在...]]></description><category></category></item><item><title><![CDATA[洛谷 P3834 可持久化线段树 1（主席树）]]></title><link>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80973673</link><guid>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80973673</guid><author>Dawn_LLLLLLL</author><pubDate>Mon, 09 Jul 2018 16:45:06 +0800</pubDate><description><![CDATA[传送门



主席树模板，求静态区间第k小。 
据说主席树又叫可持久化线段树，因此它肯定跟线段树很有关系。 
我们用n棵线段树来维护，第i棵线段树维护的是前1~i个元素的值。而每棵线段树上同一位置的节点维护的范围是一样的，若第i个元素的值是x，我们就在线段树里把x这个位置与管理它的节点的值都加1。因为每一棵线段树的结构都是一样的，所以我们可以合并它们。我们每次只需根据新输入的第i个值建一条链，然后...]]></description><category></category></item><item><title><![CDATA[洛谷 P3178 [HAOI2015]树上操作（树链剖分）]]></title><link>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80841825</link><guid>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80841825</guid><author>Dawn_LLLLLLL</author><pubDate>Thu, 28 Jun 2018 13:34:08 +0800</pubDate><description><![CDATA[传送门



裸的树链剖分。。 
不会的同学可以戳这。。



我觉得可以直接上代码。。 
这次并没有动态开点。。 
Code:

#include&amp;lt;cstdio&amp;gt;
#include&amp;lt;cstdlib&amp;gt;
#define ll long long

struct node{int y,next;}a[200010];
struct tree{int l,r,lc,rc;ll c...]]></description><category></category></item><item><title><![CDATA[洛谷 P2590 [ZJOI2008]树的统计（树链剖分）]]></title><link>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80828238</link><guid>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80828238</guid><author>Dawn_LLLLLLL</author><pubDate>Thu, 28 Jun 2018 13:24:00 +0800</pubDate><description><![CDATA[传送门



比较基础的树链剖分吧。。。

树链剖分的关键就在把在同一条链上的点的编号连续，这样就可以快速地用线段树维护修改与求值了（当然据说线段数组也可以）。 
而我们找链的依据是什么？ 
这就要提到重链了。 
首先我们提出一个概念：重儿子 
重儿子就是儿子中他的子节点数最少的一个。



#include&amp;amp;lt;cstdio&amp;amp;gt;
#include&amp;amp;lt;cstdlib&amp;amp;gt;
#inclu...]]></description><category></category></item><item><title><![CDATA[[网络流24题]洛谷 P2756 飞行员配对方案问题（最大流）]]></title><link>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80363425</link><guid>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80363425</guid><author>Dawn_LLLLLLL</author><pubDate>Fri, 18 May 2018 13:54:30 +0800</pubDate><description><![CDATA[传送门



最大流嘛…… 
构图： 
从源点向每一个外籍飞行员连流量为1的边。 
从每一个英国飞行员向汇点连流量为1的边。 
从每一个外籍飞行员向他可以搭档的英国飞行员连流量为1的边。 
然后就跑dinic。 
当最大流为0时无解。 
反之，对于每条从外籍飞行员连向英国飞行员的边，如果它的反向边流量不为零，说明这两个飞行员匹配，计入答案。

Code:



#include&amp;amp;lt;cstdio...]]></description><category></category></item><item><title><![CDATA[[网络流24题]洛谷 P1251 餐巾计划问题（费用流）]]></title><link>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80321794</link><guid>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80321794</guid><author>Dawn_LLLLLLL</author><pubDate>Tue, 15 May 2018 13:50:07 +0800</pubDate><description><![CDATA[传送门



把每一天拆成早上(i)和晚上(i+n)，每天晚上会收到用过的脏毛巾，早上会从快洗部和慢洗部或通过购买得到新毛巾。

构图： 
1.从源点向每一天晚上建流量为当天需要的餐巾数ri，费用为0的边，表示每天晚上会有ri条用过的餐巾。 
2.从每一天早上向汇点建流量为当天需要的餐巾数ri，费用为0的边，表示每天白天需要提供ri条干净的餐巾，流满时餐巾够用。 
3.从每一天晚上向下一天晚上建流...]]></description><category></category></item><item><title><![CDATA[GDOI2018酱油记]]></title><link>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80194334</link><guid>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80194334</guid><author>Dawn_LLLLLLL</author><pubDate>Sat, 05 May 2018 23:33:15 +0800</pubDate><description><![CDATA[今年东道主啊壮哉我大一中



Day -1

莫名其妙被教练拉去试机贴名字封USB接口整理胸卡，400+张有名字的牌要归到50个机构？？（话说学校编号没有27哎还有编号999真的强）附带的10+张名单还是按字典序排序的？？5个人弄这个弄了3个钟校对什么的真是要爆炸了…… 
还有被赶去初中部竞赛室是什么，电脑卡到不做评论（大神指导手动修） 
其实我觉得那件黄色衣服很好看的啊，毕竟我大一中嘛…… 
...]]></description><category></category></item><item><title><![CDATA[洛谷 P1345 [USACO5.4]奶牛的电信Telecowmunication（最小割）]]></title><link>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80061811</link><guid>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80061811</guid><author>Dawn_LLLLLLL</author><pubDate>Tue, 24 Apr 2018 11:16:47 +0800</pubDate><description><![CDATA[传送门



最小割模型。 
我们把点i拆成两个点i1和i2，把连入i点的边连到点i1，把从i点连出的边连到点i2，再在点i1和i2中间连流量为1的边，问题就转化成了最小割，割掉i1和i2中间的边就是踩坏第i台电脑。 
然后跑最大流就好了。

Code:



#include&amp;lt;cstdio&amp;gt;
#include&amp;lt;cstdlib&amp;gt;
#include&amp;lt;cstring&amp;gt...]]></description><category></category></item><item><title><![CDATA[洛谷 P2149 [SDOI2009]Elaxia的路线（SPFA+记忆化搜索）]]></title><link>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80059327</link><guid>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80059327</guid><author>Dawn_LLLLLLL</author><pubDate>Tue, 24 Apr 2018 08:55:31 +0800</pubDate><description><![CDATA[传送门



其实题目大意就是求两条最短路径的公共部分，那么怎么判断一条边(u,v,d)是否同时在两条最短路径内呢？ 
当 
(disx1,u+d+disv,y1=disx1,y1)∧(disx2,u+d+disv,y2=disx2,y2)(disx1,u+d+disv,y1=disx1,y1)∧(disx2,u+d+disv,y2=disx2,y2)(dis_{x1,u}+d+dis_{v,y1...]]></description><category></category></item><item><title><![CDATA[洛谷 P2055 [ZJOI2009]假期的宿舍（最大流）]]></title><link>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80059075</link><guid>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80059075</guid><author>Dawn_LLLLLLL</author><pubDate>Tue, 24 Apr 2018 08:12:30 +0800</pubDate><description><![CDATA[传送门



很明显是二分图最大匹配，不过似乎网络流更快，所以这里讲网络流吧。 
每张床向汇点连流量为1的边，源点向每个在学校住的在校学生或其他学校的学生连流量为1的边，每个要在学校住的学生向自己的床与自己认识的人的床连边，然后跑最大流。如果最大流=要在学校住的学生人数，就表示存在方案，反之则不存在。

Code:



#include&amp;lt;cstdio&amp;gt;
#include&amp;lt;cst...]]></description><category></category></item><item><title><![CDATA[[网络流24题]洛谷 P2774 方格取数问题（网络流）]]></title><link>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/79858273</link><guid>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/79858273</guid><author>Dawn_LLLLLLL</author><pubDate>Tue, 24 Apr 2018 07:41:38 +0800</pubDate><description><![CDATA[传送门





题目描述

在一个有 m*n 个方格的棋盘中，每个方格中有一个正整数。现要从方格中取数，使任意 2 个数所在方格没有公共边，且取出的数的总和最大。试设计一个满足要求的取数算法。对于给定的方格棋盘，按照取数要求编程找出总和最大的数。



输入输出格式

输入格式： 
第 1 行有 2 个正整数 m 和 n，分别表示棋盘的行数和列数。接下来的 m 行，每行有 n 个正整数，表示棋盘...]]></description><category></category></item><item><title><![CDATA[洛谷 P3227 [HNOI2013]切糕（最小割）]]></title><link>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80056894</link><guid>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80056894</guid><author>Dawn_LLLLLLL</author><pubDate>Mon, 23 Apr 2018 21:38:32 +0800</pubDate><description><![CDATA[传送门



最小割模型，我们构造一个P*Q*(R+1)的点阵，相邻的点连边(i,j,k) –&amp;gt;(i,j,k+1)，边权为下面的点的点权(v[i][j][k])。源点st向第一层的点连边，边权为INF，最上面一层的点向汇点ed连边，边权为顶层点权。 
这样就把取点变成了割边，割掉(i,j,k) –&amp;gt;(i,j,k+1)这条边就是选取(i,j,k)这个点（f(i,j)=k）。 
再从(i,...]]></description><category></category></item><item><title><![CDATA[洛谷 P1268 树的重量（容斥_图论）]]></title><link>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80056486</link><guid>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80056486</guid><author>Dawn_LLLLLLL</author><pubDate>Mon, 23 Apr 2018 21:11:54 +0800</pubDate><description><![CDATA[传送门



当只有两个点时，很明显 ans=disi,jans=disi,jans=dis_{i,j} 
当有三个点时 
 
ans=x+y=dis1,2+xans=x+y=dis1,2+xans=x+y=dis_{1,2}+x 
由容斥原理得 
x=dis1,3+dis2,3−dis1,22x=dis1,3+dis2,3−dis1,22x=\frac{dis_{1,3}+dis_{2,3}-d...]]></description><category></category></item><item><title><![CDATA[洛谷 P4436 [HNOI/AHOI2018]游戏（DP）]]></title><link>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80054966</link><guid>https://blog.youkuaiyun.com/Dawn_LLLLLLL/article/details/80054966</guid><author>Dawn_LLLLLLL</author><pubDate>Mon, 23 Apr 2018 19:28:01 +0800</pubDate><description><![CDATA[传送门



今天信心赛第一题，其实真的不是很难，只是我太弱不会。。 
其实就是DP啦。 
公路起点记为左儿子，铁路起点记为右儿子，从根开始深搜做DP，f[i][j][k]表示走到第i个节点，重修了j条公路与k条铁路的最小贡献。

转移方程： 
f[i][j][k]=max(dfs(son[0],j+1,k)+dfs(son[1],j,k),dfs(son[0],j,k)+dfs(son[1],j...]]></description><category></category></item></channel></rss>