HDU 5934 Bomb(tarjan缩点)

C#:WPF格式转Winform格式 WPF格式转Winform格式 阅读详情

题意:给你n(n<=1000)个炸弹(x, y, r, c),(x, y)是坐标,r是爆炸半径,c是引爆这个炸弹的花费。问你最少花费多少能引爆所有炸弹。


思路:枚举炸弹i j,如果i能引爆j,就i->j连一条边。然后跑下tarjan并缩点形成一个DAG,我们可以知道入度为0的是必须自身引爆,入度不为0的可以由其他炸弹来引爆,我们只需要求出每个入度为0的缩点中引爆所需的最小花费的那个炸弹,最后加起来求和即可。


代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e3+5;
vector<int> g[maxn];
struct node
{
    ll x, y, r, c;
}a[maxn];
int n, dfn[maxn], low[maxn], belong[maxn], in[maxn];
int dfs_clock, scc_cnt;
bool is[maxn];
stack<int> s;
priority_queue<ll, vector<ll>, greater<ll> > pq[maxn];

void tarjan(int u)
{
    dfn[u] = low[u] = ++dfs_clock;
    s.push(u);
    for(int i = 0; i < g[u].size(); i++)
    {
        int v = g[u][i];
        if(!dfn[v])
        {
            tarjan(v);
            low[u] = min(low[u], low[v]);
        }
        else if(!belong[v])
            low[u] = min(low[u], dfn[v]);
    }
    if(low[u] == dfn[u])
    {
        scc_cnt++;
        while(1)
        {
            int x = s.top(); s.pop();
            belong[x] = scc_cnt;
            if(x == u) break;
        }
    }
}

void find_scc()
{
    while(!s.empty()) s.pop();
    dfs_clock = scc_cnt = 0;
    memset(belong, 0, sizeof(belong));
    memset(dfn, 0, sizeof(dfn));
    for(int i = 1; i <= n; i++)
        if(!dfn[i])
            tarjan(i);
}

void solve()
{
    memset(in, 0, sizeof(in));
    memset(is, 0, sizeof(is));
    for(int u = 1; u <= n; u++)
        for(int i = 0; i < g[u].size(); i++)
        {
            int v = g[u][i];
            if(belong[u] != belong[v])
                in[belong[v]]++;
        }
    for(int i = 1; i <= scc_cnt; i++)
        if(!in[i])
            is[i] = 1;
    for(int i = 1; i <= n; i++)
        while(!pq[i].empty()) pq[i].pop();
    for(int i = 1; i <= n; i++)
    {
        if(is[belong[i]])
            pq[belong[i]].push(a[i].c);
    }
    ll ans = 0;
    for(int i = 1; i <= scc_cnt; i++)
        if(is[i])
            ans += pq[i].top();
    printf("%lld\n", ans);
}

int main(void)
{
    int _, ca = 1;
    cin >> _;
    while(_--)
    {
        scanf("%d", &n);
        for(int i = 1; i <= n; i++)
            g[i].clear();
        for(int i = 1; i <= n; i++)
            scanf("%lld%lld%lld%lld", &a[i].x, &a[i].y, &a[i].r, &a[i].c);
        for(int i = 1; i <= n; i++)
            for(int j = 1; j <= n; j++)
            {
                if(i == j) continue;
                if((a[i].x-a[j].x)*(a[i].x-a[j].x)+(a[i].y-a[j].y)*(a[i].y-a[j].y) <= a[i].r*a[i].r)
                    g[i].push_back(j);
            }
        find_scc();
        printf("Case #%d: ", ca++);
        solve();
    }
    return 0;
}


YOLOv11 改进 - Mamba | 集成Mamba-YOLO(AAAI 2025),Mamba-YOLOv11-B 替换骨干,破解全局依赖建模难题,实现高效实时检测 本文介绍Mamba YOLO,为图片物体识别提供了“又快又准”的新方案。传统CNN架构运行快但难以捕捉远距离关联物体,Transformer架构精度高但计算量呈平方级增长,而SSM虽计算量为线性级且能抓全局关联,但用于图片识别时细节定位不准。为此,Mamba YOLO做了三项关键优化:引入ODMamba骨干网络,解决自注意力的二次复杂度问题,且无需预训练;设计ODMamba宏观结构确定最佳阶段比例和缩放大小;采用多分支结构的RG块建模通道维度,解决SSM在序列建模中的不足。在COCO数据集测试中,其小版本推 阅读详情

相关推荐

ISP一键下载电路分析+74HC1G66GW(信号图)

