SDNUOJ——1380.Problem A: Gopher II(匈牙利算法-二分图匹配)

问题虫洞:1380.Problem A: Gopher II

黑洞内窥:

匈牙利算法,注意一下精度问题。

光年之外:

匈牙利算法告诉我们:“有机会上,没机会创造机会也要上!”

推荐一篇匈牙利算法的博客,,hhhh ——匈牙利算法(简单易懂)
AC代码:
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;

int n, m, s, v;
int flag[105], pre[105];
struct node
{
    double x, y;
} gop[105],hole[105];

double dist2(node a, node b)
{
    return sqrt((a.x-b.x)*(a.x-b.x) + (a.y-b.y)*(a.y-b.y));
}

int Find(int a)
{
    for(int i=1; i<=m; ++i)
    {
        double len = dist2(gop[a], hole[i]);
        if(len-double(1.0*s*v)<1e-5 && !flag[i])//且没有被标记(这里注意精度)
        {
            flag[i] = 1;
            if(!pre[i] || Find(pre[i]))//"腾";
            {				//洞有gop了或者能腾出个位置来,这里使用递归
                pre[i] = a;
                return 1;
            }
        }
    }
    return 0;
}

int main()
{
    while(cin >> n >> m >> s >> v)
    {
        int sum = 0;
        for(int i=1; i<=n; ++i)
            scanf("%lf %lf", &gop[i].x, &gop[i].y);
        for(int i=1; i<=m; ++i)
            scanf("%lf %lf", &hole[i].x, &hole[i].y);
        memset(pre, 0, sizeof(pre));
        for(int i=1; i<=n; ++i)
        {
            memset(flag, 0, sizeof(flag));
            sum+=Find(i);
        }
        //cout << sum << '\n';
        cout << n-sum << '\n';
    }
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
移植curl但是zlib无法使能,如何解决该问题 Host setup: arm-unknown-linux-gnueabihf Install prefix: /opt/rootfs/curl-7.79.0/curl-7.79.0/_install Compiler: arm-linux-gnueabihf-gcc CFLAGS: -Werror-implicit-function-declaration -O2 -Wno-system-headers -pthread CPPFLAGS: -isystem /opt/rootfs/openssl-1.1.1/openssl-1.1.1/_install/include LDFLAGS: -L/opt/rootfs/openssl-1.1.1/openssl-1.1.1/_install/lib LIBS: -lssl -lcrypto -ldl -lpthread curl version: 7.79.0 SSL: enabled (OpenSSL) SSH: no (--with-{libssh,libssh2}) zlib: no (--with-zlib) brotli: no (--with-brotli) zstd: no (--with-zstd) GSS-API: no (--with-gssapi) GSASL: no (libgsasl not found) TLS-SRP: enabled resolver: POSIX threaded IPv6: enabled Unix sockets: enabled IDN: no (--with-{libidn2,winidn}) Build libcurl: Shared=yes, Static=yes Built-in manual: enabled --libcurl option: enabled (--disable-libcurl-option) Verbose errors: enabled (--disable-verbose) Code coverage: disabled SSPI: no (--enable-sspi) ca cert bundle: no ca cert path: no ca fallback: no LDAP: no (--enable-ldap / --with-ldap-lib / --with-lber-lib) LDAPS: no (--enable-ldaps) RTSP: enabled RTMP: no (--with-librtmp) PSL: no (libpsl not found) Alt-svc: enabled (--disable-alt-svc) HSTS: enabled (--disable-hsts) HTTP1: enabled (internal) HTTP2: no (--with-nghttp2, --with-hyper) HTTP3: no (--with-ngtcp2, --with-quiche) ECH: no (--enable-ech) Protocols: DICT FILE FTP FTPS GOPHER GOPHERS HTTP HTTPS IMAP IMAPS MQTT POP3 POP3S RTSP SMB SMBS SMTP SMTPS TELNET TFTP Features: AsynchDNS HSTS HTTPS-proxy IPv6 Largefile NTLM NTLM_WB SSL TLS-SRP UnixSockets alt-svc
06-13

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值