摘要: /*题意:F个区域和P条路径,每个区域有a头牛且能遮蔽b头牛,求其中牛走得最远的路径的最短长度,并且所有牛都可以进入遮蔽处。题解:最大流+二分+floyd+拆点;牛从所在的位置走向遮蔽处必然是走最短路线,因此先用floyd将两两点之间的最短路径先求出,再根据这个最短路径建立图,源点到每个点加边,权值... 阅读全文
posted @ 2014-03-20 23:59 辛力啤 阅读(217) 评论(0) 推荐(0) 编辑
摘要: /*题意:F个区域和P条路径,每个区域有a头牛且能遮蔽b头牛,求其中牛走得最远的路径的最短长度,并且所有牛都可以进入遮蔽处。题解:最大流+二分+floyd+拆点;牛从所在的位置走向遮蔽处必然是走最短路线,因此先用floyd将两两点之间的最短路径先求出,再根据这个最短路径建立图,源点到每个点加边,权值... 阅读全文
posted @ 2014-03-20 23:57 辛力啤 阅读(487) 评论(0) 推荐(0) 编辑
摘要: /*题意:有N个点的农场,之间有M条路径,问从起点走到到终点再走回起点的最短行走距离是多少,并且行走过程中的路径不能有重复。题解:最小费用最大流;建图:建立无向图,边的权值均为1,保证路径只能走一次再分别加入源点和汇点,分别连接起点和终点,权值分别为2,因为题目求的是一个来回的路径,亦即求从起点到终... 阅读全文
posted @ 2014-03-20 23:56 辛力啤 阅读(297) 评论(0) 推荐(0) 编辑
摘要: /*题意:k台机器和c头牛分别在自己的点,输入为路径,c头牛要到k台机器挤奶,每台机器最多挤m头牛,求最短的最远行走距离。题解:最大流+二分+floyd;题目求的是每次行走路程中每头牛行走的最远距离,因此直接在最开始的时候用floyd求出从一个点到另一个点的最短距离,这样就保证了牛走的都是最短距离,... 阅读全文
posted @ 2014-03-20 23:51 辛力啤 阅读(191) 评论(0) 推荐(0) 编辑
摘要: /*题意:女孩拍片,每部电影只能在每周固定的几天里面拍,总共需要拍D天,并且需要在W周内拍完,女孩每天只能为一部电影拍片,问女孩是否能全部拍完。题解:最大流;建图:将每个星期化为总的每一天为W*7个点,每部电影为N个点,电影在哪天可以拍则加入一条有向边,并且权值为1,这样保证当天同一部只能拍一天;加... 阅读全文
posted @ 2014-03-20 23:50 辛力啤 阅读(210) 评论(0) 推荐(0) 编辑
摘要: /*题意:一开始有m个猪栏,初始分别有一定数目的猪;有n个生意人,按先后顺序来买猪,每个生意人只能买其中几个编号为ai的猪栏中的猪,而且此时可以重新分配这几个ai猪栏的猪;问最多能卖多少头猪。题解:最大流,重点是建图,本题用了个极其暴力的方法建图,竟然不超时,可见数据蛮水的;显然首先加入源点,在源点... 阅读全文
posted @ 2014-03-20 23:49 辛力啤 阅读(300) 评论(0) 推荐(0) 编辑
摘要: /*题意:F种食物和D种饮料,每种食物和饮料的数目也是固定的,总共有N位顾客,每位顾客都只吃喝固定种类的食品饮料,问最多能满足多少为顾客。题解:最大流+拆点;建图:将每位顾客拆成两个点,同一顾客之间加入权值为1的有向边限制了只能是一位一位顾客来满足,再加入源点来连接每一种食物,权值为该食物数量,然后... 阅读全文
posted @ 2014-03-20 23:47 辛力啤 阅读(426) 评论(0) 推荐(0) 编辑
摘要: /*题意:有N个岛屿和M条路线连接岛屿,这些路线可以在单位时间内运输一定数量的人数,给出每个岛屿的坐标,问从最西的岛向最东的最大运输量是多少。题解:赤果果的最大流;邻接表建无向图,找出最东最西的岛屿并且求最大流。注意:本题用了网上的ISAP模版,不知为何用sap模版疯狂的错误还是超时,反正是被坑了无... 阅读全文
posted @ 2014-03-20 23:46 辛力啤 阅读(212) 评论(0) 推荐(0) 编辑
摘要: /*题意:中文题!!!与hdu1565一模两样!!!题解:求最小权点覆盖集;参考网站:http://yzmduncan.iteye.com/blog/1149057最小权点覆盖=总权值-最大流题目要求所选两个方格不能有共边,因此将所有的方格看作顶点,公共边看作连接两个顶点的边,这样这个方形就转变为了... 阅读全文
posted @ 2014-03-20 23:45 辛力啤 阅读(336) 评论(0) 推荐(0) 编辑
摘要: /*题意:中文题题解:求最小权点覆盖集;参考网站:http://yzmduncan.iteye.com/blog/1149057最小权点覆盖=总权值-最大流题目要求所选两个方格不能有共边,因此将所有的方格看作顶点,公共边看作连接两个顶点的边,这样这个方形就转变为了一个无向图;题目要求两两顶点间没有公... 阅读全文
posted @ 2014-03-20 23:44 辛力啤 阅读(264) 评论(0) 推荐(0) 编辑
摘要: /*题意:给出排水沟的图,以及沟渠流量,求最大流出速率题解:最大流,EK算法,完全模版;*/#include #include #include #define EMAX 405#define VMAX 205using namespace std;int EN;//边的总数int head[VMA... 阅读全文
posted @ 2014-03-20 23:43 辛力啤 阅读(163) 评论(0) 推荐(0) 编辑
摘要: /*强连通+缩点+搜索特殊处理,求单向连通这一题的符合条件的图经过缩点重构后为拓扑图。对于重新构造出的新图,判断这个图是否单向连通若结点的后继大于等于2个,则需判断这些所有的后继是之间否为单向连通,然后搜索所有点。从中找到的规律为:入度为0的点有且仅有一个,删除这个点后的图中,入度为0的点依然有且仅... 阅读全文
posted @ 2014-03-20 23:41 辛力啤 阅读(139) 评论(0) 推荐(0) 编辑
摘要: /*题目意思是将连通的无向图转化为有向的强连通图。显然,其中桥是必须来回都有,剩下就是将桥连接的连通图转化。不含有桥的连通图必定是由多个圈组成(有公共边或无公共边)。因此进行一次深搜并在遍历边时加上方向即为所求结果在求桥的过程中输出所遍历的边时要注意回溯的边要输出,同时要判断回溯的边所指是否为双亲,... 阅读全文
posted @ 2014-03-20 23:40 辛力啤 阅读(311) 评论(0) 推荐(0) 编辑
摘要: /*题意:knight从一个位置移动到另一位置,求最少移动多少步题解:BFS*/#include #include #include using namespace std;int dir[8][2] = {{-2,-1},{-1,-2},{1,-2},{2,-1},{2,1},{1,2},{-1,... 阅读全文
posted @ 2014-03-20 23:38 辛力啤 阅读(233) 评论(0) 推荐(0) 编辑
摘要: /*题意:给出一个矩形由n*n个小矩形,每个小矩形由四个三角形组成,分别在上下左右,每个三角形有一个数字,通过调换这些矩形的位置,找出一种情况能使得任意两个相邻的小矩形之间有公共边的两个三角形的值一样,能找出这张情况则输出possible,否则输出impossible。题解:DFS,搜索剪枝;n*n... 阅读全文
posted @ 2014-03-20 23:37 辛力啤 阅读(754) 评论(0) 推荐(0) 编辑
摘要: /*题意:给出一个矩形地面,且地面很滑,向某个方向走只能一直走直到撞到block才能停下,即在block的旁边停下,而且一旦撞到则该block消失;该矩形框的四周相当于没有block,会直接滑走;如果下一格就会遇到block,则这个方向也不能走;给出起点和终点,求从起点到终点(经过也算)最少需要多少... 阅读全文
posted @ 2014-03-20 23:36 辛力啤 阅读(280) 评论(0) 推荐(0) 编辑
摘要: /*题意:数独题解:DFS,爆搜;据闻可用跳跃表做。。。。。*/#include #include int m[10][10];bool flag;void dfs(int pos){ if (pos == 81) { for(int i=0; i<9; i++) ... 阅读全文
posted @ 2014-03-20 23:35 辛力啤 阅读(178) 评论(0) 推荐(0) 编辑
摘要: /*题意:中文题,忽略题解:DFS;因为k#include using namespace std;int n,k,ans;int vis_cl[10];//记录列是否已存在点char m[10][10];void dfs(int r, int sum)//DFS,r为当前行,sum为当前搜索到的点... 阅读全文
posted @ 2014-03-20 23:34 辛力啤 阅读(147) 评论(0) 推荐(0) 编辑
摘要: /*题意:给出一个n*n的和一个m*m的0 1矩阵,求m是否为n的子矩阵题解:暴力搜索剪枝看到这道题,没什么思路,能想到的只能有暴力剪枝,然后就是如何剪枝优化速度:首先是看到矩阵就会容易联想到通过求和来剪枝,因为求和可以在输入的过程中同时进行,因此不会浪费时间,然后对求出的和进行比较,在n维矩阵中找... 阅读全文
posted @ 2014-03-20 23:33 辛力啤 阅读(402) 评论(0) 推荐(0) 编辑
摘要: /*题意:给出一个公式F(x),每给出一个y,求出F(x)的最小值题解:二分查找首先对F(x)求导,则当F'(x)=0时F(x)取最小值,因此求出F'(x)=0时的x,然后代入求结果即可注意精度*/#include bool bingo(double left, double right){ ... 阅读全文
posted @ 2014-03-20 23:32 辛力啤 阅读(221) 评论(0) 推荐(0) 编辑