<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[cstdio_hao的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/cstdio_hao</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cstdio_hao]]></copyright><item><title><![CDATA[hdu 2476 String painter（区间dp）]]></title><link>https://blog.youkuaiyun.com/cstdio_hao/article/details/49705005</link><guid>https://blog.youkuaiyun.com/cstdio_hao/article/details/49705005</guid><author>cstdio_hao</author><pubDate>Sat, 07 Nov 2015 20:43:13 +0800</pubDate><description><![CDATA[一道挺经典的区间dp，我用的方法和网上的方法不一样，我觉得我的方法还不错，有兴趣可以看看]]></description><category></category></item><item><title><![CDATA[poj 3419 Difference Is Beautiful 离线线段树]]></title><link>https://blog.youkuaiyun.com/cstdio_hao/article/details/49643119</link><guid>https://blog.youkuaiyun.com/cstdio_hao/article/details/49643119</guid><author>cstdio_hao</author><pubDate>Wed, 04 Nov 2015 21:10:33 +0800</pubDate><description><![CDATA[Difference Is Beautiful




Time Limit: 5000MS
 
Memory Limit: 65536K


Total Submissions: 2102
 
Accepted: 656




Description

Mr. Flower's business is growing much faster than or]]></description><category></category></item><item><title><![CDATA[poj 3237 树链剖分+线段树]]></title><link>https://blog.youkuaiyun.com/cstdio_hao/article/details/48953239</link><guid>https://blog.youkuaiyun.com/cstdio_hao/article/details/48953239</guid><author>cstdio_hao</author><pubDate>Wed, 07 Oct 2015 20:32:15 +0800</pubDate><description><![CDATA[题意就是给你一棵树，每条边上都有权值，有三种操作，把某条边的权值变成v，把点a到点b之间的路径上的边的权值都乘上-1，求a到b的路径上的最大值。
其实这题的线段树要比树链剖分难写，首先，因为有乘-1的操作，所以不光要维护最大值，还要维护最小值，这样在乘-1后，最大值就可以直接根据最小值得到，当然，延迟操作是必须的，其中细节还是蛮多的，需要注意。
好久没敲线段树了，wa了好多发，话说这线段树是有]]></description><category></category></item><item><title><![CDATA[poj 3237 树链剖分]]></title><link>https://blog.youkuaiyun.com/cstdio_hao/article/details/48917827</link><guid>https://blog.youkuaiyun.com/cstdio_hao/article/details/48917827</guid><author>cstdio_hao</author><pubDate>Mon, 05 Oct 2015 21:03:08 +0800</pubDate><description><![CDATA[这几天，看到别的队都有会树链剖分的，于是就来学了一下。。。
就是把边的权值变成了深度较深的那个点的权值
#include
#include
#include
using namespace std;

const int maxn = 100010;
int sum[maxn*4],add[maxn*4];
struct si{
    int f,t,c,next;
}side[maxn*2]]></description><category></category></item><item><title><![CDATA[poj 3294 后缀数组]]></title><link>https://blog.youkuaiyun.com/cstdio_hao/article/details/46043977</link><guid>https://blog.youkuaiyun.com/cstdio_hao/article/details/46043977</guid><author>cstdio_hao</author><pubDate>Wed, 27 May 2015 11:06:09 +0800</pubDate><description><![CDATA[链接 http://poj.org/problem?id=3294
题意：给你n个字符串，n小于100，每个字符串的长度小于1000，让你找出至少在一半的字符串中出现过得最长的一个字串，如果有多个，那就按照字典序逐个输出
思路：我们先把所有的字符串连成一个大的字符串，每个字符串之间用一个没有出现过得字符xx隔开（注意这个字符也要两两不同），在把所有串连成一个大串的过程中，我们用一个set来把每]]></description><category></category></item><item><title><![CDATA[poj 1679 The Unique MST  最小生成树]]></title><link>https://blog.youkuaiyun.com/cstdio_hao/article/details/41870895</link><guid>https://blog.youkuaiyun.com/cstdio_hao/article/details/41870895</guid><author>cstdio_hao</author><pubDate>Thu, 11 Dec 2014 19:21:49 +0800</pubDate><description><![CDATA[点击打开链接 http://poj.org/problem?id=1679

