摘要: /*题意:F个区域和P条路径,每个区域有a头牛且能遮蔽b头牛,求其中牛走得最远的路径的最短长度,并且所有牛都可以进入遮蔽处。题解:最大流+二分+floyd+拆点;牛从所在的位置走向遮蔽处必然是走最短路线,因此先用floyd将两两点之间的最短路径先求出,再根据这个最短路径建立图,源点到每个点加边,权值... 阅读全文
posted @ 2014-03-20 23:59 辛力啤 阅读(235) 评论(0) 推荐(0)
摘要: /*题意:F个区域和P条路径,每个区域有a头牛且能遮蔽b头牛,求其中牛走得最远的路径的最短长度,并且所有牛都可以进入遮蔽处。题解:最大流+二分+floyd+拆点;牛从所在的位置走向遮蔽处必然是走最短路线,因此先用floyd将两两点之间的最短路径先求出,再根据这个最短路径建立图,源点到每个点加边,权值... 阅读全文
posted @ 2014-03-20 23:57 辛力啤 阅读(497) 评论(0) 推荐(0)
摘要: /*题意:有N个点的农场,之间有M条路径,问从起点走到到终点再走回起点的最短行走距离是多少,并且行走过程中的路径不能有重复。题解:最小费用最大流;建图:建立无向图,边的权值均为1,保证路径只能走一次再分别加入源点和汇点,分别连接起点和终点,权值分别为2,因为题目求的是一个来回的路径,亦即求从起点到终... 阅读全文
posted @ 2014-03-20 23:56 辛力啤 阅读(311) 评论(0) 推荐(0)
摘要: /*题意:k台机器和c头牛分别在自己的点,输入为路径,c头牛要到k台机器挤奶,每台机器最多挤m头牛,求最短的最远行走距离。题解:最大流+二分+floyd;题目求的是每次行走路程中每头牛行走的最远距离,因此直接在最开始的时候用floyd求出从一个点到另一个点的最短距离,这样就保证了牛走的都是最短距离,... 阅读全文
posted @ 2014-03-20 23:51 辛力啤 阅读(202) 评论(0) 推荐(0)
摘要: /*题意:女孩拍片,每部电影只能在每周固定的几天里面拍,总共需要拍D天,并且需要在W周内拍完,女孩每天只能为一部电影拍片,问女孩是否能全部拍完。题解:最大流;建图:将每个星期化为总的每一天为W*7个点,每部电影为N个点,电影在哪天可以拍则加入一条有向边,并且权值为1,这样保证当天同一部只能拍一天;加... 阅读全文
posted @ 2014-03-20 23:50 辛力啤 阅读(226) 评论(0) 推荐(0)
摘要: /*题意:一开始有m个猪栏,初始分别有一定数目的猪;有n个生意人,按先后顺序来买猪,每个生意人只能买其中几个编号为ai的猪栏中的猪,而且此时可以重新分配这几个ai猪栏的猪;问最多能卖多少头猪。题解:最大流,重点是建图,本题用了个极其暴力的方法建图,竟然不超时,可见数据蛮水的;显然首先加入源点,在源点... 阅读全文
posted @ 2014-03-20 23:49 辛力啤 阅读(310) 评论(0) 推荐(0)
摘要: /*题意:F种食物和D种饮料,每种食物和饮料的数目也是固定的,总共有N位顾客,每位顾客都只吃喝固定种类的食品饮料,问最多能满足多少为顾客。题解:最大流+拆点;建图:将每位顾客拆成两个点,同一顾客之间加入权值为1的有向边限制了只能是一位一位顾客来满足,再加入源点来连接每一种食物,权值为该食物数量,然后... 阅读全文
posted @ 2014-03-20 23:47 辛力啤 阅读(437) 评论(0) 推荐(0)
摘要: /*题意:有N个岛屿和M条路线连接岛屿,这些路线可以在单位时间内运输一定数量的人数,给出每个岛屿的坐标,问从最西的岛向最东的最大运输量是多少。题解:赤果果的最大流;邻接表建无向图,找出最东最西的岛屿并且求最大流。注意:本题用了网上的ISAP模版,不知为何用sap模版疯狂的错误还是超时,反正是被坑了无... 阅读全文
posted @ 2014-03-20 23:46 辛力啤 阅读(221) 评论(0) 推荐(0)
摘要: /*题意:中文题!!!与hdu1565一模两样!!!题解:求最小权点覆盖集;参考网站:http://yzmduncan.iteye.com/blog/1149057最小权点覆盖=总权值-最大流题目要求所选两个方格不能有共边,因此将所有的方格看作顶点,公共边看作连接两个顶点的边,这样这个方形就转变为了... 阅读全文
posted @ 2014-03-20 23:45 辛力啤 阅读(350) 评论(0) 推荐(0)
摘要: /*题意:中文题题解:求最小权点覆盖集;参考网站:http://yzmduncan.iteye.com/blog/1149057最小权点覆盖=总权值-最大流题目要求所选两个方格不能有共边,因此将所有的方格看作顶点,公共边看作连接两个顶点的边,这样这个方形就转变为了一个无向图;题目要求两两顶点间没有公... 阅读全文
posted @ 2014-03-20 23:44 辛力啤 阅读(277) 评论(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 辛力啤 阅读(172) 评论(0) 推荐(0)
摘要: /*强连通+缩点+搜索特殊处理,求单向连通这一题的符合条件的图经过缩点重构后为拓扑图。对于重新构造出的新图,判断这个图是否单向连通若结点的后继大于等于2个,则需判断这些所有的后继是之间否为单向连通,然后搜索所有点。从中找到的规律为:入度为0的点有且仅有一个,删除这个点后的图中,入度为0的点依然有且仅... 阅读全文
posted @ 2014-03-20 23:41 辛力啤 阅读(151) 评论(0) 推荐(0)
摘要: /*题目意思是将连通的无向图转化为有向的强连通图。显然,其中桥是必须来回都有,剩下就是将桥连接的连通图转化。不含有桥的连通图必定是由多个圈组成(有公共边或无公共边)。因此进行一次深搜并在遍历边时加上方向即为所求结果在求桥的过程中输出所遍历的边时要注意回溯的边要输出,同时要判断回溯的边所指是否为双亲,... 阅读全文
posted @ 2014-03-20 23:40 辛力啤 阅读(329) 评论(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 辛力啤 阅读(246) 评论(0) 推荐(0)
摘要: /*题意:给出一个矩形由n*n个小矩形,每个小矩形由四个三角形组成,分别在上下左右,每个三角形有一个数字,通过调换这些矩形的位置,找出一种情况能使得任意两个相邻的小矩形之间有公共边的两个三角形的值一样,能找出这张情况则输出possible,否则输出impossible。题解:DFS,搜索剪枝;n*n... 阅读全文
posted @ 2014-03-20 23:37 辛力啤 阅读(762) 评论(0) 推荐(0)
摘要: /*题意:给出一个矩形地面,且地面很滑,向某个方向走只能一直走直到撞到block才能停下,即在block的旁边停下,而且一旦撞到则该block消失;该矩形框的四周相当于没有block,会直接滑走;如果下一格就会遇到block,则这个方向也不能走;给出起点和终点,求从起点到终点(经过也算)最少需要多少... 阅读全文
posted @ 2014-03-20 23:36 辛力啤 阅读(285) 评论(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 辛力啤 阅读(184) 评论(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 辛力啤 阅读(154) 评论(0) 推荐(0)
摘要: /*题意:给出一个n*n的和一个m*m的0 1矩阵,求m是否为n的子矩阵题解:暴力搜索剪枝看到这道题,没什么思路,能想到的只能有暴力剪枝,然后就是如何剪枝优化速度:首先是看到矩阵就会容易联想到通过求和来剪枝,因为求和可以在输入的过程中同时进行,因此不会浪费时间,然后对求出的和进行比较,在n维矩阵中找... 阅读全文
posted @ 2014-03-20 23:33 辛力啤 阅读(414) 评论(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 辛力啤 阅读(253) 评论(0) 推荐(0)
摘要: /*题意:给出一个等式,和y的值,x为0~100之间的值,求出x(精确到4位小数)题解:二分查找对x进行暴力搜索注意:精度的大小要注意,否则会超时*/#include bool bingo(double left, double right){ if (left > right) ... 阅读全文
posted @ 2014-03-20 23:31 辛力啤 阅读(651) 评论(0) 推荐(0)
摘要: /*题意:给出一堆小木棍,将这些木棍拼接成长度相等的若干条木棍,问可以拼接出来的最短的长度。题解:DFS+剪枝*/#include #include #include using namespace std;int s[70];int a,n,sum;bool f[70];bool cmp(int ... 阅读全文
posted @ 2014-03-20 23:30 辛力啤 阅读(186) 评论(0) 推荐(0)
摘要: /*题意:一个棋盘有的点可以走,有的点不能走,求从起点到终点最少要多少步,假如无法走到则输出-1.思路:普通的暴力BFS,由于图是10^9*10^9,所以要用到map来记录图。*/#include #include #include using namespace std;int main(void... 阅读全文
posted @ 2014-03-20 23:29 辛力啤 阅读(238) 评论(0) 推荐(0)
摘要: /*题意:给出N台电脑的位置,找出某个点到N个电脑的距离之和最小题解:费马点+模拟退火(模板题)模板题用模拟退火求费马点*/#include #include using namespace std;struct point{ double x,y;}p[105];int dir[8][2] ... 阅读全文
posted @ 2014-03-20 23:28 辛力啤 阅读(461) 评论(0) 推荐(0)
摘要: /*题意:一个矩形,给出n个纸板分割成多个四边形,每个纸板只与上下边相连,再给出m个点,这些点只会在矩形边界上或者矩形内,不会在纸板上,求n个纸板分割出的n+1个四边形分别包含多少个点。题解:二分+叉积;用叉积求出该点位于某个线段的左边还是右边,然后用二分求出该点在哪两条相邻边之间。注意:输出格式要... 阅读全文
posted @ 2014-03-20 23:26 辛力啤 阅读(225) 评论(0) 推荐(0)
摘要: /*题意:一个正方形房间中,有若干堵墙,墙垂直于x轴且占满y轴方向,每堵墙都有两扇门可通过;给出门的坐标,求从房间左边中点到房间右边中点的最短距离。(大概题意,有很多误差,需参照原文理解)题解:线段相交+dijstra从一堵墙到另一堵墙的最短距离必定是走直线,如果不能走直线,则其最短路径必定是经过门... 阅读全文
posted @ 2014-03-20 23:25 辛力啤 阅读(244) 评论(0) 推荐(0)
摘要: 题意:在网格上给出一个机器人监控的行走路线,开始是从(0,0)出发,每一次在前一步的基础上向右走dx步,向上走dy步,最终走回起点,求路线形成的多边形的边上、内部的点的个数以及该多边形的面积题解:pick定理(模板题)#include using namespace std;struct point... 阅读全文
posted @ 2014-03-20 23:23 辛力啤 阅读(194) 评论(0) 推荐(0)
摘要: 题意:给出一个圆,以及给出一个圆上的点,求出另外的圆上两点使得三点两两之和最大题解:向量旋转当三个点组成正三角形时,和最大(其中的证明不知道,只是从样例输出看出来的),然后知道其中一个点,只要围绕原点分别选择120度,240度即可。#include #include #include const d... 阅读全文
posted @ 2014-03-20 23:22 辛力啤 阅读(192) 评论(0) 推荐(0)
摘要: 题意:地球上空有k个卫星可以攻击地球表面的m个目标,卫星的攻击是沿直线的,每个卫星可以攻击任意个目标,给出卫星和目标的坐标,求出可以被攻击的目标的数目。题目中的什么within 10-9之类的无法理解,最后忽略这些直接地求出结果直接AC(=。=)题解:求3维的两点间的距离,卫星沿直线攻击地球时,其攻... 阅读全文
posted @ 2014-03-20 23:21 辛力啤 阅读(178) 评论(0) 推荐(0)