之前要不用的最小系统的开发板要不就是用的SWD调试口,没有注意过ISP一键下载电路是个怎么回事,因为需要就简单的看了一下野火的ISP一键下载电路。 默认情况一下,一般我们的程序都是从用户闪存也就是内部的FLASH启动的, 对于F103RCT6来说ROM的大小是512kb,启动地址位0x8000000,这个在IDE keil里可以看的到,如下图。 首先简单理解一下ISP是什么: 可以把他理解为芯片厂商出场时固化在ROM当中的一段程序,它的功能就是把你写的程序一点点的搬运到FLASH当中,它引出了两个引脚

lipengyu1363658871的博客 4862

HDU-5934 Bomb(tarjan缩点+入度0最小和)

                                      BombThere are NN bombs needing exploding. Each bomb has three attributes: exploding radius riri, position (xi,yi)(xi,yi) and lighting-cost cici which means you ne...

MengX 376

【技术解析】AlexNet——从ReLU到Dropout的深度学习关键突破

本文深入解析AlexNet在深度学习领域的关键突破,重点探讨了ReLU激活函数和Dropout技术的革命性应用。作为卷积神经网络的里程碑,AlexNet通过ReLU解决梯度消失问题,利用Dropout有效防止过拟合,为现代深度学习模型奠定了重要基础。这些创新技术至今仍在计算机视觉和自然语言处理等领域发挥重要作用。

weixin_33719619的博客 273

HDU - 5934 Bomb(Tarjan连通图求缩点)

There are N bombs needing exploding. Each bomb has three attributes: exploding radius ri, position (xi,yi) and lighting-cost ci which means you need to pay ci cost making it explode. If a un-light...

kuronekonano的博客 259

【gridsample】地平线征程6芯片中gridsample算子的优化与部署实践

本文详细介绍了地平线征程6芯片中gridsample算子的优化与部署实践,重点探讨了PTQ和QAT量化方案在BEV感知任务中的应用。通过双线性插值优化、内存布局调整和混合精度配置等关键技术,显著提升了算子在自动驾驶场景下的性能和精度,为开发者提供了实用的部署指南和调优建议。

zero1的博客 1020

从零开始学华为设备:手把手教你用ENSP搭建OSPF实验环境(附拓扑文件)

本文详细介绍了如何使用华为ENSP模拟器从零开始搭建OSPF多区域网络实验环境,包括拓扑规划、设备配置、OSPF参数优化及故障排查技巧。通过实战案例和配置示例,帮助网络工程师快速掌握华为设备的OSPF协议配置,提升企业网络环境中的实战能力。

weixin_29305313的博客 287

HDU 5934 - Bomb(tarjan缩点+建图)

Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 2118    Accepted Submission(s): 687 Problem Description There are N bombs ne

Mr_Treeeee的博客 441

AMP架构下的核间通信:RPMSG与共享内存原理详解

本文以RK3568等异构多核硬件为例,深入浅出解析了AMP架构下核间通信的核心逻辑,阐明RPMSG并非替代共享内存,而是以共享内存为数据载体、硬件信箱为中断通知工具、VirtIO为数据管理规则,构建的标准化高层协议与框架,为开发者提供简洁API,实现不同操作系统核心间高效通信。

qq_61335271的博客 2051

HDU 5934 Bomb(tarjan/SCC缩点)题解

思路:建一个有向图,指向能引爆对象,把强连通分量缩成一点,只要点燃图中入度为0的点即可。因为入度为0没人能引爆,不为0可以由别人引爆。 思路很简单,但是早上写的一直错,改了半天了,推倒重来才过了... #include<cstdio> #include<set> #include<stack> #include<cstring> #inc...

weixin_33716154的博客 199

《Zephyr OS 入门与实战》第1章:Zephyr OS 架构与物联网定位

【代码】《Zephyr OS 入门与实战》第1章:Zephyr OS 架构与物联网定位。

2301_79143213的博客 1273

SPICE仿真软件:HSPICE_(20).HSPICE仿真结果的后处理

HSPICE仿真结果的后处理是一个多步骤的过程,包括读取结果文件、可视化、分析和导出。通过使用命令行工具、Python脚本和HSPICE内置工具,可以高效、准确地完成这些任务。Python脚本的灵活性和强大的数据分析能力使其成为后处理的理想选择。自动化处理可以显著提高工作效率,减少人为错误,而高级分析方法可以更深入地理解仿真结果,为电路设计提供有力支持。

kkchenjj的博客 1382

HDU5934Bomb(强连通缩点)

Bomb Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 560 Accepted Submission(s): 213Problem DescriptionThere are N bombs needing exploding.

妍恐龙的博客....^~^眼熟我 563

基于Simulink和Control System Toolbox的线控转向(Steer-by-Wire)系统设计

