题意:该题的题意晦涩,勉勉强强听别人说了一遍后再读了一遍题才算懂了题意,题图说的是A国因为B国药进攻自己的国家,于是想办法在联通A-B之间的路径上进行阻击.阻击的舰船停留在一个路径上,舰船上都要放置水晶,相同水晶的舰船可能会被一次性摧毁,于是现在要求给出尽可能多的方案来部署舰船,使得同一水晶的舰船能够阻断所有从B到A的路径,每条路径上只能够部署一部舰船. 分析:题意抽象之后就是一个网络求出从源点到汇点的尽可能多的割边集,且每个割边集没有公共边.根据题目的要求,我们设想从A到B的最短路长度为K,那…
意甲冠军: 一m*n该网络的规模格.详细地点称为伞兵着陆(行和列). 现在,在一排(或列) 安装激光枪,激光枪可以杀死线(或塔)所有伞兵.在第一i安装一排 费用是Ri.在第i列安装的费用是Ci. 要安装整个激光枪系统,总费用为这些 激光枪费用的乘积. 求杀死全部伞兵的最小费用. 构图: 把伞兵视为边,行与列视为顶点.添加源点和汇点,对于第i行.从源点向顶点i连接一条 容量为Ri的边.对于第j列.从顶点j向汇点连接一条容量为Rj的边. 假设某一点(i,j)有伞兵降落,则从顶点Ri向顶点Cj连接一条…
看了题解.当时也觉得用邻接矩阵挺好写的,直接memset:然而邻接矩阵不懂得改,于是就放开那个模板,写了Dinic.. 方法是,按字典序枚举每一条满流的边,然后令其容量减1,如果最大流改变了,这条边就是属于某个最小割:接下来一直重复下去,直到得到一个割边集,而它自然是字典序最小的. 我在每次某条边容量减1后都重新计算一遍最大流,简单..其实我知道是有这么一回事,把边容量减1后可以利用当前求出的最大流来得出新的最大流,这样会快一些,不过我不会... #include<cstdio> #inclu…
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2365 我没看懂题目...这样理解:一个有向图,要给一些边染色,使得所用的颜色最多,且S到T的任意路径的都包含所有颜色.  或者: 给定一个无向图,图中有一个起点S和一个终点T.要求选K个集合S1,S2,…,SK,每个集合都含有图中的一些边,任意两个不同的集合的交集为空.并且从图中任意去掉一个集合,S到T都没有通路.要求K尽量大. 容易想到最短距离就是总共的数量t…
#include<stdio.h> #include<string.h> #include<stdlib.h> #include<queue> #include<math.h> using namespace std; #define eps 1e-6 #define inf 0x3fffffff #define N 410 struct node { int u,v,next; double w; }bian[N*4],f[N]; int yo…
题目详解出自 论文 Amber-最小割模型在信息学竞赛中的应用 题目大意: 给出一个带权无向图 G = (V,E), 每条边 e属于E都有一个权值We,求一个割边集C,使得该割边集的平均边权最小,即最小化: 1. 将等式转换,引入x向量,Xi取值为(0,1),得到0-1分数规划常规式: 2.       将其转换得到一个关于的一个函数: 3.       其中为单调递减函数, 当且仅当  = 0 , 为最优值. 然后我们可以二分枚举最优值 , 然后判定当前最优值是否符合要求. 判定思路:  对于…
/** 转自:http://blog.csdn.net/u011498819/article/details/20772147 题目:hdu1569 方格取数(2) 链接:https://vjudge.net/problem/HDU-1569 题意:一个方格n*m,取出一些点,要求两两不相邻,求最大和. 思路:建图过程:对于二维矩阵,如果(i+j)%2==0,那么放在X集,s->(i-1)*m+j, cap = 元素值.否则放在Y集, (i-1)*m+j->t, cap = 元素值. 如果u与…
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 输入两个链表,找出它们的第一个公共结点. 思路 蛮力法:遍历第一个链表的结点,每到一个结点,就在第二个链表上遍历每个结点,判断是否相等.时间复杂度为O(m*n),效率低: 使用栈:由于公共结点出现在尾部,所以用两个栈分别放入两个链表中的结点,从尾结点开始出栈比较.时间复杂度O(m+n),空间复杂度O(m+n). 利用长度关系:计算两个链表的长度之差,长链表先走相差的步数,之…
题目: Write a program to find the node at which the intersection of two singly linked lists begins. For example, the following two linked lists: A: a1 → a2 ↘ c1 → c2 → c3 ↗ B: b1 → b2 → b3 begin to intersect at node c1. 思路1: 若两个链表具有交点:1.链表的长度差=相交前的长度差:…
[BZOJ4808]马 Description 众所周知,马后炮是中国象棋中很厉害的一招必杀技."马走日字".本来,如果在要去的方向有别的棋子挡住(俗称"蹩马腿"),则不允许走过去.为了简化问题,我们不考虑这一点.马跟马显然不能在一起打起来,于是rly在一天再次借来了许多许多的马在棋盘上摆了起来……但这次,他实在没兴趣算方案数了,所以他只想知道在N×M的矩形方格中摆马使其互不吃到的情况下的最多个数.但是,有一个很不幸的消息,rly由于玩得太Happy,质量本来就不好…