hdu2295(DLX重复覆盖)

DLX重复覆盖 DLX重复覆盖模板,这个东东对acm队员还是很有用的,好模板啊。 立即下载

很容易想到,二分答案。

每次根据半径建好0,1矩阵。

然后就是DLX可重复覆盖的模板

#include<cstdio>
#include<cstring>
#include<cmath>
double x[55],y[55],X[55],Y[55];
const int MN=1005;
const int MM=1005;
const int MNN=1e5+5+MM; //最大点数
const double eps = 1e-9;
int n,m,k;
struct DLX
{
    int n,m,size;
    int U[MM],D[MM],R[MM],L[MM],Row[MM],Col[MM];
    int H[MM],S[MM];
    int ands,ans[MM];
    void init(int _n,int _m)
    {
        n = _n;
        m = _m;
        for(int i = 0;i <= m;i++)
        {
            S[i] = 0;
            U[i] = D[i] = i;
            L[i] = i-1;
            R[i] = i+1;
        }
        R[m] = 0; L[0] = m;
        size = m;
        for(int i = 1;i <= n;i++)
            H[i] = -1;
    }
    void Link(int r,int c)
    {
        ++S[Col[++size]=c];
        Row[size] = r;
        D[size] = D[c];
        U[D[c]] = size;
        U[size] = c;
        D[c] = size;
        if(H[r] < 0)H[r] = L[size] = R[size] = size;
        else
        {
            R[size] = R[H[r]];
            L[R[H[r]]] = size;
            L[size] = H[r];
            R[H[r]] = size;
        }
    }
    void remove(int c)
    {
        for(int i = D[c];i != c;i = D[i])
            L[R[i]] = L[i], R[L[i]] = R[i];
    }
    void resume(int c)
    {
        for(int i = U[c];i != c;i = U[i])
            L[R[i]]=R[L[i]]=i;
    }
    bool v[MM];
    int f()
    {
        int ret = 0;
        for(int c = R[0];c != 0;c = R[c])v[c] = true;
        for(int c = R[0];c != 0;c = R[c])
            if(v[c])
            {
                ret++;
                v[c] = false;
                for(int i = D[c];i != c;i = D[i])
                    for(int j = R[i];j != i;j = R[j])
                        v[Col[j]] = false;
            }
        return ret;

    }
    bool Dance(int d)
    {
        if(d + f() > k)return false;
        if(R[0] == 0)return d <= k;
        int c = R[0];
        for(int i = R[0];i != 0;i = R[i])
            if(S[i] < S[c])
                c = i;
        for(int i = D[c];i != c;i = D[i])
        {
            remove(i);
            for(int j = R[i];j != i;j = R[j])remove(j);
            if(Dance(d+1))return true;
            for(int j = L[i];j != i;j = L[j])resume(j);
            resume(i);
        }
        return false;
    }
}dlx;
double cla(int a,int b)
{
    return sqrt((X[a]-x[b])*(X[a]-x[b])+(Y[a]-y[b])*(Y[a]-y[b]));
}
bool check(double mid)
{
    dlx.init(m,n);
    for(int i=1;i<=m;i++)
    {
        for(int j=1;j<=n;j++)
        {
            if(cla(i,j)-mid<=eps)
                dlx.Link(i,j);
        }
    }
    dlx.ands = -1;
    if(dlx.Dance(0)) return true;
    return false;
}
int main()
{
    int cases;
    scanf("%d",&cases);
    while(cases--)
    {
        scanf("%d%d%d",&n,&m,&k);
        for(int i=1;i<=n;i++)
            scanf("%lf%lf",&x[i],&y[i]);
        for(int i=1;i<=m;i++)
            scanf("%lf%lf",&X[i],&Y[i]);
        double l = 0,r = 10000000,mid;
        for(int i=0;i<100;i++)
        {
            mid = (l+r)/2;
            bool flag = check(mid);
            //printf("%f %d\n",mid,flag);
            if(flag) r = mid-eps;
            else l = mid+eps;
        }
        printf("%.6lf\n",r);
    }
    return 0;
}


prometheus普罗米修斯集监控外部k8s 阅读详情

相关推荐

RAG优化知识库检索(4):混合检索技术

混合检索技术在RAG(检索增强生成)系统中的应用显著提升了检索效果。本文探讨了语义检索与关键词检索的优缺点,指出两者在语义理解和精确匹配方面的互补性。通过结合BM25与向量检索,混合检索系统能够更全面地捕捉文档的相关性。文章详细介绍了并行检索、级联检索、稀疏-密集混合表示等多种结合方式,并探讨了权重调整策略,如线性组合、动态权重调整和排序融合算法。此外,稀疏-密集混合检索架构的设计和实现方案也被深入分析,展示了如何通过结合不同检索方法的优势,提升RAG系统的检索质量和效率。

