<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lanshui_Yang的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lanshui_Yang</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lanshui_Yang]]></copyright><item><title><![CDATA[PYTHON 双引号 单引号 多引号区别]]></title><link>https://blog.youkuaiyun.com/lanshui_Yang/article/details/47184597</link><guid>https://blog.youkuaiyun.com/lanshui_Yang/article/details/47184597</guid><author>lanshui_Yang</author><pubDate>Sat, 01 Aug 2015 11:05:52 +0800</pubDate><description><![CDATA[先说1双引号与3个双引号的区别，双引号所表示的字符串通常要写成一行
如：
s1 = "hello,world"
如果要写成多行，那么就要使用\(“连行符”)吧，如
s2 = "hello,\
world"
s2与s1是一样的。如果你用3个双引号的话，就可以直接写了，如下：
s3 = """hello,
world,
hahaha."""，那么s3实际上就是"hello,\nwo...]]></description><category></category></item><item><title><![CDATA[C++中的数学函数汇总]]></title><link>https://blog.youkuaiyun.com/lanshui_Yang/article/details/40826057</link><guid>https://blog.youkuaiyun.com/lanshui_Yang/article/details/40826057</guid><author>lanshui_Yang</author><pubDate>Wed, 05 Nov 2014 16:45:35 +0800</pubDate><description><![CDATA[math.h 数学函数库,一些数学计算的公式的具体实现是放在math.h里,具体有： 
1 三角函数 
double sin (double); 
double cos (double); 
double tan (double); 
2 反三角函数 
double asin (double); 结果介于[-PI/2, PI/2] 
double acos (double); 结果介]]></description><category></category></item><item><title><![CDATA[ACMclub 1757 二叉链表存储的二叉树 - from lanshui_Yang]]></title><link>https://blog.youkuaiyun.com/lanshui_Yang/article/details/38687437</link><guid>https://blog.youkuaiyun.com/lanshui_Yang/article/details/38687437</guid><author>lanshui_Yang</author><pubDate>Tue, 19 Aug 2014 20:48:57 +0800</pubDate><description><![CDATA[题目描述：

在本题中，将会给出一个按照先序遍历得出的字符串，空格代表空的子节点，大写字母代表节点内容。请通过这个字符串建立二叉树，并按照题目描述中的一种先序遍历和两种中序遍历的算法分别输出每一个非空节点。





输入格式
输入只有一行，包含一个字符串S，用来建立二叉树。保证S为合法的二叉树先序遍历字符串，节点内容只有大写字母，且S的长度不超过100。
输出
共有三行，每]]></description><category></category></item><item><title><![CDATA[POJ 2752 Seek the Name, Seek the Fame]]></title><link>https://blog.youkuaiyun.com/lanshui_Yang/article/details/38568515</link><guid>https://blog.youkuaiyun.com/lanshui_Yang/article/details/38568515</guid><author>lanshui_Yang</author><pubDate>Thu, 14 Aug 2014 23:28:03 +0800</pubDate><description><![CDATA[题目大意：给你一个字符串，让你找出这个字符串中有多少满足下列条件的字串：该字串既是母串的前缀，也是字串的后缀。
        解题思路：此题着重考察对KMP 算法中的Next 数组的理解。
