大原来做的一道题,偷懒直接粘的原来的程序

  http://www.cnblogs.com/BLADEVIL/p/3433520.html

/**************************************************************
    Problem:
    User: BLADEVIL
    Language: Pascal
    Result: Accepted
    Time: ms
    Memory: kb
****************************************************************/
 
//By BLADEVIL
 
var
 
    n, m, t2, v                     :longint;
 
    t1                              :real;
 
    dis                             :array[..,..] of real;
 
    ans                             :real;
 
    pre, other, last                :array[..] of longint;
 
    link                            :array[..] of longint;
 
    flag                            :array[..] of boolean;
 
    x1, x2, y1, y2                  :array[..] of longint;
 
    l                               :longint;
 
    len                             :array[..] of real;
 
  
 
procedure init;
 
var
 
    i, j                            :longint;
 
begin
 
    read(n,m,t1,t2,v);
 
    for i:= to m do read(x2[i],y2[i]);
 
    for i:= to n do read(x1[i],y1[i]);
 
    t1:=t1/;
 
    for i:= to n do
 
        for j:= to m do
 
            dis[i,j]:=sqrt((x1[i]-x2[j])*(x1[i]-x2[j])+(y1[i]-y2[j])*(y1[i]-y2[j]));
 
end;
 
  
 
procedure connect(x,y:longint; z:real);
 
begin
 
    inc(l);
 
    pre[l]:=last[x];
 
    last[x]:=l;
 
    other[l]:=y;
 
    len[l]:=z;
 
end;
 
  
 
function find(i:longint):boolean;
 
var
 
    q, p                            :longint;
 
begin
 
    q:=last[i];
 
    while q<> do
 
    begin
 
        p:=other[q];
 
        if (not flag[p]) then
 
        begin
 
            flag[p]:=true;
 
            if (link[p]=) or (find(link[p])) then
 
            begin
 
                link[p]:=i;
 
                exit(true);
 
            end;
 
        end;
 
        q:=pre[q];
 
    end;
 
    exit(false);
 
end;
 
  
 
procedure judge(low,high:real);
 
var
 
    mid                             :real;
 
    tot                             :longint;
 
    i, j, ll                        :longint;
 
    k                               :longint;
 
    count                           :longint;
 
begin
 
    if high<low then exit;
 
    fillchar(last,sizeof(last),);
 
    fillchar(link,sizeof(link),);
 
    tot:=;
 
    l:=;
 
    mid:=(low+high)/;
 
    k:=trunc(((mid-t1)/(t1+t2))+);
 
    for i:= to n do
 
        for ll:= to k do
 
        begin
 
            inc(tot);
 
            for j:= to m do
 
                if (((mid-t1)-(ll-)*(t1+t2))*v)>=dis[i,j]
 
                    then connect(tot,j,dis[i,j]/v+(ll-)*(t1+t2)+t1);
 
        end;
 
    count:=;
 
  
 
    for i:= to tot do
 
    begin
 
        fillchar(flag,sizeof(flag),false);
 
        if find(i) then inc(count);
 
    end;
 
  
 
    if (high-low<1e-8) then
 
        if count>=m then
 
        begin
 
            ans:=mid;
 
        end else exit;
 
    if count>=m then
 
    begin
 
        ans:=mid;
 
        judge(low,mid-1e-8);
 
    end else judge(mid+1e-8,high);
 
end;
 
  
 
procedure main;
 
begin
 
    judge(,);
 
    writeln(ans::);
 
end;
 
  
 
begin
 
    init;
 
    main;
 
end.

