https://vjudge.net/contest/383000#problem/C
参考tarjan模板
参考题解

#include<stdio.h>
#include<stdlib.h>
#include<algorithm>
#include<string.h>
#define ll long long
#define MAXN 1000010
#define INF 0X3f3f3f3f
#include<iostream>
#include<vector>
#include<stack>
const ll inf=1e18;
using namespace std;struct vertex{int x,y,r,c;
}X[MAXN];
int mini[MAXN];
int in[MAXN];//***模板***
int n,m,cnt,cntb;
vector<int> edge[MAXN];
int belong[MAXN];
bool instack[MAXN];
int dfn[MAXN];
int low[MAXN];
stack<int> s;void tarjan(int u)
{++cnt;dfn[u]=low[u]=cnt;s.push(u);instack[u]=true; for(int i=0;i<edge[u].size();++i){int v=edge[u][i];if(!dfn[v]){tarjan(v);low[u]=min(low[u],low[v]);}else if(instack[v])low[u]=min(low[u],dfn[v]);}if(dfn[u]==low[u]){++cntb;//强连通分量个数 int node;do{node=s.top();s.pop();instack[node]=false;belong[node]=cntb;//belong[]从1开始 }while(node!=u);}
}
//***模板***void init(){cnt=0;cntb=0;for(int i=1;i<=n;i++){instack[i]=false;mini[i]=INF;in[i]=0;belong[i]=0;dfn[i]=0;low[i]=0;edge[i].clear();}
} ll dis(int a,int b){return 1ll*(X[a].x-X[b].x)*(X[a].x-X[b].x)+1ll*(X[a].y-X[b].y)*(X[a].y-X[b].y);
}
int main()
{int t;cin >>t;for(int w=1;w<=t;w++){scanf("%d",&n); init();for(int i=1;i<=n;i++){scanf("%d%d%d%d",&X[i].x,&X[i].y,&X[i].r,&X[i].c);}for(int i=1;i<=n;i++){for(int j=i+1;j<=n;j++){ll temp=dis(i,j);if(temp<=1ll*(X[i].r)*(X[i].r)) edge[i].push_back(j);if(temp<=1ll*(X[j].r)*(X[j].r)) edge[j].push_back(i);}}for(int i=1;i<=n;i++){if(!dfn[i]) tarjan(i);}for(int i=1;i<=n;i++){int bel=belong[i];mini[bel]=min(mini[bel],X[i].c);}/*    for(int i=1;i<=n;i++){printf("%d belongs to %d\n",i,belong[i]);}*/for(int i=1;i<=n;i++){for(int j=0;j<edge[i].size();j++){int v=edge[i][j];//    printf("edge: from %d to %d\n",i,v);if(belong[i]!=belong[v]) in[belong[v]]++;}}ll ans=0;for(int i=1;i<=cntb;i++){if(in[i]==0){ans+=mini[i];//  cout << ":"<<i <<":"<< mini[i] << endl;}}printf("Case #%d: %lld\n",w,ans);}
} 

tarjan缩点并找入度为0的新点相关推荐

  1. 【计蒜客 - 程序设计竞赛】商业信息共享(Tarjan缩点)

    题干: 商业信息共享 有 N 个公司,从每个公司都能单向地向另外一个公司分享最新商业信息,因为他们之间有着某种合作,你需要解决两个问题: 现在有一个最新的商业信息,至少需要告诉多少个公司,使得所有的公 ...

  2. BZOJ 1051 受欢迎的牛(Tarjan缩点)

    1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 4573  Solved: 2428 [Submit][S ...

  3. [中山市选]杀人游戏 (Tarjan缩点)

    题目链接 Solution 可以考虑到如果知道环内一点的身份,如果凶手在其中就查出来了,同时不会有危险. 那么对警察造成威胁的就是那些身份不明且不能从其他点转移过来的点. 那么大部答案就是缩完点之后入 ...

  4. 拓扑排序(依次加入入度为0的节点)

    文章目录 拓扑排序 二.代码 拓扑排序 1)在图中找到所有入度为0的点输出 2)把所有入度为0的点在图中删掉,继续找入度为0的点输出,周而复始 3)图的所有点都被删除后,依次输出的顺序就是拓扑排序 要 ...

  5. 【图论】Tarjan 缩点

    [Tarjan]缩点 在一个点N数据极大的图中,直接SPFA或者记忆花搜索时间超限,那么我们可以利用Tarjan缩点来减少N. 举个例子: 如上图:3,6两点为该图中的强连通分量,我们可以将它们看做一 ...

  6. [BZOJ 2438] [中山市选2011]杀人游戏 Tarjan缩点

    这个题很容易想到正解就是缩点找入度为零的点,那么我们考虑一种特殊情况就是,一个入度为零的点我们不访问他就知道他是不是凶手,那么这样的话就是:I. 他是一个真·孤立的点 II. 他在图里但是在他的强联通 ...

  7. Tarjan缩点/边双/点双

    文章目录 代码实现 实际应用 1.有向图 另外:对于缩点之后的DAG的处理 2.无向图 求法 细节 细节: 目录: 1.「POJ 3694」Network 2.「2019 ICPC 横滨站」 3. P ...

  8. pku 1236 Network of Schools (tarjan缩点)

    http://poj.org/problem?id=1236 N(2<N<100)各学校之间有单向的网络,每个学校得到一套软件后,可以通过单向网络向周边的学校传输,问题1:初始至少需要向多 ...

  9. CodeForces999E 双dfs // 标记覆盖 // tarjan缩点

    http://codeforces.com/problemset/problem/999/E 题意 有向图    给你n个点,m条边,以及一个初始点s,问你至少还需要增加多少条边,使得初始点s与剩下其 ...

最新文章

  1. layUI 学习记录
  2. 测试几款大型LED的反向电流大小
  3. 买了又扔 戴尔放弃vworkspace虚拟桌面
  4. 阿里安全图灵实验室再次刷新世界顶级算法比赛成绩
  5. 基于 FPGA 的以太网回环测试verilog实现UDP协议
  6. Git Flow工作流图
  7. linux apache中文名称图片,linux下解决apache不支持中文名的方法详解!
  8. threadlocal内存泄露_深入理解 ThreadLocal
  9. java性能检测工具_老李分享:JAVA性能监控工具
  10. Linux学习记录-01(Linux系统发展史)
  11. xcopy使用与案例使用
  12. gooflow学习笔记
  13. 操作系统进程通信实验
  14. 互联网公司裁员潮传言四起,是捕风捉影还是确有其事?
  15. Android 网络获取图片处理
  16. 死链提交为什么不能提交 html文件,百度死链提交的方法,百度死链提交的的作用...
  17. mysql in个数限制_mysql where in 条件中参数个数问题
  18. 数理逻辑 形式可推演与逻辑推论
  19. Groovy - GString String
  20. vue项目加载慢,Nginx页面优化

热门文章

  1. html5 indexdb api,IndexDB API
  2. 大数据毕业设计 招聘网站数据分析可视化 - python flask 网络爬虫
  3. 初识KVM虚拟化(KVM是什么,KVM框架,优势和劣势)
  4. np.trapz()的生动解释
  5. YOLO v3算法详解
  6. 为何世人皆称春酿独好?
  7. Qt学习: QStackedWidget和手工代码布局的程序实例
  8. 手把手带你从零基础抓取A站短视频,并且制作从动态壁纸,这些小姐姐我全都要!
  9. swit - 毛玻璃效果
  10. 怎么在mysql中附加数据库文件_sql无法附加数据库怎么办_sql附加不上数据库的解决方法-系统城...