<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[cha1_cool的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/cha1_cool</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cha1_cool]]></copyright><item><title><![CDATA[poj 3013 Big Christmas Tree（最短路问题）]]></title><link>https://blog.youkuaiyun.com/cha1_cool/article/details/9996919</link><guid>https://blog.youkuaiyun.com/cha1_cool/article/details/9996919</guid><author>cha1_cool</author><pubDate>Fri, 16 Aug 2013 10:19:02 +0800</pubDate><description><![CDATA[http://poj.org/problem?id=3013


题目大意：
意思大概是给你一张图，图中的每个顶点都有权值，顶点之间的边也有权值；
源点为顶点1；
定义连接顶点n（n!=1）的费用为，顶点n到顶点n的最短距离×顶点n的权值；
问构建一棵包含所有顶点的树的最小费用为多少，若是存在无法连接到的点输出No Answer；


思路：
题目不难，简单的最短路的应用；但]]></description><category></category></item><item><title><![CDATA[MNNUACM--暑假训练之二分图]]></title><link>https://blog.youkuaiyun.com/cha1_cool/article/details/9831153</link><guid>https://blog.youkuaiyun.com/cha1_cool/article/details/9831153</guid><author>cha1_cool</author><pubDate>Thu, 08 Aug 2013 09:43:34 +0800</pubDate><description><![CDATA[Problem 1001（HDU 1083 Courses）
题目大意：
给你p门课程和n个学生，一个学生可以选0门，1门，或者多门课程，现在要求一个由p个学生组成的集合，满足下列2个条件：
1.每个学生选择一个不同的课程
2.每个课程都有不同的代表
如果满足，就输出YES


思路：
二分图的最大匹配；
学生和课程分别为定点集合vx vy

把学生和他喜欢的的课程连一条边]]></description><category></category></item><item><title><![CDATA[poj 2226 Muddy Fields（二分图）]]></title><link>https://blog.youkuaiyun.com/cha1_cool/article/details/9813923</link><guid>https://blog.youkuaiyun.com/cha1_cool/article/details/9813923</guid><author>cha1_cool</author><pubDate>Wed, 07 Aug 2013 10:57:18 +0800</pubDate><description><![CDATA[http://poj.org/problem?id=2226


题目大意：
一个农场为R × C的矩阵，其中 * 号的地方为泥巴地；现在要用宽度为1,长度不限的模板覆盖住所有的泥巴地，且不能覆盖到草地，问最小要几块；


思路：
看题目很自然的想到二分图的行列匹配法，这题只是稍微加点处理就行；
把同一行或者同一列的泥巴地看成是一个点，用行列匹配法求解最大匹配就是答案；

]]></description><category></category></item><item><title><![CDATA[poj 1637 Sightseeing tour（混合欧拉回路）]]></title><link>https://blog.youkuaiyun.com/cha1_cool/article/details/9798781</link><guid>https://blog.youkuaiyun.com/cha1_cool/article/details/9798781</guid><author>cha1_cool</author><pubDate>Tue, 06 Aug 2013 22:28:59 +0800</pubDate><description><![CDATA[http://poj.org/problem?id=1637


题目大意：
大概就是给出城市内n个点和s条边，并且告诉你边是单向还是双向的；
问是否存在一条路线从起点出发经过每个点一次之后回到起点；


思路：
混合欧拉回路，网络流的经典建图题目；
下面是这个博客写的关于混合欧拉回路的 写的很好：http://www.cnblogs.com/destinydesigner/a]]></description><category></category></item><item><title><![CDATA[poj  3308 Paratroopers（最小割）]]></title><link>https://blog.youkuaiyun.com/cha1_cool/article/details/9771611</link><guid>https://blog.youkuaiyun.com/cha1_cool/article/details/9771611</guid><author>cha1_cool</author><pubDate>Mon, 05 Aug 2013 20:02:21 +0800</pubDate><description><![CDATA[http://poj.org/problem?id=3308