分享一些感兴趣的技术方面 2073

DLX 重复覆盖 -- HDU2295-Radar

Radar HDU - 2295 题意: 题意为有m个雷达,每一个雷达的覆盖范围都为以r为半径的圆,给定他们的坐标,有n个城市。给定他们的坐标,求最小的r,使得每一个城市都被雷达覆盖。限制条件为最多仅仅有k个雷达工作。 二分答案r。推断所须要的雷达数是否小于给定的k,找到最小的r。 用Dlx反复覆盖来推断。 思路: 二分答案R, 然后建立N*M的01矩阵判断重复覆盖是否可行 建图:m行,n列的矩形...

dajiangyou123456的博客 323

分数计算器(C++课设)

需求概述 (1)设计一个分数计算器,进行分数的算术运算和逻辑运算。 (2)能够像使用基本数据的对象一样,对分数进行“+”、“-”、“*”和“/”等算术运算和比较两个分数的大小。 (3)以a/b的形式输入输出分数,允许输入输出整数这种特殊形式。 (4)对不是约化型的分数进行约化,避免分母为负数。 (5)如果分数的分母为0、除数为0或输入时格式有错,采用异常处理机制解决。 输入 以分数的形式输入。(如1/2) 若分母为0会抛出异常,重新输入。 菜单页面 RationalNumber.h(头文件) #ifnd

sadnessss的博客 8769

DLX算法——实现精确覆盖与重复覆盖问题

给定一个 N 行 M 列的矩阵,矩阵中每个元素要么是 1,要么是 0。你需要在矩阵中挑选出若干行,使得对于矩阵的每一列 j,在你挑选的这些行中,有且仅有一行的第 j 个元素为 1。

ayas12319的博客 365

达梦数据库集群部署(主备)

达梦数据库集群部署(主备)

m0_71845127的博客 1461

yolov7模型部署流程

yolov7部署流程

算法的猫 1396

HDU 2295 舞蹈链可重复覆盖+二分

点击打开链接 题意:给了n个点和m个圆心,在用不多于k个圆的情况下,使得所有的点被覆盖,最小的圆半径多大 思路:问最小的什么什么那么用二分准没错,那么二分条件是什么呢,就是用不多于K的圆能否将所有点覆盖,覆盖这部分就是裸的舞蹈链的可重复覆盖,行为m个圆,列为n个点,然后求出的最少行小于等于K,则成立,否则不成立#include #include #include #include #i

Dan__ge的博客 2258

PWM调光原理详解:为什么你的LED灯会闪烁?从硬件到软件的避坑指南

本文深入解析PWM调光原理,揭示LED灯闪烁的根本原因,并提供从硬件设计到软件算法的全面解决方案。通过分析人眼视觉暂留机制和PWM参数设置,帮助开发者避免频闪问题,提升照明质量。特别适合电子工程师和智能家居开发者参考。

weixin_29189363的博客 293

Hdu 2295 (二分+重复覆盖问题 Dancing Links)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2295   题意:给出一些城市及一些雷达的坐标,要求从这些雷达中选取最多k个能够覆盖所有的城市,问雷达的最小覆盖半径为多少。   二分半径,则可转化为一个判定问题,即给定雷达的

dooder_daodao的专栏 1250

Altium Designer20 PCB板子绘制

版层 top layer 顶层 bottom layer 底层 设置板子大小 布局 过孔 top layer层连到bottom layer层。通过via连接。 设置线宽 在design rules里可以设置线宽。 右键new rule 可以新增线宽,电源设置成20mil 还可以设置很多其他的线宽 修改安全距离 安全距离太短容易出现毛刺,然后短路,一般设置成20mil 修改元器件旋转角度 修改rotation step,每次旋转45°。 修改光标大小 下面的cursor type是修改光标

及时总结 2581

RandLA-Net Tensorrt 推理 c++

RandLA-Net 实现 Tensorrt 部署.

J。 1109

hdu 2295 Radar

m 个雷达有相同的半径 r,要使所有 n 个城市都被至少一个雷达覆盖,但所用雷达数不能超过 k 个,求满足条件的最小半径 r。

iTom's blog 560

【NLP】第十章:位置编码Positional Encoding