题意：给一个无向图，问最小生成树是否唯一，如果唯一就输出最小生成树的所有边的权值的和，如果不唯一，那么就输出Not Unique!
思路：在用prime算法求最小生成树的过程中，在找到权值最小的一个节点之后，先判断一下，这个节点的权值是否可以由好几条路径求得，并且权值都等于当前权值，如果是的话，那么最小生成树就不唯]]></description><category></category></item><item><title><![CDATA[hdu 2473 Junk-Mail Filter  并查集删除]]></title><link>https://blog.youkuaiyun.com/cstdio_hao/article/details/41867909</link><guid>https://blog.youkuaiyun.com/cstdio_hao/article/details/41867909</guid><author>cstdio_hao</author><pubDate>Thu, 11 Dec 2014 15:51:48 +0800</pubDate><description><![CDATA[点击打开链接 http://acm.hdu.edu.cn/showproblem.php?pid=2473
题意：给出n种操作，M a b表示a和b是同一个并查集，S a表示在并查集中删除a，要注意的是，如果1和2是一个并查集，2和3是一个并查集，那么1和3也是一个并查集，即使删除2之后，我们依然可以得到1和3还是一个集合里的。
思路：由于并查集是一种树结构，无法在树种删除一个点后还让树继续保]]></description><category></category></item><item><title><![CDATA[hdu 1829 A Bug's Life  并查集]]></title><link>https://blog.youkuaiyun.com/cstdio_hao/article/details/41863175</link><guid>https://blog.youkuaiyun.com/cstdio_hao/article/details/41863175</guid><author>cstdio_hao</author><pubDate>Thu, 11 Dec 2014 10:20:15 +0800</pubDate><description><![CDATA[点击打开链接 http://acm.hdu.edu.cn/showproblem.php?pid=1829
题意：给出n个关系啊a，b，表示a和b是异性，问是否存在矛盾，即存在a和b是同性。
思路，并查集，用f[i]记录i的父亲，next[i]表示同一个集合里的下一个元素，根据next数组可以遍历出一个集合里的所有元素，len[i]表示i和集合的根的关系，0表示同性，1表示异性。 每输入一个a]]></description><category></category></item><item><title><![CDATA[poj 3228   Gold Transportation    二分+最大流]]></title><link>https://blog.youkuaiyun.com/cstdio_hao/article/details/41832311</link><guid>https://blog.youkuaiyun.com/cstdio_hao/article/details/41832311</guid><author>cstdio_hao</author><pubDate>Tue, 09 Dec 2014 22:21:26 +0800</pubDate><description><![CDATA[一道比较经典的网络流题，值得一看]]></description><category></category></item><item><title><![CDATA[poj 2385 Apple Catching  dp]]></title><link>https://blog.youkuaiyun.com/cstdio_hao/article/details/41283613</link><guid>https://blog.youkuaiyun.com/cstdio_hao/article/details/41283613</guid><author>cstdio_hao</author><pubDate>Wed, 19 Nov 2014 16:18:42 +0800</pubDate><description><![CDATA[http://poj.org/problem?id=2385


题意：有两棵苹果树，每分钟都会有一棵树上会掉下来一个苹果，你必须要站在这棵树下才能接到这棵树掉下来的苹果，你可以在两棵树之间来回走动，而且不花费时间，但是来回走的次数不超过w次，现在告诉你每分钟从哪棵树上会掉下来苹果，问你最多能接着多少个，你的其实位置实在第一棵树下。
思路：用dp[i][j][k]表示第i分钟，已经来回走了]]></description><category></category></item><item><title><![CDATA[poj 2137 Cowties dp]]></title><link>https://blog.youkuaiyun.com/cstdio_hao/article/details/41282945</link><guid>https://blog.youkuaiyun.com/cstdio_hao/article/details/41282945</guid><author>cstdio_hao</author><pubDate>Wed, 19 Nov 2014 15:42:53 +0800</pubDate><description><![CDATA[http://poj.org/problem?id=2137


题意：有n头牛，xi]]></description><category></category></item><item><title><![CDATA[poj 1681 Painter's Problem 高斯消元]]></title><link>https://blog.youkuaiyun.com/cstdio_hao/article/details/41216763</link><guid>https://blog.youkuaiyun.com/cstdio_hao/article/details/41216763</guid><author>cstdio_hao</author><pubDate>Mon, 17 Nov 2014 20:50:25 +0800</pubDate><description><![CDATA[http://poj.org/problem?id=1681]]></description><category></category></item><item><title><![CDATA[poj 1830 开关问题 高斯消元]]></title><link>https://blog.youkuaiyun.com/cstdio_hao/article/details/41214431</link><guid>https://blog.youkuaiyun.com/cstdio_hao/article/details/41214431</guid><author>cstdio_hao</author><pubDate>Mon, 17 Nov 2014 19:28:50 +0800</pubDate><description><![CDATA[题目链接  http://poj.org/problem?id=1830


题意]]></description><category></category></item><item><title><![CDATA[poj 2689 Prime Distance]]></title><link>https://blog.youkuaiyun.com/cstdio_hao/article/details/41015723</link><guid>https://blog.youkuaiyun.com/cstdio_hao/article/details/41015723</guid><author>cstdio_hao</author><pubDate>Tue, 11 Nov 2014 19:17:12 +0800</pubDate><description><![CDATA[点击打开链接