题目大意：
地球和火星大战，火星人要摧毁我们的一个武器工厂。已知一个火星人就足以摧毁工厂；
现在我们知道l个火星人将会降落在一个m*n的方阵，而我们的激光枪每次开枪可以杀死一行或者一列的火星人；
但是激光枪架设在不同地方的费用是不一样的；
现在给出激光枪分别架设在m行的第一个位置的费用以及架设n列的第一个位置时的费用，]]></description><category></category></item><item><title><![CDATA[poj 1523 SPF（无向图点的连通性问题）]]></title><link>https://blog.youkuaiyun.com/cha1_cool/article/details/9769109</link><guid>https://blog.youkuaiyun.com/cha1_cool/article/details/9769109</guid><author>cha1_cool</author><pubDate>Mon, 05 Aug 2013 16:51:09 +0800</pubDate><description><![CDATA[http://poj.org/problem?id=1523


题目大意：
无向图点的连通性问题；
给出一个无向图，要求求出图中的割点和去掉该割点后图的连通分量个数；
这里解释一下
割点：设V’是连通图G的一个顶点子集，如果在G中删除v‘以及和v’相关联的边后，G不再连通，则称V‘为割点集；如果割点集中只有一个顶点，则这个顶点为割点；
连通分量：当删除某个割点后，原图会被划分为若]]></description><category></category></item><item><title><![CDATA[poj 2195 Going Home（KM||费用流）]]></title><link>https://blog.youkuaiyun.com/cha1_cool/article/details/9749485</link><guid>https://blog.youkuaiyun.com/cha1_cool/article/details/9749485</guid><author>cha1_cool</author><pubDate>Sun, 04 Aug 2013 19:58:29 +0800</pubDate><description><![CDATA[http://poj.org/problem?id=2195



题目大意：
给定一个N*M的地图，地图上有一定数量的m（代表人）和H（代表房子），两者数量相等；
要求求出把所有m移动到H的位置上总距离最小为多少；


思路：
用最优二分匹配或者最小费用最大流都能做，觉得用最优二分匹配会简单一些；
建图把m和H分别作为二分图的两个顶点集合vx和vy，求出两两之间的距离，用k]]></description><category></category></item><item><title><![CDATA[poj 2516 Minimum Cost（最小费用最大流）]]></title><link>https://blog.youkuaiyun.com/cha1_cool/article/details/9749289</link><guid>https://blog.youkuaiyun.com/cha1_cool/article/details/9749289</guid><author>cha1_cool</author><pubDate>Sun, 04 Aug 2013 19:22:23 +0800</pubDate><description><![CDATA[http://poj.org/problem?id=2516


题目大意：
有n个商店，m个仓库，k种商品，给出每个商店对k种商品的需求和每个仓库储存的k种商店库存，要求求出满足供应要求的最小运输费用；
题目的输入：
第一行输入3个整数n，m，k分别代表商店仓库以及商品种类的数量；
接下来n行分别列出每个商店k种商品的需求数量；
接下来m行分别列出每个仓库k种商品的库存数量；
]]></description><category></category></item><item><title><![CDATA[poj 3895 Cycles of Lanes(DFS找最大环)]]></title><link>https://blog.youkuaiyun.com/cha1_cool/article/details/9746803</link><guid>https://blog.youkuaiyun.com/cha1_cool/article/details/9746803</guid><author>cha1_cool</author><pubDate>Sun, 04 Aug 2013 14:53:32 +0800</pubDate><description><![CDATA[http://poj.org/problem?id=3895


题目大意：
一个无向图，找出包含顶点个数的环，输出最大顶点个数；
思路：
简单搜索#include
#include
#define N 5000
using namespace std;

int vis[N],n,m;
int Max;
vector  graph[N];//vector存储相连接的点]]></description><category></category></item><item><title><![CDATA[poj 3422 Kaka's Matrix Travels（最小费用最大流）]]></title><link>https://blog.youkuaiyun.com/cha1_cool/article/details/9744957</link><guid>https://blog.youkuaiyun.com/cha1_cool/article/details/9744957</guid><author>cha1_cool</author><pubDate>Sun, 04 Aug 2013 11:22:45 +0800</pubDate><description><![CDATA[http://poj.org/problem?id=3422


题目大意：
n*n的矩阵，每个点上面有一个非负整数。
从左上角走到右下角，只能走向下或者向右走；
sum=0；走到一个位置就位置上的数字加到sum里面，并且把位置整数变为0；
要求求出最k次能使sum最大为多少。


思路：
最小费用最大流的问题：


