- 博客(35)
- 资源 (1)
- 收藏
- 关注
原创 POJ 2195
题目链接:Going Home二分图最大权匹配 KM 或者 最小费用最大流 现在提供网络流的做法 阅读全文请移步 费用流解最大权匹配这篇博客也不错 二分图带权匹配#include<iostream>#include<cstdio>#include<queue>#include<cstring>#include<cmath>us...
2018-04-29 16:16:03 263
原创 HDU 1599
题目链接:find the mincost route Floyd 求最小环。 (n^3)模板题!#include<iostream>#include<cstdio>#define INF 0x3f3f3fusing namespace std;int Map[110][110],disc[110][110];int n,m;void floyd(){ ...
2018-04-28 20:51:21 202
原创 二分图 ( 未完待更...
过山车 ( 二分图最大匹配#include<iostream>#include<cstring>#include<cstdio>#include<queue>#include<algorithm>using namespace std;const int N = 100000;const int INF = 10000000...
2018-04-28 18:32:11 114
原创 poj 1274
题目链接:poj 1274二分图匹配正好学了网络流,本想着用网络流来搞一搞,结果,一直 WA 改了一下数组大小。。竟然 A 了,Orz想不明白(还是去学一下匈牙利吧 T_T#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<que...
2018-04-27 20:52:53 134
原创 洛谷P1231
题目链接:教辅的组成网络流求解二分图网络流的题难点在于发现题是网络流和如何建图!!!尤其是建图!!!(除了建图,其他都是模板了。。。思路:首先我们可以分析一下,这道题,实际上是个匹配的问题,而且是一一对应的匹配,所以我们才能把流量设为1,仔细想想网络流的原理,是对这张图进行增广,如果有一条路能够从头走到尾就是一个匹配,并且每一条路只能走一次,那这样想是不是就觉得可以用网络流了呢?因为流量都是一,所...
2018-04-25 20:46:41 166
原创 知识点
网络流解二分图一个无向图是二分图的充要条件是不存在奇环。常用技巧:棋盘图黑白染色形成二分图&&网格x-y形成二分图。S向左侧xi连边,右侧yi向T连边,边权全部为1。1.最大匹配=最大流每一条流量为1的增广路对应一条匹配边,最大流就是最大匹配2.最小覆盖集=最小割最小覆盖集是选择最少的点使每条边至少有一个端点被选中,即S-T的所有通路必须割断——最小割3.最大独立集=总点数-最小覆...
2018-04-25 19:43:25 102
原创 洛谷P 2936
题目链接:全流最大流模板题!#include<bits/stdc++.h>using namespace std;const int N = 100100;const int INF = 10000000;struct Node{ int to; int ne; int w;}e[N<<1];int head[N],dis[N],deth[N];int ...
2018-04-25 19:06:03 109
原创 洛谷P1088
题目链接:火星人思路:这一题一看就是一个全排列问题!先求出给定序列的全排列是第几个,然后加上 m 后输出这个全排列即可!看似一道很简单的题!如果采用枚举的话,不用想了,肯定超时啊!!!我们看一下数据,发现 m 挺小的,那我们就想到了,是不是可以通过枚举 m 来求解呢?答案当然是肯定的了!我们先一步到给定的全排列,然后枚举出第 m 个即可!!!。所以,困难又来了,如何一步到给定的全排列?我也不会。。...
2018-04-25 17:31:15 196
原创 洛谷P1576
题目链接:最小花费A 转账给 B 手续费 为 x1 , B 转账给 C 手续费为 x2 ,则由 A 转账给 C 手续费为 x1 * x2; if(dis[to] < dis[now] * e[i].w) dis[to] = dis[now] * e[i].w;代码如下#include<iostream>#include<cstdio>#...
2018-04-24 20:40:49 185
原创 洛谷P1629
题目链接:邮递员思路:先正向存边,求出最短路后再反向建边,再跑一遍最短路即可!#include<iostream>#include<cstdio>#include<cstring>#include<bits/stdc++.h>using namespace std;const int N = 520000;const int maxn =...
2018-04-24 19:40:18 212
原创 洛谷P 1396
题目链接:营救以前用最短路和最小生成树分别写过这个题解报告最短路&&最小生成树链接直到现在我才直到原来还可以用二分答案来做!!!(果然看到最大值最小就要想到二分答案!!思路:首先用邻接表来存边,并且找出边权的最大值(方便二分嘛),然后就是敲二分模板了重点是 check 函数!我们对于当前假设的值(即最大值最小的值)是可行的,就用当前这个值跑一遍最短路,如果可以走到终点的话,就说明是...
2018-04-23 17:44:31 154
原创 洛谷P2768
题目链接:挑石头还是一道二分题思路:将起点到终点的距离进行二分,再判断,在当前距离下会 去掉 多少块石头,如果需要移走的石头的数量要比题目给定的要多的话,返回0,否则返回1重点是写 check 函数!!!#include<iostream>#include<algorithm> #include<cstdio>using namespace std;lo...
2018-04-22 23:07:26 97
原创 Code Force 645 C
题目链接:Enduring Exodus比赛的时候想着用 bfs 来做的,第十个点一直超时!!!很难受了然后比赛完了才知道这是二分答案的题!好吧,再补充补充知识点!#include<iostream>#include<cstdio>using namespace std;int a[100100];int pre[100100]; // 前缀和,方便计算int n...
2018-04-22 21:21:12 207
原创 洛谷P1824
题目链接:进击的奶牛对于 最小值最大化 和 最大值最小化,采用的是二分答案!(还是太菜了!!!#include<iostream>#include<cstdio>#include<queue>#include<cstring>#include<algorithm>using namespace std;int n,c,p;i...
2018-04-22 19:52:34 275
原创 UVA 10462
题目链接:Is There A Second Way Left? 就是很单纯的判断次小生成树!!!昨晚刚开始看,今天就考了!(关键是没做出来说一下思路吧:先求出来最小生成树,然后每次去掉最小生成树上的一条边(枚举!)若能再求最小生成树!即为次小生成树!(可能估计次短路也是这样吧!!!心累。。。#include<iostream>#include<cstring>#inc...
2018-04-21 20:37:37 240
原创 双向广搜
双向广搜(内含八数码题解双向广度优先搜索算法的步骤如下: 1)定义状态结点 与广度优先搜索算法相同。 2)确定结点扩展规则 与广度优先搜索算法也相同。但需要定义两个队列,一个存储(从初始结点向目标结点)正向扩展的结点,另一个存储(从目标结点向初始结点)反向扩展的结点。 3)搜索策略 (1)从正向扩展的队列头取出一个结点,检查它按照扩展规则是否能够扩展,如果能则产生一个新结点。 (2...
2018-04-18 21:14:36 326
原创 康拓展开
先推荐一篇博客:康拓展开题目链接:八数码难题(网上的大佬都好强啊。。。本菜鸡表示看不懂他们写的啥先保存着!!!#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<queue>using namespace std;int fac[...
2018-04-18 20:31:09 182
原创 洛谷P1219
题目链接:八皇后我们通过观察可以看出来,对于Q点,行和列都很好处理,关键是 斜 较难处理。对于 / 这种倾斜,我们发现 纵坐标 + 横坐标 是一个定值! 对于 \ 纵坐标 - 横坐标 为定值!而且我们可以发现对于 \ 和 / 控制的不同的对角线的值都是唯一确定的,只用一个数组存就可以!#include<iostream>#include<cstdio>using ...
2018-04-17 20:52:49 270
原创 洛谷P3358
题目链接:负环这个题题目告诉我们不能用 BFS-SPFA 来做(然而,菜鸡好像只会着一种判断负环的方法。。分享一篇大佬写的 DFS-SPFA百度上说判断负环时 dfs 要比 bfs 快得多!!!#include<iostream>#include<cstdio>#include<cstring> using namespace std;const int...
2018-04-17 18:59:14 127
原创 洛谷P1162
题目链接:填色游戏思路:从边缘出发,如果是 0 就 dfs 一下把和他相邻的 0 都给标记一下在把剩下为0 的元素修改成 2 输出即可用两个二维数组就可以实现#include<iostream>#include<cstdio>#include<cstring>using namespace std;int n;int a[50][50];int b...
2018-04-15 21:22:55 195
原创 CodeForce 906B
题目链接:A - Seating of Students思路:这个题按道理说是搜索。。。但是,我太菜了不会。。。 T_T(求大佬指点好吧。。。说重点:我们看到数据不能用二维数组来存,只好用一维数组来存了(简单嘛)然后我们发现,对于2 * 4 来说,1 2 3 4 我们可以先 5 2 7 45 6 7 8 1 6 3 8 ( 这样每一行的两个...
2018-04-15 20:36:46 214
原创 洛谷 P 1560
题目链接:蜗牛的旅行思路:dfs 从 (1,1)开始搜索分别向右和向下搜索,遇到障碍物就改变方向,遇到自己走过的路线就更新最大值#include<iostream>#include<cstdio>using namespace std;int a[300][300];bool vis[300][300],vis1[300][300]; // vis 标记蜗牛走的路线...
2018-04-12 20:53:39 159
原创 codevs 1297
题目链接:硬币思路:将重量和面值分别存入两个数组 v[] m[] 中,dfs 即可!#include<iostream>#include<cstdio>using namespace std;bool vis[500][5000],vis1[5000];int v[5000],m[5000];int n,k,w,tot,ans,l,r;void dfs(int ...
2018-04-12 20:03:03 166
原创 洛谷P1218
题目链接:特殊的质数肋骨通过观察可以看出第一个数一定是 2 3 5 7 中的一个(必须满足第一个数是质数。)然后我们再枚举满足的奇数(偶数肯定会出现合数!)#include<iostream>#include<cstdio>#include<queue>using namespace std;int n;int pd(int x){ for(int...
2018-04-12 18:59:42 244
原创 CodeVs 2651
题目链接:孔子教学#include<iostream>#include<cstdio>#include<queue>#include<cstring>using namespace std;int a[1000],b[1000];bool vis[1000];int x,y,z,maxx = -1e9;void dfs(int k,i...
2018-04-11 21:29:31 121
原创 搜索 (未完 2018.05.02更新
好奇怪的游戏(bfs#include<iostream>#include<cstdio>#include<cstring>#include<queue>using namespace std;int x1,x2,y1,y2;queue<int>qx;queue<int>qy;int xx[15] ={1,1,2...
2018-04-11 20:34:21 201
原创 CF 919/B
题目链接:Pertect Number(网络流看的脑阔疼!补一波题吧。。。题目大意:求出满足各个数位之和等于 10 的第 n 小的数。。。水水水。。。。#include<iostream>#include<cstdio>#include<cstring>using namespace std;int a[10009];void init(){ in...
2018-04-08 19:34:35 221
原创 洛谷 P3381
题目链接:最小费用最大流(模板题)dis最小花费;pre每个点的前驱;last每个点的所连的前一条边;flow源点到此处的流量 思路:给出一个容量网络,那他的最大流一定是一个定值(即使是有多个一样的最大值)。所以我们从开始的可行流开始增广时,最终的增广量是一定的。所以为了满足最小费用我们只需要每次找最小费用的增广路即可,直到流量为最大值。这个问题仅仅是在求增广路时先考虑费用最小的增广路,其他思想和...
2018-04-08 19:07:36 275
原创 洛谷 P 4016
题目链接:负载平衡问题最小费用最大流 这篇博客挺好的!关于构图:首先,这是一道最小费用(费用指在两个相邻仓库中的运输单价)最大流的题目。1.必不可少的有一个超级源点和汇点,st=0,ed=n+1。2.贪心的想,为了是所有仓库的数量都相等,就应该讲多余平均值的仓库运往少于平均值的仓库,自然而然就想到多的仓库应该贡献,连向源点;少的仓库应该得到,连向汇点,且费用为0(因为费用指在两个相邻仓库中的运输单...
2018-04-07 21:14:08 102
原创 洛谷 P2756
题目链接:飞行员的配对方案本题是一道二分图最大匹配问题,可以用匈牙利算法,也可以用网络流。网络流做法#include<iostream>#include<cstdio>#include<queue>#include<cstring>using namespace std;const int maxn = 1e7,INF = 1e9; st...
2018-04-07 19:53:26 133
原创 POJ 1273
题目链接:Drainage Ditches和 HDU1532 一样,现提供另一种代码#include<iostream>#include<cstdio>#include<cstring>#include<queue>using namespace std;#define INF 9999999struct Node{ int to; ...
2018-04-07 08:48:54 174
原创 洛谷P3386
网络流解二分图;dinic 详解详解上代码#include<cstdio>#include<queue>#include<cstring>using namespace std;const int N = 2005;const int M = 1002005;const int INF = 0x7fffffff;struct Edge{ ...
2018-04-03 20:52:57 174
原创 HDU 3549
题目链接:Flow Problem题目大意:T 组数据,每组给定m条边,求从 1 到 n 的最大流。。。网络流移步代码如下:#include<iostream>#include<cstdio>#include<queue>#include<cstring>using namespace std;#define maxn 10010#def...
2018-04-03 19:49:35 155
原创 洛谷P1164
题目链接:小A点菜题目思路:从第一道菜开始往后搜索,如果当前菜的价格大于携带的钱,回溯一步后接着搜索#include<iostream>#include<cstdio>using namespace std;int a[120];int n,m,tot;void dfs(int k,int x){ if(k>m) return ; if(k == m...
2018-04-02 20:19:54 180
原创 洛谷 P1464
题目链接:Functionemmmm挺好的一道记忆化搜索的题。。。(刚开始根据题意进行模拟。。。hhh#include<iostream>#include<cstdio>#include<cmath>using namespace std;long long a,b,c;int jiyi[50][50][50];long long w(long lo...
2018-04-02 19:57:48 255
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人