前面讲RNN时一般都会有一个ht的输出,这个输出就是样本与样本之间的信息,而且RNN是时序循环的,所以RNN本身的结构,在物理上,就自带词的前后顺序信息的。比如词never,不管never本身的词向量是什么,只要你在序列中排第一个位置,你的位置向量就是[0,1,01],你排第三个位置,你的位置向量就是[0.9,-0,4,0.2,1.0]。也所以,你可以理解为:embedding后的词嵌入,PE按照每个样本在sequence中的位置,把embedding后的词嵌入给扭转后,才送入attention的。

因为热爱所以坚持 1918

【DLX重复覆盖】HDU 2295 Radar

题意:一个国家有n个城市,有m个地方可以建造雷达,最多可以建K个雷达(K>=1 && K<=m),问雷达最短的探测半径,才能使n个城市都能探测到。 思路:比较裸一点的dl,二分答案,然后算出当前状况下 重复覆盖所需的雷达的个数,判断能否满足条件。 #include <cstdio> #include <cmath&g...

154

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

HDU 2295 Radar 重复覆盖 DLX

题意:   N个城市,M个雷达站,K个操作员,问雷达的半径至少为多大,才能覆盖所有城市。M个雷达中最多只能有K个同时工作。 思路:   二分雷达的半径,看每个雷达可以覆盖哪些城市,然后做重复覆盖,判断这个半径是否可行。   我是直接二分的半径,跑了300+ms,看了Virtual Judge上面跑得快的代码,才发现为了不浪费半径的长度,最小的半径一定等于某一个雷达站到某一个城市之...

198

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

HDU 2295 Radar (二分+DLX,重复覆盖)

Problem Description N cities of the Java Kingdom need to be covered by radars for being in a state of war. Since the kingdom has M radar stations but only K operators, we can at most ope...

bandiaodai5734的博客 314

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

HDU 2295 Radar (DLX求重复覆盖, A*搜索)

题目大意: 就是在M个站中选择至多K个使得N个点被覆盖, 为需要的最小半径 大致思路: 二分答案R, 然后建立N*M的01矩阵判断重复覆盖是否可行 重复覆盖和精确覆盖不同, 每次只会删掉每一列所有相关的1, 而不会将有相关1的行删去, 所以矩阵在减少的速度上没有精确覆盖快, 需要进行剪枝 这里使用一个估价函数f(), 表示单签状况下最好情况需要多少步才能走完, 进行剪枝

Gatevin的专栏 586

HDU 2295 Radar DLX重复覆盖

题目:http://acm.hdu.edu.cn/showproblem.php?pid=2295题意:有n个城市在二维平面上,还有m个地点,从这m个地点中选出不超过k个放置雷达,雷达有一定的覆盖半径,问半径最小为多少时雷达可以覆盖所有城市思路:二分枚举半径,用DLX重复覆盖判断能否选出不超过k个雷达覆盖所有城市#include <iostream> #include <cstdio> #inclu

弱智就要多努力 298

Radar HDU - 2295 DLX,重复覆盖+剪枝

N cities of the Java Kingdom need to be covered by radars for being in a state of war. Since the kingdom has M radar stations but only K operators, we can at most operate K radars. All radars hav...

dianzhenquan3519的博客 224

hdu 2295 Radar DLX 重复覆盖问题

http://acm.hdu.edu.cn/showproblem.php?pid=229 题意: 一个国家有n个城市,m个雷达,我们同时操作的雷达数最多为k,给出城市与国家的坐标,求小于等于k的操作下,雷达覆盖的能够覆盖所有城市的最小覆盖半径。 思路: 城市作为列,雷达作为行,二分枚举雷达的半径+DLX重复覆盖求解。 View Code #include &lt;cstdio&...

weixin_33762321的博客 188

hdu2295 Radar 二分+DLX重复覆盖+A*

N个城市,M个雷达站,最多可开K个雷达工作,给出城市和雷达的坐标,问雷达的工作半径最少为多少可以满足要求? 直接二分距离,判断当前距离K个雷达站是否能覆盖全部城市,判断的时候可以用DLX来搜,建立M行*N列的01矩阵,行表示雷达站,列表示城市,由于允许多个雷达站覆盖一个城市的情况,所以这题跟精确覆盖的实现还不太一样,remove和resume要改一下。另外这题裸上还会TLE,所以在搜索的时候要加

Broken Wings 867

HDU 2295 Radar(重复覆盖,DLX)

题目:Radar 题意:

hongrock的专栏 641

HDU2295_Radar _DLX跳舞链的重复覆盖

题意给出 N 个城市, M 个雷达的坐标。要求选择不超过 K 个雷达覆盖 N 个城市,求雷达覆盖面积的最小值(雷达覆盖面积相等)。

弱的奋斗之旅 370
上一篇: HUST 1017(DLX)
下一篇: fzu1868重复覆盖模板
constbh
博客等级 码龄10年 10粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值