上一页 1 ··· 62 63 64 65 66 67 68 69 70 ··· 73 下一页
摘要: 题目: 首先按限制高度从小到大排序,不会影响可行解,而不排序可能卡掉正确的情况; 用%2滚动数组时一定注意每次复制上一种情况,因为这个WA了好几次。 代码如下: 阅读全文
posted @ 2018-03-26 22:57 Zinn 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 题目:http://www.joyoi.cn/problem/tyvj-1659 想清楚了是非常简单的最小生成树: 1、树中每条边都会被走两边; 2、每个点会走度数遍,起点又多走一遍; 根据以上两条处理边权,即输入的边权*2+两边点的点权,这样每个点都被加了度数遍; 再求最小生成树,答案加上点权最小 阅读全文
posted @ 2018-03-22 22:55 Zinn 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 题目:http://poj.org/problem?id=3422 最大费用最大流: 拆点,在自点之间连两条边,一条容量为1,边权为数字;一条容量为k-1,边权为0;表示可以走k次,只有一次能取到数字; 从每个格子能向下或向右走,于是向下面的点、右面的点连边; 将E-K算法中的bfs改成spfa求最 阅读全文
posted @ 2018-03-22 19:06 Zinn 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 题目:http://poj.org/problem?id=1966 把一个点拆成入点和出点,之间连一条边权为1的边,跑最大流即最小割; 原始的边权赋成inf防割; 枚举源点和汇点,直接相邻的两个点不必枚举; 注意:1、源点为枚举点i的出点,汇点为枚举点j的入点; 2、读入方式,免空格; 3、在din 阅读全文
posted @ 2018-03-22 00:10 Zinn 阅读(920) 评论(0) 推荐(0) 编辑
摘要: 题目:http://poj.org/problem?id=1149 不把猪圈当做点,而把顾客当作点,把猪当作边权(流量); 因为猪圈中的猪可流动,所以共用一个猪圈的人互相连边; 注意应该连成链的形式,来保证先后顺序。 代码如下: 阅读全文
posted @ 2018-03-21 22:37 Zinn 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 题目:http://poj.org/problem?id=3281 网络流做图中的匹配,注意为了限制每头牛只匹配一种食物和一种饮料,要把牛拆成两个点,之间连边权为1的边。 代码如下: 阅读全文
posted @ 2018-03-20 23:07 Zinn 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 题目:http://poj.org/problem?id=1135 先在图中跑一遍最短路,最后倒的牌可能是dis值最大的点,也可能是在dis值最大的点所连的边上,尝试一下即可; 坑:n=1的时候输出点1。 代码如下: 阅读全文
posted @ 2018-03-20 18:50 Zinn 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 题目:http://poj.org/problem?id=3013 看似生成树,实则最短路,可以将题意转化为点权*根到此点的边权和(最短路使其最小)。 代码如下: 阅读全文
posted @ 2018-03-20 18:41 Zinn 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 题目:http://poj.org/problem?id=2584 以人和衣服作为点,建立超级源点和超级汇点,人连边权为1的边,衣服对源点连边权为件数的边(别弄乱顺序); 试图写构造函数,但CE了,最后只好用冗杂的写法。 代码如下: 阅读全文
posted @ 2018-03-19 23:54 Zinn 阅读(172) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #include using namespace std; queueq; int INF=1e9; int n,m,head[10005],cur[10005],ct=1,s,t,d[10005],ans; struct N{ int to,next,w; }edge[200005]; void add(int x,int y,in... 阅读全文
posted @ 2018-03-19 23:04 Zinn 阅读(140) 评论(0) 推荐(0) 编辑
上一页 1 ··· 62 63 64 65 66 67 68 69 70 ··· 73 下一页