代码如下：
#include
#include
#include
#include
#include
#include
using namespace std ;
const int MAXN = 40]]></description><category></category></item><item><title><![CDATA[POJ 3683 Priest John's Busiest Day (2 - SAT) - from lanshui_Yang]]></title><link>https://blog.youkuaiyun.com/lanshui_Yang/article/details/16330051</link><guid>https://blog.youkuaiyun.com/lanshui_Yang/article/details/16330051</guid><author>lanshui_Yang</author><pubDate>Thu, 14 Nov 2013 21:16:24 +0800</pubDate><description><![CDATA[题目大意：一个城镇里只有一个牧师，在国庆节这一天，他要为 n 对夫妇的婚礼祷告，这 n 对夫妇婚礼的开始时间 s 、结束时间 e 和祷告时间 d 不尽相同，但是祷告只能在每个婚礼的开始或结束时进行（如一个婚礼的开始时间为s ， 结束时间为 e ， 那么祷告的时间就为 s ~ s + d 或 e - d ~ e）。问：这个牧师是否能为所有的婚礼祷告，如果能，则输出为每个婚礼祷告的开始时间和结束时间。]]></description><category></category></item><item><title><![CDATA[POJ 3169 Layout（差分约束） - from lanshui_Yang]]></title><link>https://blog.youkuaiyun.com/lanshui_Yang/article/details/15377969</link><guid>https://blog.youkuaiyun.com/lanshui_Yang/article/details/15377969</guid><author>lanshui_Yang</author><pubDate>Mon, 11 Nov 2013 19:59:13 +0800</pubDate><description><![CDATA[题目大意：有 n 头牛 ，他们站成一条线，假设这条线是一条数轴，第 i 头牛所站的位置为 Si ，则首先必须满足如下条件：
                    1、对于所有的 i （ 2 = 0 
         然后又有ML 个条件：
                             Sb - Sa 
        和MD个条件：
                   ]]></description><category></category></item><item><title><![CDATA[POJ Chores - from lanshui_Yang]]></title><link>https://blog.youkuaiyun.com/lanshui_Yang/article/details/14539679</link><guid>https://blog.youkuaiyun.com/lanshui_Yang/article/details/14539679</guid><author>lanshui_Yang</author><pubDate>Fri, 08 Nov 2013 20:47:17 +0800</pubDate><description><![CDATA[题目大意：给你 n 个任务，编号从 1 ~ n ， 有些任务有前驱任务 ，即前驱任务完成后才能开始该任务，当然，相互之间没有影响的任务可以同时进行，完成每个任务都需要一定的时间，问：完成这些任务的最少时间是多少？
        解题思路：这个题有点像拓扑排序，因为要开始每个任务前都要完成某些任务，即任务的完成是有先后顺序的，具体方法就是：将每个任务看成一个点，将入度为 0 的点压入队列，然后遍]]></description><category></category></item><item><title><![CDATA[POJ 1469 COURSES （二分匹配） - from lanshui_Yang]]></title><link>https://blog.youkuaiyun.com/lanshui_Yang/article/details/14458983</link><guid>https://blog.youkuaiyun.com/lanshui_Yang/article/details/14458983</guid><author>lanshui_Yang</author><pubDate>Thu, 07 Nov 2013 19:47:11 +0800</pubDate><description><![CDATA[题目大意：有 p 个学生和 n 门课 ， 每一个门课程可以被多个学生选，问：在每个学生只能选一门课的情况下，能否使 p 个学生每个人选的课程都不相同？
        解题思路：这是一道简单的求最大匹配问题，只要求出此图的最大匹配，然后判断是否与 p 相等即可。
        请看代码：

#include 
#include 
#include 
#include 
#include]]></description><category></category></item><item><title><![CDATA[POJ 1274 The Perfect Stall（二分匹配）- from lanshui_Yang]]></title><link>https://blog.youkuaiyun.com/lanshui_Yang/article/details/14209693</link><guid>https://blog.youkuaiyun.com/lanshui_Yang/article/details/14209693</guid><author>lanshui_Yang</author><pubDate>Tue, 05 Nov 2013 21:33:34 +0800</pubDate><description><![CDATA[题目大意不再敖述，就是赤裸裸的求最大匹配，只是顺手复习下匈牙利算法，呵呵。
           代码如下：

