关闭

BZOJ 1927: [费用流]

标签: 费用流
147人阅读 评论(0) 收藏 举报
分类:

费用流的建模。。。
想到从一个星球瞬间转移到另一个星球和最初就转移到那个星球的意义是等价的。

#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#define N 2010
using namespace std;

inline char get(void) {
    static char buf[1000000], *p1 = buf, *p2 = buf;
    if (p1 == p2) {
        p2 = (p1 = buf) + fread(buf, 1, 1000000, stdin);
        if (p1 == p2) return EOF;
    }
    return *p1++;
}
inline void read(int &x) {
    x = 0; char c = get(); int sign = 1;
    for (; c < '0' || c > '9'; c = get()) if(c == '-') sign = 0;
    for (; c >= '0' && c <= '9'; x = (x << 1) + (x << 3) + c - '0', c = get());
    x = sign ? x : -x;
}

int x0, y0, ans = 0, X1, X2, Y, n, cnt, sum;
struct point {
    int x, y, w;
    point(int _x = 0, int _y = 0, int _w = 0) :x(_x), y(_y), w(_w) {}
};
point a[N << 1];

bool cmp(const point &a, const point &b) {
    if (a.x == x0 && a.y == y0) return true;
    if (b.x == x0 && b.y == y0) return false;
    int adx = a.x - x0, bdx = b.x - x0, ady = a.y - y0, bdy = b.y - y0;
    if (adx * bdx < 0) return adx > bdx;
    return ((ady * 1.0) / adx) < ((bdy * 1.0) / bdx);
}

int main(void) {
    freopen("1.in", "r", stdin);
    read(n);
    for (int i = 0; i < n; i++) {
        read(X1); read(X2); read(Y);
        if (X1 > X2) swap(X1, X2);
        a[cnt++] = point(X1, Y, X2 - X1);
        a[cnt++] = point(X2, Y, X1 - X2);
    }
    for (int i = 0; i < cnt; i++) {
        x0 = a[i].x; y0 = a[i].y;
        sort(a, a + cnt, cmp); sum = 0;
        if (a[0].w > a[1].w) swap(a[0], a[1]);
        for (int j = 1; j < cnt; j++) ans = max(ans, sum += a[j].w);
    }
    cout << ans << endl;
    return 0;
}
2
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

【bzoj2055】80人环游世界 有上下界的费用流

对有上下界的网络流理解的还不够。 有上下界的网络流 其实是无源无汇的有上下界的最小费用最大流(好像是吧?无源无汇是什么意思来着?) 每个人可以从任意一个点出发,每个点正好v个人 超级源点S,超...
  • u012288458
  • u012288458
  • 2016-02-26 11:42
  • 839

【bzoj4213】【贪吃蛇】【有上下界的费用流】

Description  最近lwher迷上了贪吃蛇游戏,在玩了几天却从未占满全地图的情况下,他不得不承认自己是一个弱菜,只能改去开发一款更弱的贪吃蛇游戏。 在开发的过程中,lwher脑洞大开,搞了...
  • sunshinezff
  • sunshinezff
  • 2016-07-04 22:16
  • 753

bzoj 1927: [Sdoi2010]星际竞速 (费用流)

题目描述传送门题解这道题刚开始想到的是有上下界的费用流,感觉好麻烦啊,不想写。然后又YY了一种带负权,强制走某些边的方案,结果跑spfa的时候出现了负环== 于是从头开始考虑,对于每个点如果使用了能...
  • clover_hxy
  • clover_hxy
  • 2017-03-28 08:05
  • 129

[单纯形 || 差分费用流 || 辅助变量费用流] BZOJ 3112 [Zjoi2013]防守战线

这个题目啊 我们用样例说话吧 列出来的式子是这样的 对偶一下 By the way 这个的解 是 3 1 2  看到这个东西直接无脑simplex啊 管他是不是全幺模 然后就过了 #i...
  • u014609452
  • u014609452
  • 2017-01-07 09:47
  • 528

[BZOJ2055]80人环游世界(有源汇有上下界的费用流)

题目描述传送门题解原图: 对于pi,拆点xi,yi s->S,[m,m],0 S->xi,[0,inf],0 yi->t,[0,inf],0 xi->yi,[vi,vi],0 对于有航线的...
  • Clove_unique
  • Clove_unique
  • 2017-02-04 16:53
  • 690

BZOJ 1927【sdoi2010】星际竞速(费用流)

时间限制:3秒 内存限制:128M 【问题描述】   10 年一度的银河系赛车大赛又要开始了。作为全银河最盛大的活动之一,夺得这个项目的冠军无疑是很多人的梦想,来自杰森座 α星的悠悠也是其中之一。...
  • qq_35546274
  • qq_35546274
  • 2017-03-23 16:51
  • 146

[BZOJ1927][Sdoi2010]星际竞速(费用流)

题目描述传送门题解这道题有每一个点经过且只经过一次的限制以为是有上下界的费用流 然后写写写…对是对了,T得好惨 因为加了n2n^2条边…实际上这道题一个普通的费用流就能解决了 对于每一个点拆点x...
  • Clove_unique
  • Clove_unique
  • 2017-02-04 19:10
  • 475

最小费用最大流(讲解+模板)

         问题引入:最小费用最大流问题是经济学和管理学中的一类典型问题。在一个网络中每段路径都有“容量”和“费用”两个限制的条件下,此类问题的研究试图寻找出:流量从A到B,如何选择路径、...
  • haut_ykc
  • haut_ykc
  • 2016-08-07 16:40
  • 4221

BZOJ 3876 AHOI2014 支线剧情 费用流

题目大意:给定一张拓扑图,每条边有边权,每次只能从第一个点出发沿着拓扑图走一条路径,求遍历所有边所需要的最小边权和 有下界有源汇的最小费用流 裸的。。。 建图如下: 对于每一条边权为z的边x->...
  • PoPoQQQ
  • PoPoQQQ
  • 2015-01-22 19:34
  • 3752

bzoj 1927 星际竞速(拆点费用流)

题目链接 http://www.lydsy.com/JudgeOnline/problem.php?id=1927 好嘛,现在我要正式用某神犇的博客上的题的顺序开始刷题了。。。 这道题将每个能力爆...
  • SAI_D
  • SAI_D
  • 2015-02-10 21:08
  • 717
    个人资料
    • 访问:30326次
    • 积分:2297
    • 等级:
    • 排名:第18835名
    • 原创:185篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    友情链接