ti]]></description><category></category></item><item><title><![CDATA[poj 2142 The Balance  扩展欧几里得]]></title><link>https://blog.youkuaiyun.com/cstdio_hao/article/details/40952539</link><guid>https://blog.youkuaiyun.com/cstdio_hao/article/details/40952539</guid><author>cstdio_hao</author><pubDate>Sun, 09 Nov 2014 19:35:23 +0800</pubDate><description><![CDATA[点击打开题目链接


题意：]]></description><category></category></item><item><title><![CDATA[poj 1692 Crossed Matchings    DP]]></title><link>https://blog.youkuaiyun.com/cstdio_hao/article/details/40866113</link><guid>https://blog.youkuaiyun.com/cstdio_hao/article/details/40866113</guid><author>cstdio_hao</author><pubDate>Thu, 06 Nov 2014 19:16:32 +0800</pubDate><description><![CDATA[点击打开题目链接
题意：给]]></description><category></category></item><item><title><![CDATA[poj 1682 Clans on the Three Gorges  dp(好题)]]></title><link>https://blog.youkuaiyun.com/cstdio_hao/article/details/40785823</link><guid>https://blog.youkuaiyun.com/cstdio_hao/article/details/40785823</guid><author>cstdio_hao</author><pubDate>Tue, 04 Nov 2014 15:33:35 +0800</pubDate><description><![CDATA[这是poj上的一道比较好的动态规划的题目，奈何很少有人做过这道题，所以，我想把它发上来给大家看一下，应该会有收获吧。]]></description><category></category></item><item><title><![CDATA[poj 1952 BUY LOW, BUY LOWER  dp]]></title><link>https://blog.youkuaiyun.com/cstdio_hao/article/details/40746761</link><guid>https://blog.youkuaiyun.com/cstdio_hao/article/details/40746761</guid><author>cstdio_hao</author><pubDate>Mon, 03 Nov 2014 20:25:04 +0800</pubDate><description><![CDATA[点击打开题目链接]]></description><category></category></item><item><title><![CDATA[poj 1745 Divisibility  dp]]></title><link>https://blog.youkuaiyun.com/cstdio_hao/article/details/40741811</link><guid>https://blog.youkuaiyun.com/cstdio_hao/article/details/40741811</guid><author>cstdio_hao</author><pubDate>Mon, 03 Nov 2014 15:42:24 +0800</pubDate><description><![CDATA[点击打开题目链接


题意：给出n个数字，让你在这n个数字之间加上加号和减号，问最后能不能得到一个数字，使它能被k整除。


思路：dp，把每个数字处理后可能得到的结果保存下来，如果能得到，dp值就是1，否则就是0.需要注意的是，每个得到的值必须是由前面的所有数字进行加减得到的，所以每次状态转移的时候只能把新得到的状态存下来，而之前的状态都抛弃，因为之前得到的状态都是只由前i个数字得到]]></description><category></category></item><item><title><![CDATA[hdu 1160 FatMouse's Speed  dp]]></title><link>https://blog.youkuaiyun.com/cstdio_hao/article/details/40622099</link><guid>https://blog.youkuaiyun.com/cstdio_hao/article/details/40622099</guid><author>cstdio_hao</author><pubDate>Thu, 30 Oct 2014 16:25:32 +0800</pubDate><description><![CDATA[题意：有n只老鼠，每只老鼠有自己的体重和速度，让你找出最长的一个序列，每个老鼠都比之前的老鼠体重重并且速度慢，求序列的最大长度和次长度的任意的一个序列。
思路：用一个结构体存下每个老鼠的体重，速度和一开始的位置，然后排序，先按体重从小到大排序，如果体重一样，就按速度从大到小排序，然后dp数组表示一第i个老鼠为结尾的最长序列长度（此时处理的是排序完了的序列），dp[i]=max(dp[i],dp[]]></description><category></category></item></channel></rss>