#include
#include
#include
#include
#include
#include
#include
#include
#define mem(a , b) memset(a , b , sizeof(a))
using namespace std ;
co]]></description><category></category></item><item><title><![CDATA[HDU 4435 charge-station - from lanshui_Yang]]></title><link>https://blog.youkuaiyun.com/lanshui_Yang/article/details/14170625</link><guid>https://blog.youkuaiyun.com/lanshui_Yang/article/details/14170625</guid><author>lanshui_Yang</author><pubDate>Tue, 05 Nov 2013 19:30:51 +0800</pubDate><description><![CDATA[题目大意：这里有n个城市， 编号为1 ~ n ， 你是一个旅行家，要从城市1 出发，经过所有城市，然后回到城市1 ，（注意：每个城市可以访问多次） ， 你的交通工具是一辆摩托车， 油箱的容量为 d 升，并且每升油可以使摩托车行驶 1 公里，为了使到所有城市旅游成为可能， 要在一些城市建造加油站，并且在城市 i 建造加油站的费用为2 ^ (i - 1) ， 请设计一个方案决定在哪些城市建加油站可以使]]></description><category></category></item><item><title><![CDATA[训练赛131030 - form lanshui_Yang]]></title><link>https://blog.youkuaiyun.com/lanshui_Yang/article/details/13630281</link><guid>https://blog.youkuaiyun.com/lanshui_Yang/article/details/13630281</guid><author>lanshui_Yang</author><pubDate>Wed, 30 Oct 2013 17:24:59 +0800</pubDate><description><![CDATA[H.Exchange for Cola
         题目大意：开始的时候你有 n 个瓶盖， 并且每 a 个瓶盖可以换 b 瓶可乐(a > b)，由于开始时可能瓶盖数量不够，你可以向别人借一些瓶盖，但最后一定要把借的瓶盖全部还回去。问你最多可以喝多少瓶啤酒？
         解题思路：这样的题是想法题，分析如下：假设最多可以换 x 次啤酒，因为每换一次啤酒瓶盖数量就会少（a - b）个]]></description><category></category></item><item><title><![CDATA[POJ 1201 Intervals (差分约束) - from lanshui_Yang]]></title><link>https://blog.youkuaiyun.com/lanshui_Yang/article/details/13367547</link><guid>https://blog.youkuaiyun.com/lanshui_Yang/article/details/13367547</guid><author>lanshui_Yang</author><pubDate>Mon, 28 Oct 2013 22:09:20 +0800</pubDate><description><![CDATA[题目大意：给你 n 个区间[ai , bi] (1 = ci ，找出包含元素个数最少的 集合 Z ， 并输出其大小 。
          解题思路：这是一道差分约束题，设 s[ i ] 表示集合Z中 小于等于 数字 i 的元素个数，则由题意得出如下约束条件：
     1、对于所有的[ai , bi] , 有 s[ bi ] - s[ai - 1] >= ci ,变换后得
s[ ai -]]></description><category></category></item><item><title><![CDATA[POJ 2400 Supervisor, Supervisee （KM + 回溯） - from lanshui_Yang]]></title><link>https://blog.youkuaiyun.com/lanshui_Yang/article/details/13095103</link><guid>https://blog.youkuaiyun.com/lanshui_Yang/article/details/13095103</guid><author>lanshui_Yang</author><pubDate>Sat, 26 Oct 2013 17:09:51 +0800</pubDate><description><![CDATA[题目大意：有 n 个老板 和 n 个员工 ，每个老板对每个员工都有一个满意度（范围 1 ~ n ，1 代表最满意），每个员工对每个老板也有一个满意度（范围1 ~ n , 1 代表最满意），但每个老板只能雇佣一个员工 ， 每个员工也只能为一个老板工作，定义 ：平均满意度 = （（每个人的满意度之和） - 2 * n ）/ (2 * n) ，要求找出是平均满意度最小的分配方案，如果有多种方案，则按员工]]></description><category></category></item><item><title><![CDATA[POJ 2195 Going Home（KM）- from lanshui_Yang]]></title><link>https://blog.youkuaiyun.com/lanshui_Yang/article/details/13091921</link><guid>https://blog.youkuaiyun.com/lanshui_Yang/article/details/13091921</guid><author>lanshui_Yang</author><pubDate>Sat, 26 Oct 2013 11:05:01 +0800</pubDate><description><![CDATA[题目大意：一张图中，有相等数量的“m” 和 “H” ，分别代表人和房子，要求通过移动人使最终每个房子里都有一个人，输出最小的移动步数。

        解题思路：这题是求最小权值匹配，可用KM算法求解，需要注意的是，KM算法求的是最大权值匹配，这里需要把每条边的权值取反，得到最大权值匹配后，再把答案取反。
        请看代码：