通过上述步骤,我们成功设计并实现了基于 Simulink 和 Control System Toolbox 的线控转向(Steer-by-Wire)系统。该系统能够接收来自方向盘的角度指令,经过控制器处理后,驱动转向执行器(如电动机),实现对车辆前轮转向角度的精确控制。通过虚拟场景仿真、硬件在环测试和实车测试,验证了系统的响应速度、控制精度、车辆稳定性和实时性能,并通过参数优化进一步提升了系统的性能。

MHD0815的博客 551

HDU - 5934 Bomb(tarjan缩点)

HDU-5934 Bomb(tarjan缩点) There are N bombs needing exploding. Each bomb has three attributes: exploding radius ri, position (xi,yi) and lighting-cost ci which means you need to pay ci cost making it e...

weixin_43179892的博客 272

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

HDU 5934 Bomb (tarjan缩点)

HDU5934 Bomb(2016杭州CCPC第二题)(强连通缩点) Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 26    Accepted Submission(s): 10 Proble

K键盘里的青春K 492

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

CCPC杭州B题 HDU5934 Bomb Tarjan缩点

比赛的时候十分愚蠢,想用并查集搞...http://acm.hdu.edu.cn/showproblem.php?pid=5934 // // main.cpp // 5934 Bomb (Tarjan缩点) // // Created by czf on 2016/10/31. // Copyright © 2016年 czf. All rights reserved. // #in

civinx的博客 406

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

HDU - 5934 Bomb tarjan缩点

题目链接:点击查看 题意:有N个炸弹,每个炸弹有一个坐标,一个爆炸范围和一个爆炸花费,如果一个炸弹的爆炸范围内有另外的炸弹,那么如果该炸弹爆炸,就会引爆所有爆炸范围内的炸弹,求让所有炸弹爆炸的最小花费。 题解:先缩点求出每个分量的最小值,再判断是否被指向,入度为0的点求和即可 #include&lt;bits/stdc++.h&gt; using namespace std; typede...

还我笑颜 174

HDU 5934 Bomb tarjan强连通分量+缩点

http://acm.hdu.edu.cn/showproblem.php?pid=5934 There are N bombs needing exploding. Each bomb has three attributes: exploding radius ri, position (xi,yi) and lighting-cost ci which means you need to p...

xiji333的博客 256

【HDU - 5934】Bomb (强连通分量Tarjan + 缩点)

题干: There areNNbombs needing exploding. Each bomb has three attributes: exploding radiusriri, position(xi,yi)(xi,yi)and lighting-costciciwhich means you need to paycicicost making it explod...

xuanweiace的博客 625

HDU 5934 Bomb(炸弹)

HDU 5934 Bomb(炸弹) TimeLimit:2000/1000MS(Java/Others)MemoryLimit:65536/65536K(Java/Others) ProblemDescription - 题目描述 There are Nbombs needing exploding. Each bomb ...

175

hdu5934(tarjan算法+缩点)bomb

There are NN bombs needing exploding. Each bomb has three attributes: exploding radius riri, position (xi,yi)(xi,yi) and lighting-cost cici which means you need to pay cici cost maki

OJBFOWE的博客 260

hdu 5934 Bomb【最小点基----Tarjan强连通+缩点染色】

Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 0    Accepted Submission(s): 0 Problem Description There are N bombs needing exp

mengxiang000000 1710

-----tarjan强连通分量缩点-hdu 5934 -Bomb

套个模板都整了好几天…..尴尬 There are NN bombs needing exploding. Each bomb has three attributes: exploding radius riri, position (xi,yi)(xi,yi) and lighting-cost cici which means you need to pay cici cost making

emmmm 616

HDU-5934 Bomb(Tarjan SSC)

HDU-5934 Bomb 这次训练赛美滋滋遇到两个比较水的图论题我能写,总算有用的图论选手感到舒适~ /*虽然因为卡这题很久所以最后还是掉到银牌线下面了,哎呀好气啊。而且如果出得快的话我们还有时间写一个二分D题的,气哭哭*/ 题目大意 坐标系上有N个炸弹,第i个炸弹在坐标(xi,yi)(x_i,y_i)(xi​,yi​)爆炸,有半径rir_iri​的范围内(包括边界)所有接触到的其他炸弹都能被引...

口丁乙orz各位菊苣口下留情orz口丁乙 341

HDU - 5934 tarjan(强连通分量+缩点)

There are N bombs needing exploding. Each bomb has three attributes: exploding radius ri, position (xi,yi) and lighting-cost ci which means you need to pay ci cost making it explode. If a un-lighting ...

birdmanqin的博客 188
上一篇: 2017 ACM-ICPC 亚洲区(青岛赛区)网络赛 HDU 6212 1007 Zuma (区间DP)
下一篇: 51nod 1557 两个集合(Set)
cillyb
博客等级 码龄11年 225粉丝 497原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值