bzoj 3035 二分答案+二分图最大匹配的更多相关文章

  1. BZOJ 3993: [SDOI2015]星际战争 [二分答案 二分图]

    3993: [SDOI2015]星际战争 题意:略 R1D2T1考了裸二分答案+二分图最大匹配... #include <iostream> #include <cstdio> ...

  2. noip 2010 关押罪犯 二分答案+二分图染色 || 并查集

    题目链接 题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用"怨气值&q ...

  3. BZOJ 2547: [Ctsc2002]玩具兵(二分答案+二分图匹配)

    传送门 解题思路 可以发现天兵不用管,答案的一个上界是\(2*k\),就是天兵一个个换.刚开始写了个拆\(6\)点的网络流,调了半天发现自己假了..说说正解,首先可以发现交换士兵其实就是种类的交换,那 ...

  4. 洛谷P4589 [TJOI2018]智力竞赛(二分答案 二分图匹配)

    题意 题目链接 给出一个带权有向图,选出n + 1n+1条链,问能否全部点覆盖,如果不能,问不能覆盖的点权最小值最大是多少 Sol TJOI怎么净出板子题 二分答案之后直接二分图匹配check一下. ...

  5. CF85E Guard Towers(二分答案+二分图)

    题意 已知 N 座塔的坐标,N≤5000 把它们分成两组,使得同组内的两座塔的曼哈顿距离最大值最小 在此前提下求出有多少种分组方案 mod 109+7 题解 二分答案 mid 曼哈顿距离 >mi ...

  6. BZOJ 1196 二分答案+并查集

    http://www.lydsy.com/JudgeOnline/problem.php?id=1196 题目大意:n个城市,m-1条路,每条路有一级公路和二级公路之分,你要造n-1条路,一级公路至少 ...

  7. bzoj 2653 二分答案+可持久化线段树

    首先离散化,然后我们知道如果对于一个询问的区间[l1,r1],[l2,r2],我们二分到一个答案x,将[l1,r2]区间中的元素大于等于x的设为1,其余的设为-1,那么如果[l1,r1]的最大右区间和 ...

  8. BZOJ 4443 [Scoi2015]小凸玩矩阵(二分答案+二分图匹配)

    [题目链接]http://www.lydsy.com/JudgeOnline/problem.php?id=4443 [题目大意] 从矩阵中选出N个数,其中任意两个数字不能在同一行或同一列 求选出来的 ...

  9. BZOJ 1854: [Scoi2010]游戏( 二分图最大匹配 )

    匈牙利算法..从1~10000依次找增广路, 找不到就停止, 输出答案. --------------------------------------------------------------- ...

随机推荐

  1. python爬虫从入门到放弃(四)之 Requests库的基本使用(转)

    什么是Requests Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库如果你看过上篇文章关于urllib库的使用,你会发现,其 ...

  2. 【bzoj3174】[Tjoi2013]拯救小矮人 贪心+dp

    题目描述 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口.对于每一个小矮人,我们知道他从脚 ...

  3. 【codevs1404】字符串匹配 KMP

    题目描述 给你两个串A,B,可以得到从A的任意位开始的子串和B匹配的长度.给定K个询问,对于每个询问给定一个x,求出匹配长度恰为x的位置有多少个.N,M,K<=200000 输入 第一行三个数 ...

  4. P1825 [USACO11OPEN]玉米田迷宫Corn Maze

    题目描述 This past fall, Farmer John took the cows to visit a corn maze. But this wasn't just any corn m ...

  5. P2845 [USACO15DEC]Switching on the Lights 开关灯

    题目背景 来源:usaco-2015-dec Farm John 最近新建了一批巨大的牛棚.这些牛棚构成了一个N*N的矩形网络.(1<n<100) 然而bessie十分怕黑,他想计算可以把 ...

  6. P4035 [JSOI2008]球形空间产生器

    题目描述 有一个球形空间产生器能够在 nn 维空间中产生一个坚硬的球体.现在,你被困在了这个 nn 维球体中,你只知道球面上 n+1n+1 个点的坐标,你需要以最快的速度确定这个 nn 维球体的球心坐 ...

  7. CentOS 用户管理useradd、usermod等

    1.创建新用户useradd,默认的用户家目录会被存放在/home 目录中,默认的 Shell 解释器为/bin/bash,而且默认会创建一个与该用户同名的基本用户组. 主要参数: -d 指定用户的家 ...

  8. [九省联考2018]IIIDX 贪心 线段树

    ~~~题面~~~ 题解: 一开始翻网上题解看了好久都没看懂,感觉很多人都讲得不太详细,所以导致一些细节的地方看不懂,所以这里就写详细一点吧,如果有不对的or不懂的可以发评论在下面. 首先有一个比较明显 ...

  9. 20165218 2017-2018-1 《Java程序设计》第一周学习总结

    20165218 2017-2018-1 <Java程序设计>第一周学习总结 教材学习内容总结 第一章.Java入门 1. Java特点 Java具有简单.面向对象.平台无关.多线程.动态 ...

  10. HDOJ.1010 Tempter of the Bone (DFS)

    Tempter of the Bone [从零开始DFS(1)] 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架/双重DFS HDOJ.1010 Tem ...