#include 
#include 
#incl]]></description><category></category></item><item><title><![CDATA[POJ 3013 Big Christmas Tree - from lanshui_Yang]]></title><link>https://blog.youkuaiyun.com/lanshui_Yang/article/details/13036227</link><guid>https://blog.youkuaiyun.com/lanshui_Yang/article/details/13036227</guid><author>lanshui_Yang</author><pubDate>Fri, 25 Oct 2013 21:18:24 +0800</pubDate><description><![CDATA[题目大意：给你 n 个节点，编号从1 到 n ，节点 1 为根节点，并且每个节点都有一个重量 w ，现在要在这些点之间建设公路，要求必须包含所有节点并且使整个图连通，总费用为  每条边的单价 * （该边所有子节点的重量之和） 。其实这是一个最短路的问题，经过推倒，总费用 = 每个节点的重量 * 该节点到根节点（节点1）的最短路径。
        Ps：此题卡精度 ， 需用long long ，]]></description><category></category></item><item><title><![CDATA[HDU 2255（KM） - from lanshui_Yang]]></title><link>https://blog.youkuaiyun.com/lanshui_Yang/article/details/12844755</link><guid>https://blog.youkuaiyun.com/lanshui_Yang/article/details/12844755</guid><author>lanshui_Yang</author><pubDate>Fri, 18 Oct 2013 15:27:37 +0800</pubDate><description><![CDATA[这是一道比较典型的KM算法题 ，先写一下O( n ^ 4)的算法，程序如下：

#include
#include
#include
#include
#include
#include
#define mem(a , b) memset(a , b , sizeof(a))
using namespace std ;
const int MAXN = 305 ;
const int INF]]></description><category></category></item><item><title><![CDATA[组队赛130930 - from lanshui_Yang]]></title><link>https://blog.youkuaiyun.com/lanshui_Yang/article/details/12586537</link><guid>https://blog.youkuaiyun.com/lanshui_Yang/article/details/12586537</guid><author>lanshui_Yang</author><pubDate>Thu, 10 Oct 2013 21:38:39 +0800</pubDate><description><![CDATA[BNU 27542 （LA 4875）Just The Simple Fax 
        大模拟，不再详述，但是此题的输入还是有技巧的，可以借鉴。直接上代码：

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define mem(a , b) memset(a , b ]]></description><category></category></item><item><title><![CDATA[POJ 2449 Remmarguts' Date （SPFA + A星算法） - from lanshui_Yang]]></title><link>https://blog.youkuaiyun.com/lanshui_Yang/article/details/12177365</link><guid>https://blog.youkuaiyun.com/lanshui_Yang/article/details/12177365</guid><author>lanshui_Yang</author><pubDate>Sun, 29 Sep 2013 22:22:01 +0800</pubDate><description><![CDATA[题目大意：给你一个有向图，并给你三个数s、t 和 k ，让你求从点 s 到 点 t 的第 k 短的路径。如果第 k 短路不存在，则输出“-1” ，否则，输出第 k 短路的长度。
        解题思路：这道题是一道简单的启发式搜索题目。而启发式搜索中A星算法是比较好理解的。A星算法中需要用到一个估价函数：f（n） = g（n）+ h（n）。其中，g（n）是当前量，h（n）是估计量，两者之和 f]]></description><category></category></item><item><title><![CDATA[POJ 1251 Jungle Roads（最小生成树水题） - from lanshui_Yang]]></title><link>https://blog.youkuaiyun.com/lanshui_Yang/article/details/12111433</link><guid>https://blog.youkuaiyun.com/lanshui_Yang/article/details/12111433</guid><author>lanshui_Yang</author><pubDate>Fri, 27 Sep 2013 21:29:55 +0800</pubDate><description><![CDATA[最小生成树模板题，不再敖述。
       代码如下：

#include
#include
#include
#include
#include
#include
#include
#include
#include
#define mem(a , b ) memset(a , b , sizeof(a))
using namespace std ;
const int MAXN = 10]]></description><category></category></item><item><title><![CDATA[LA 5854 Long Distance Taxi （SPFA 变型）  - from lanshui_Yang]]></title><link>https://blog.youkuaiyun.com/lanshui_Yang/article/details/12109985</link><guid>https://blog.youkuaiyun.com/lanshui_Yang/article/details/12109985</guid><author>lanshui_Yang</author><pubDate>Fri, 27 Sep 2013 20:36:41 +0800</pubDate><description><![CDATA[题目大意：直接抽象一下，有多个城市，这些城市之间有n条无向边，有一个旅行家（假设叫Mike），他有一辆摩托车，摩托车的邮箱大小为cap，其耗油量是 10千米/每升油，给定一个起点、一个终点和cap的值以及有加油站的城市 （Mike 可以在这些城市加满油），让你判断Mike是否可以从起点到达终点，如果可以，就求出路程的最小值，否则，就输出"-1"。
      解题思路：这道题是一道变型的最短路问]]></description><category></category></item></channel></rss>