【(最小权点基)tarjan强连通分量缩点+tarjan模板】HDU 5934 Bomb
【AC】
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n;
const int maxn=1e3+;
const int maxm=1e6+;
const int inf=0x3f3f3f3f;
struct node
{
double x;
double y;
double r;
int c;
}a[maxn];
struct edge
{
int to;
int nxt;
}e[maxm];
int head[maxn],tot;
int dfn[maxn],low[maxn],id;
int S[maxn],top;
int belong[maxn],num;
int du[maxn];
int w[maxn];
bool vis[maxn];
void init()
{
memset(head,-,sizeof(head));
tot=;
id=;
top=;
num=;
memset(dfn,,sizeof(dfn));
memset(low,,sizeof(low));
memset(du,,sizeof(du));
memset(w,inf,sizeof(w));
memset(vis,false,sizeof(vis));
}
void addedge(int u,int v)
{
e[tot].to=v;
e[tot].nxt=head[u];
head[u]=tot++;
}
bool judge(int i,int j)
{
return sqrt((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;
}
void tarjan(int u)
{
dfn[u]=low[u]=++id;
S[++top]=u;
vis[u]=true;
for(int i=head[u];i!=-;i=e[i].nxt)
{
int v=e[i].to;
if(!dfn[v])
{
tarjan(v);
low[u]=min(low[u],low[v]);
}
else if(vis[v]) low[u]=min(low[u],dfn[v]);
}
if(dfn[u]==low[u])
{
num++;
while()
{
belong[S[top]]=num;
vis[S[top]]=false;
w[num]=min(w[num],a[S[top]].c);
if(S[top--]==u) break;
}
}
}
int main()
{
int T;
scanf("%d",&T);
int cas=;
while(T--)
{
init();
scanf("%d",&n);
for(int i=;i<=n;i++)
{
scanf("%lf%lf%lf%d",&a[i].x,&a[i].y,&a[i].r,&a[i].c);
}
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
{
if(j==i) continue;
if(judge(i,j))
{
addedge(i,j);
}
}
}
for(int i=;i<=n;i++) if(!dfn[i]) tarjan(i);
for(int u=;u<=n;u++)
{
for(int i=head[u];i!=-;i=e[i].nxt)
{
int v=e[i].to;
if(belong[u]==belong[v]) continue;
du[belong[v]]++;
}
}
int ans=;
for(int i=;i<=num;i++)
{
int tmp=inf;
if(du[i]==)
{
ans+=w[i];
}
}
printf("Case #%d: %d\n",++cas,ans);
}
return ;
}
【(最小权点基)tarjan强连通分量缩点+tarjan模板】HDU 5934 Bomb的更多相关文章
- 1051: [HAOI2006]受欢迎的牛 (tarjan强连通分量+缩点)
题目大意:CodeVs2822的简单版本 传送门 $Tarjan$强连通分量+缩点,若连通块的个数等于一则输出n:若缩点后图中出度为0的点个数为1,输出对应连通块内的点数:否则输出0: 代码中注释部分 ...
- 【BZOJ2438】 [中山市选2011]杀人游戏 tarjan强连通分量+缩点
Description 一位冷血的杀手潜入 Na-wiat,并假装成平民.警察希望能在 N 个人里面,查出谁是杀手. 警察能够对每一个人进行查证,假如查证的对象是平民,他会告诉警察,他认识的人, 谁是 ...
- HDU 3639 Hawk-and-Chicken(强连通分量+缩点)
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u013480600/article/details/32140501 HDU 3639 Hawk-a ...
- tarjan求强连通分量+缩点+割点以及一些证明
“tarjan陪伴强联通分量 生成树完成后思路才闪光 欧拉跑过的七桥古塘 让你 心驰神往”----<膜你抄> 自从听完这首歌,我就对tarjan开始心驰神往了,不过由于之前水平不足,一 ...
- tarjan求强连通分量+缩点+割点/割桥(点双/边双)以及一些证明
“tarjan陪伴强联通分量 生成树完成后思路才闪光 欧拉跑过的七桥古塘 让你 心驰神往”----<膜你抄> 自从听完这首歌,我就对tarjan开始心驰神往了,不过由于之前水平不足,一 ...
- Tarjan在图论中的应用(一)——用Tarjan来实现强连通分量缩点
前言 \(Tarjan\)是一个著名的将强连通分量缩点的算法. 大致思路 它的大致思路就是在图上每个联通块中任意选一个点开始进行\(Tarjan\)操作(依据:强连通分量中的点可以两两到达,因此从任意 ...
- tarjan算法(强连通分量 + 强连通分量缩点 + 桥(割边) + 割点 + LCA)
这篇文章是从网络上总结各方经验 以及 自己找的一些例题的算法模板,主要是用于自己的日后的模板总结以后防失忆常看看的, 写的也是自己能看懂即可. tarjan算法的功能很强大, 可以用来求解强连通分量, ...
- uva 11324 The Largest Clique(强连通分量缩点+DAG动态规划)
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=25&page=sh ...
- 【题解】洛谷P1262 间谍网络 (强连通分量缩点)
洛谷P1262:https://www.luogu.org/problemnew/show/P1262 思路 一看题目就知道是强连通分量缩点 当图中有强连通分量时 将其缩点 我们可以用dfn数组判断是 ...
随机推荐
- Drools应用实例
Drools 实例介绍 Drools编译与运行: 在Drools当中,规则的编译与运行要通过Drools提供的各种API来实现,这些API总体来讲可以分为三类:规则编译.规则收集和规则的执行. Kmo ...
- Windwos下安装和使用MongoDB
1)下载安装包下载路径:https://www.mongodb.com/download-center#community包名称:mongodb-win32-x86_64-3.4.10-signed. ...
- java httpclient 跳过证书验证
import java.io.IOException;import java.net.InetAddress;import java.net.Socket;import java.net.Unknow ...
- UVA - 1279 Asteroid Rangers (动点的最小生成树)
题意,有n个匀速动点,求最小生成树的改变次数. 一句话总结:动态问题的一般做法是先求出一个静态的解,然后求出解发生改变的事件,事件按照时间排序,依次处理. 先求出最开始的最小生成树(MST),当MST ...
- 解决response在controller返回乱码的解决方式
乱码的代码 @RequestMapping(value = "/readbook", method = RequestMethod.GET) 加入 produces = " ...
- sql视图和表的区别
整理一下视图和表的区别 区别: 1.视图是已经编译好了的sql,表不是 2.视图没有实际的物理存储记录,表有 3.视图是逻辑概念,表可以进行修改 5.表是内模式,视图是外模式 6.视图是我们查看表的方 ...
- Shift-Invariant论文笔记
ICML 2019 Making Convolutional Networks Shift-Invariant Again ICML 2019 Making Convolutional Network ...
- robotframework接口测试实例
*** Settings *** Library Collections Library RequestsLibrary *** Test Cases *** test Create Session ...
- PAT (Basic Level) Practise (中文)-1035. 插入与归并(25)
PAT (Basic Level) Practise (中文)-1035. 插入与归并(25) http://www.patest.cn/contests/pat-b-practise/1035 ...
- (6)zabbix主机与组配置
1. 创建主机方法 1.1 新建主机configuration(配置)->Hosts(主机)->Create host(创建主机) 见前面的博文 1.2 克隆/完全克隆主机 2. 主机参数 ...