<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[RabbitHole]]></title><description><![CDATA[An oier from ssoi]]></description><link>https://blog.youkuaiyun.com/Ano_path</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Ano_path]]></copyright><item><title><![CDATA[【PA2012】Tax (最短路)]]></title><link>https://blog.youkuaiyun.com/Ano_path/article/details/52201482</link><guid>https://blog.youkuaiyun.com/Ano_path/article/details/52201482</guid><author>Ano_path</author><pubDate>Sat, 13 Aug 2016 20:43:55 +0800</pubDate><description><![CDATA[因为图G的权值在点上，如果想用常规的最短路算法解决本题，可以构建一张新图G’，使G’中的点对应G中 的边，边对应G中的点。

由于一个点的权值取决于入边和出边的最大值，对于G中每个入边e以及出边e’，在G’中向与其对应p和p’连一条边，费用为两者的最大值。

这样新图中的总边数为m2，不能通过所有数据点。

结合点的权值取决于入边和出边的最大值的性质，可以利用差分思想降低总边数：

1.将原图中的一点的入边和出边按照]]></description><category></category></item><item><title><![CDATA[【JOI Camp 2015】IOIO卡片占卜]]></title><link>https://blog.youkuaiyun.com/Ano_path/article/details/52143367</link><guid>https://blog.youkuaiyun.com/Ano_path/article/details/52143367</guid><author>Ano_path</author><pubDate>Sun, 07 Aug 2016 16:48:44 +0800</pubDate><description><![CDATA[K理事长很喜欢占卜，经常用各种各样的方式进行占卜。今天，他准备使用正面写着”I”，反面写着”O”的卡片为今年IOI的日本代表队占卜最终的成绩。占卜的方法如下所示：1、首先，选择5个正整数A,B,C,D,E。2、将A+B+C+D+E张IOI卡片排成一行，最左侧的A张卡片正面朝上，接下来B张反面朝上，接下来C张卡片正面朝上，接下来D张反面朝上，最后E张正面朝上。如此排列的话，从左侧]]></description><category></category></item><item><title><![CDATA[【UVa12563】劲歌金曲]]></title><link>https://blog.youkuaiyun.com/Ano_path/article/details/52049025</link><guid>https://blog.youkuaiyun.com/Ano_path/article/details/52049025</guid><author>Ano_path</author><pubDate>Wed, 27 Jul 2016 20:10:45 +0800</pubDate><description><![CDATA[注意：虽然t<=10^9，但是歌曲的总时长不会超过50*180。后面t再大也是没有用的。

答案要**依次**满足两个条件：

	1.唱的歌尽可能多。

	2.歌曲的总时长尽可能长。

在限定的条件内选取多个物品，使物品的总价值最大，这不难让我们想到01背包模型。]]></description><category></category></item><item><title><![CDATA[【SSOJ】物品选取 (pack)]]></title><link>https://blog.youkuaiyun.com/Ano_path/article/details/52026945</link><guid>https://blog.youkuaiyun.com/Ano_path/article/details/52026945</guid><author>Ano_path</author><pubDate>Mon, 25 Jul 2016 19:54:15 +0800</pubDate><description><![CDATA[经典的背包问题

对于情况1，只需要把当前物品拆成0~m种物品，价值为其函数值，转化为01背包模型。
时间复杂度为O(nm)。

对于情况2，显然为多重背包模型。
时间复杂度为O(nm)。

对于情况3，显然为完全背包模型。
时间复杂度为O(nΣlog amount[i])。

具体参见dd_engi的《背包九讲》。]]></description><category></category></item><item><title><![CDATA[【FJ 2013】继任者]]></title><link>https://blog.youkuaiyun.com/Ano_path/article/details/52016016</link><guid>https://blog.youkuaiyun.com/Ano_path/article/details/52016016</guid><author>Ano_path</author><pubDate>Sun, 24 Jul 2016 20:31:01 +0800</pubDate><description><![CDATA[人员结构事实上是树形关系，一个人的继任者必然在他的子树内。
这类问题显然可以通过dfs序+线段树解决。

那么要如何处理能力值大于这名员工的人中忠诚度最高的问题呢？
不妨建一颗空的线段树，维护人员忠诚度的最大值。然后把人员按照能力值从大到小排序。
在将每个人插入线段树之前先查询他子树区间内忠诚度最大的人员即可。这样就能确保线段树内人员的能力值一定比当前人员的能力值大。

时间复杂度为O(n+nlogn)]]></description><category></category></item><item><title><![CDATA[【2012noip模拟】最长路径(path)]]></title><link>https://blog.youkuaiyun.com/Ano_path/article/details/51974113</link><guid>https://blog.youkuaiyun.com/Ano_path/article/details/51974113</guid><author>Ano_path</author><pubDate>Wed, 20 Jul 2016 23:02:38 +0800</pubDate><description><![CDATA[设dist(x)为树上一点到根的路径，则i,j的路径长度为dist(i)+dist(j)-2*dist(lca)。

根据异或的性质，不难得出在本题中i,j的路径为dist(i)^dist(j)。

因此问题转化为在树上求一个点对(i,j)，使其距离的异或值最大。

不妨将每个点的距离按照二进制位建成一颗Trie树，枚举每个点，每次贪
心在树上寻找最佳匹配即可。