觉得建图很难理解，是看了别人思路才知道怎么建图的，要]]></description><category></category></item><item><title><![CDATA[poj 3469 Dual Core CPU（最小割）]]></title><link>https://blog.youkuaiyun.com/cha1_cool/article/details/9713495</link><guid>https://blog.youkuaiyun.com/cha1_cool/article/details/9713495</guid><author>cha1_cool</author><pubDate>Fri, 02 Aug 2013 10:37:03 +0800</pubDate><description><![CDATA[http://poj.org/problem?id=3469


题目大意：
SWODNIW的双核cpu包含n个模块，各个肿块在每个cpu中的耗费分别为a和b；
同时m对模块之间需要徐局共享，也就是说需要共享的两个模块不在同一个cpu中运行就要花费w来用于数据共享；
求出最小耗费；


思路：
妥妥的最小割，建图也不难，建立源点s，汇点t，模块作为顶点。
s到每个模块的边容量]]></description><category></category></item><item><title><![CDATA[HDU 2363 Cycling（枚举+最短路）]]></title><link>https://blog.youkuaiyun.com/cha1_cool/article/details/9707455</link><guid>https://blog.youkuaiyun.com/cha1_cool/article/details/9707455</guid><author>cha1_cool</author><pubDate>Thu, 01 Aug 2013 20:27:05 +0800</pubDate><description><![CDATA[http://acm.hdu.edu.cn/showproblem.php?pid=2363

题目大意：
n个点，没个点都有不同的高度，同时n个点之间有m条路，题目要求从第1个点到第n个点，在所经过点的最高高度和最低高度的差最小的情况下的最短路径。
思路：

把每个点的高度升序排列，然后枚举各个高度差之间的最短路径，最后去高度差最小的最短路径，题目也就解决掉了，同时题目所给的点n最多]]></description><category></category></item><item><title><![CDATA[poj 2391 Ombrophobic Bovines（二分+最大流）]]></title><link>https://blog.youkuaiyun.com/cha1_cool/article/details/9706681</link><guid>https://blog.youkuaiyun.com/cha1_cool/article/details/9706681</guid><author>cha1_cool</author><pubDate>Thu, 01 Aug 2013 19:29:24 +0800</pubDate><description><![CDATA[http://poj.org/problem?id=2391


题目大意：
农场里面N块地，分别有Ai头奶牛；
地上搭有遮雨棚，棚内可以容纳Bi头奶牛；


农场的N块地之间有P条路径，给出从u到v的路径需要花费时间time[u][v]；
问所有奶牛都到遮雨棚中的最小时间是多少。



思路：
1、把每块地拆成两个点i和i‘ ；
2、建立一个源点s和一个汇点t；
]]></description><category></category></item><item><title><![CDATA[poj 1087 A Plug for UNIX（最大流）]]></title><link>https://blog.youkuaiyun.com/cha1_cool/article/details/9699023</link><guid>https://blog.youkuaiyun.com/cha1_cool/article/details/9699023</guid><author>cha1_cool</author><pubDate>Thu, 01 Aug 2013 10:31:11 +0800</pubDate><description><![CDATA[http://poj.org/problem?id=1087
题目大意：
会议室里有n1个插座，n2个电器，n3种适配器；
一种电器对应一种插座，适配器则可以用于转换；
求最好的情况下有多少电器不能适配。


思路：

1、各个电器各自为一个节点，建立一个源点且源点到电器的容量为1；
2、将室内已有的插座各自为一个节点，建立一个汇点且各个插座到汇点的容量为1；
3、电器节点到]]></description><category></category></item><item><title><![CDATA[poj 2112 Optimal Milking（二分搜索+最大流）]]></title><link>https://blog.youkuaiyun.com/cha1_cool/article/details/9672893</link><guid>https://blog.youkuaiyun.com/cha1_cool/article/details/9672893</guid><author>cha1_cool</author><pubDate>Wed, 31 Jul 2013 21:16:09 +0800</pubDate><description><![CDATA[题目链接：http://poj.org/problem?id=2112


题目大意：
有K台挤奶机器（1...K编号）和C头奶牛（K+1...K+C编号），每台挤奶机器可以给M头奶牛挤奶；
给出一个（K+C）*（K+C）的矩阵表示机器和奶牛两两之间的距离；
要求求出把奶牛运送到机器的最大流中的奶牛路径中的最短路径；