由于Trie树的深度为logn，因此最终时间复杂度为]]></description><category></category></item><item><title><![CDATA[【FJ 2016 Day5】抢夺(rush)]]></title><link>https://blog.youkuaiyun.com/Ano_path/article/details/51945128</link><guid>https://blog.youkuaiyun.com/Ano_path/article/details/51945128</guid><author>Ano_path</author><pubDate>Mon, 18 Jul 2016 20:18:15 +0800</pubDate><description><![CDATA[贪心来想，一定选取最短路。

答案受每轮时间t和人流量f影响：ans =$ \frac{k-f}{f}+t$
那么要选取几条最短路呢？
只选取一条保证t小，但是f也随之减小。
选多条使得t增大，但是f也增大了。
由于这个问题不存在单调性，考虑用网络流枚举。]]></description><category></category></item><item><title><![CDATA[【FJ 2016 Day5】冷战(coldwar)]]></title><link>https://blog.youkuaiyun.com/Ano_path/article/details/51945011</link><guid>https://blog.youkuaiyun.com/Ano_path/article/details/51945011</guid><author>Ano_path</author><pubDate>Mon, 18 Jul 2016 20:05:20 +0800</pubDate><description><![CDATA[对于问题，并不需要知道两点路径的具体情况，只需要考虑两点是否连通，以及何时连通即可。
因此可以用一个并查集维护两点的连通关系，向该点的父亲连一条边权为连通时间的边，已经连通的点就没必要再连通了。
这样确保并查集是一棵树，且全为最优解，每次查询两点到LCA路径上的的最大值即可。
由于树的深度最多为logn，因此最终的时间复杂度为O(nlongn)]]></description><category></category></item><item><title><![CDATA[【PA2014】Fiolki]]></title><link>https://blog.youkuaiyun.com/Ano_path/article/details/51927068</link><guid>https://blog.youkuaiyun.com/Ano_path/article/details/51927068</guid><author>Ano_path</author><pubDate>Sat, 16 Jul 2016 23:22:07 +0800</pubDate><description><![CDATA[题目描述化学家吉丽想要配置一种神奇的药水来拯救世界。吉丽有n种不同的液体物质，和n个药瓶（均从1到n编号）。初始时，第i个瓶内装着g[i]克的第i种物质。吉丽需要执行一定的步骤来配置药水，第i个步骤是将第a[i]个瓶子内的所有液体倒入第b[i]个瓶子，此后第a[i]个瓶子不会再被用到。瓶子的容量可以视作是无限的。吉丽知道某几对液体物质在一起时会发生反应产生沉淀，具体反应是1克c[i]物质和1克d[i]]></description><category></category></item><item><title><![CDATA[【USACO】帮派(gangs)]]></title><link>https://blog.youkuaiyun.com/Ano_path/article/details/51926561</link><guid>https://blog.youkuaiyun.com/Ano_path/article/details/51926561</guid><author>Ano_path</author><pubDate>Sat, 16 Jul 2016 21:35:22 +0800</pubDate><description><![CDATA[贪心的来想：先让其他帮派的上场互相消除，最后再派1号帮派的上场。

我们先来考虑如何判定是否有解：对于一个局面，倘若不存在一个帮派的成员数量>=n/2，那么就一定存在一个方案，否则就无解。

显然，当存在一个帮派的数量大于n/2时，剩下的奶牛都不可能将它们全部抵消。

基于这个思想，就不难得出答案：
我们设所剩奶牛数为ans，那么首先ans要满足除了1号以外的每个帮派内的奶牛数的2倍都小于n-ans+1（即预留了an]]></description><category></category></item><item><title><![CDATA[【2013国家队互测】家族(family)]]></title><link>https://blog.youkuaiyun.com/Ano_path/article/details/51919923</link><guid>https://blog.youkuaiyun.com/Ano_path/article/details/51919923</guid><author>Ano_path</author><pubDate>Fri, 15 Jul 2016 17:51:15 +0800</pubDate><description><![CDATA[答案需满足两个条件： 
1.sum>=k 
2.R-L最小满足1的不一定满足2，但是满足2的一定要满足1 
所以我们考虑枚举L和R，再检验是否满足sum>=k最暴力的做法是： 
将边按照频率的大小排序，枚举一维下界，枚举一维上界，将频率在区间内的边的两端点合并，通过并查集维护每个连通块的大小，效率是O(m3m^3)，不能通过所有数据点。考虑枚举上界的情况： 
由于下界不变，枚举上]]></description><category></category></item><item><title><![CDATA[【BJOJ1097】旅游景点 atr （spfa+状压dp）]]></title><link>https://blog.youkuaiyun.com/Ano_path/article/details/51913299</link><guid>https://blog.youkuaiyun.com/Ano_path/article/details/51913299</guid><author>Ano_path</author><pubDate>Thu, 14 Jul 2016 21:59:10 +0800</pubDate><description><![CDATA[题目描述

FGD想从成都去上海旅游。由于FGD非常讨厌乘车的颠簸，他希望在满足他的要求的情况下，旅行的距离尽量短，这样他就有足够
的精力来欣赏风景。
整个城市交通网络包含N个城市以及城市与城市之间的双向道路M条。城市自1至N依次编号，道路亦然。没有从某个城市直接到它
自己的道路，两个城市之间最多只有一条道路直接相连，但可以有多条连接两个城市的路径。任意两条道路如果相遇，则相遇点也
必]]></description><category></category></item></channel></rss>