思路：

首先对给出的矩阵用Floyd求出机器奶牛两两]]></description><category></category></item><item><title><![CDATA[poj 2983 Is the Information Reliable?（差分约束）]]></title><link>https://blog.youkuaiyun.com/cha1_cool/article/details/9663935</link><guid>https://blog.youkuaiyun.com/cha1_cool/article/details/9663935</guid><author>cha1_cool</author><pubDate>Wed, 31 Jul 2013 10:13:52 +0800</pubDate><description><![CDATA[题目链接：http://poj.org/problem?id=2983



大意：
有n个防卫站，其中有m个关系，这些关系又分为两种；
1、P，a，b，x表示a和b相距x光年；
2、V，a，b表示a和b相距至少1光年；


差分约束系统的建立：
第一种关系：
建立双向边，关系为
dist[a]-dist[b]>=x  &&  dist[a]-dist[b 
=> di]]></description><category></category></item><item><title><![CDATA[poj 1201 Intervals（差分约束系统）]]></title><link>https://blog.youkuaiyun.com/cha1_cool/article/details/9635525</link><guid>https://blog.youkuaiyun.com/cha1_cool/article/details/9635525</guid><author>cha1_cool</author><pubDate>Tue, 30 Jul 2013 23:21:34 +0800</pubDate><description><![CDATA[题目链接：http://poj.org/problem?id=1201


题目大意：
给定n个区间[ai,bi]和区间范围内的整数个数ci，要求求出一个最小整数集合Z，使Z里面的数中在区间[ai,bi]的个数不小于ci个。


思路：
根据题意可以得出，
Sbi+1-Sai>=ci ->> Sai-Sbi+1

从而可以得出一组不等式组；
同时存在：
Si+1-Si
]]></description><category></category></item><item><title><![CDATA[poj 2449 Remmarguts' Date（A* + dijkstra）]]></title><link>https://blog.youkuaiyun.com/cha1_cool/article/details/9626137</link><guid>https://blog.youkuaiyun.com/cha1_cool/article/details/9626137</guid><author>cha1_cool</author><pubDate>Tue, 30 Jul 2013 12:10:52 +0800</pubDate><description><![CDATA[http://poj.org/problem?id=2449


大意：
题目意思很简单，就是给你一张图，要求求出从s点到t点的第k短路；


不懂A*算法的可以去看看这篇文章：http://www.cppblog.com/mythit/archive/2009/04/19/80492.aspx


#include
#include
#include
#include
usi]]></description><category></category></item><item><title><![CDATA[poj 1258 Agri-Net]]></title><link>https://blog.youkuaiyun.com/cha1_cool/article/details/9621511</link><guid>https://blog.youkuaiyun.com/cha1_cool/article/details/9621511</guid><author>cha1_cool</author><pubDate>Mon, 29 Jul 2013 20:17:40 +0800</pubDate><description><![CDATA[http://poj.org/problem?id=1258


题目意思很简单，给出一个n*n的矩阵代表各个农场之间的距离，求最小生成树就行；
直接prim；

#include
using namespace std;

const int inf=1<<25;

int n;
int farm_dist[101][101];
int low_dist[101];
bool vis]]></description><category></category></item><item><title><![CDATA[poj 3026 Borg Maze（搜索+最小生成树）]]></title><link>https://blog.youkuaiyun.com/cha1_cool/article/details/9618181</link><guid>https://blog.youkuaiyun.com/cha1_cool/article/details/9618181</guid><author>cha1_cool</author><pubDate>Mon, 29 Jul 2013 16:53:59 +0800</pubDate><description><![CDATA[http://poj.org/problem?id=3026



题目大意：
在一个y行 x列的迷宫中，有可行走的通路空格’ ‘，不可行走的墙’#’，还有两种英文字母A和S，现在从S出发，要求用最短的路径连接所有字母，输出这条路径的总长度。一个格子的长度为1；
思路：
记录途中每个字母的位置，利用搜索求出字母两两之间的距离，构造出图，再求最小生成树；
/*BFS + Prim*/]]></description><category></category></item></channel></rss>