Tyvj P1153 间谍网络
2 var
3 inv,cost,nv,v,f,stk,dfn,low,min,sml:array[1..3000]of longint;
4 g,ng:array[1..3000,1..3000]of longint;
5 map:array[1..3000,1..3000]of boolean;
6 vh,vis:array[1..3000]of boolean;{vh:入栈标志,vis:访问标志}
7 i,j,k,n,m,top,time,pts,oo,ans1,ans2:longint;
8 procedure add(a,b:longint);
9 begin
10 inc(v[a]);
11 g[a,v[a]]:=b;
12 end;
13 procedure nadd(a,b:longint); {统计新图各点的出度和入度,并为新图加边}
14 begin
15 if map[a,b] then exit;
16 inc(nv[a]); {增加a入度}
17 inc(inv[b]); {增加b出度}
18 ng[a,nv[a]]:=b; {将边加入新图}
19 map[a,b]:=true;
20 end;
21 procedure push(p:longint);
22 begin
23 inc(top);
24 stk[top]:=p;
25 vh[p]:=true;
26 end;
27 function pop:longint;
28 begin
29 pop:=stk[top];
30 vh[stk[top]]:=false;
31 dec(top);
32 end;
33 procedure dfs(p:longint);
34 var
35 i,k:longint;
36 begin
37 inc(time);
38 dfn[p]:=time;
39 low[p]:=dfn[p];
40 vis[p]:=true;
41 push(p);
42 for i:=1 to v[p] do
43 if not vis[g[p,i]] then
44 begin
45 dfs(g[p,i]);
46 if low[g[p,i]]<low[p] then
47 low[p]:=low[g[p,i]]
48 end
49 else
50 if vh[g[p,i]] then
51 if low[g[p,i]]<low[p] then
52 low[p]:=low[g[p,i]];
53 if low[p]=dfn[p] then
54 begin
55 k:=0;
56 inc(pts);
57 while k<>p do
58 begin
59 k:=pop;
60 f[k]:=pts;
61 end;
62 end;
63 end;
64 procedure merge(p:longint);
65 var
66 i:longint;
67 begin
68 if cost[p]<min[f[p]] then min[f[p]]:=cost[p]; {该点的最小代价}
69 if p<sml[f[p]] then sml[f[p]]:=p; {sml是为了解决不能控制的间谍的最小编号}
70 for i:=1 to v[p] do {缩点建边}
71 nadd(f[p],f[g[p,i]]);
72 end;
73 begin
74 readln(n);
75 readln(m);
76 fillchar(cost,sizeof(cost),$6f);
77 fillchar(min,sizeof(min),$6f);
78 for i:=1 to m do
79 begin
80 readln(j,k);
81 cost[j]:=k;
82 end;
83 readln(m);
84 for i:=1 to m do
85 begin
86 readln(j,k);
87 add(j,k);
88 end;
89 fillchar(vh,sizeof(vh),false);
90 fillchar(vis,sizeof(vis),false);
91 time:=0;
92 pts:=0;
93 for i:=1 to n do
94 if not vis[i] then
95 dfs(i);
96 for i:=1 to pts do map[i,i]:=true; {此分量与自身有路,作用见第15行}
97 fillchar(sml,sizeof(sml),$6f);
98 for i:=1 to n do merge(i);
99 fillchar(oo,sizeof(oo),$6f);
100 ans2:=oo;
101 ans1:=0;
102 for i:=1 to pts do
103 if inv[i]=0 then
104 begin
105 if min[i]<>oo then {若该点入度为零,且有间谍可收买,则加钱}
106 ans1:=ans1+min[i]
107 else
108 if sml[i]<ans2 then {若该点无间谍可收买,此分量间谍不可控,更新编号最小之不可控间谍}
109 ans2:=sml[i];
110 end;
111 if ans2=oo then
112 begin
113 writeln('YES');
114 writeln(ans1);
115 end
116 else
117 begin
118 writeln('NO');
119 writeln(ans2);
120 end;
121 end.
转载于:https://www.cnblogs.com/lexluthor/articles/1980197.html
Tyvj P1153 间谍网络相关推荐
- 缩点【洛谷P1262】 间谍网络
[洛谷P1262] 间谍网络 题目描述 由于外国间谍的大量渗入,国家安全正处于高度的危机之中.如果A间谍手中掌握着关于B间谍的犯罪证据,则称A可以揭发B.有些间谍收受贿赂,只要给他们一定数量的美元,他 ...
- P1262 间谍网络
传送门 思路: ①在 Tarjan 的基础上加一个 belong 记录每个点属于哪个强连通分量. ②存图完成后,暴力地遍历全图,查找是否要间谍不愿受贿. inline void dfs(int u) ...
- 洛谷P1262 间谍网络题解
洛谷P1262 间谍网络题解 题目大意 题目描述 由于外国间谍的大量渗入,国家安全正处于高度的危机之中.如果 A 间谍手中掌握着关于 B 间谍的犯罪证据,则称 A 可以揭发 B.有些间谍收受贿赂,只要 ...
- tyvj间谍网络(强连通分量)题解
题目描述见下列网址 http://www.tyvj.cn/ (P1153) 经过对题目的分析,可以得出,题目的要求就是求出图中的强连通分量连,然后进行缩点操作,最后枚举每一个入度为0的点,如果可以有 ...
- Luogu P1262 间谍网络 【强连通分量/缩点】By cellur925
题目传送门 真是一道好题呀~~~~qwq 知道这题是tarjan,但是想了很久怎么用上强连通分量.因为样例们...它显然并不是一个强联通分量! (被样例迷惑的最好例子) 然后...就没有然后了...感 ...
- loj10095 间谍网络
题目描述 由于外国间谍的大量渗入,国家安全正处于高度危机之中.如果A间谍手中掌握着关于B间谍的犯罪证据,则称A可以揭发B.有些间谍接受贿赂,只要给他们一定数量的美元,他们就愿意交出手中掌握的全部情报. ...
- P1262_美帝的间谍网络被我部捕获!
题面 这道题太神了吧,从昨晚七点半做到今天下午两点. 我经历了以下折腾(以下内容可跳过): 一开始想的是用Tarjan缩点,然后以可以被收买的间谍为起点跑最短路,通过路径染色,让一条路径上的点的权值等 ...
- EZ的间谍网络(codevs 4093)
由于外国间谍的大量渗入,学校安全正处于高度的危机之中.YJY决定挺身而作出反抗.如果A间谍手中掌握着关于B间谍的犯罪证据,则称A可以揭发B.有些间谍收受贿赂,只要给他们一定数量的美元,他们就愿意交出手 ...
- P1262 间谍网络 (tarjan缩点 水过去)
题目描述 由于外国间谍的大量渗入,国家安全正处于高度的危机之中.如果A间谍手中掌握着关于B间谍的犯罪证据,则称A可以揭发B.有些间谍收受贿赂,只要给他们一定数量的美元,他们就愿意交出手中掌握的全部情报 ...
最新文章
- Docker compose 容器编排
- CSV合规的矫枉过正
- Linux查看版本当前操作系统内核信息
- 2018 CVPR GAN 相关论文调研
- codelite在 ubuntu6.04下开启C++11支持
- Mac下和Windows下UnrealEngine 4体验对比
- android 评分条 RatingBar 使用及自定义
- 数据库学习笔记---connect by的简单用法
- 寻找优秀的AI公司与受人尊敬的资本助推者 | 量子位年度评选进行时
- Python下json中文乱码解决办法
- Spark—local模式环境搭建
- java 四边形_java求教,编写一个四边形的类与子类
- 全球智慧能源解决方案服务商「雄韬股份」牵手企企通,谱写采购数字化变革之路
- python print字体颜色 print背景颜色
- iOS 火星坐标相关整理及解决方案汇总
- 基于直方图的图像增强算法(HE、CLAHE)之(二)
- 缺失MSVCR120.dll文件
- 什么是“ Gacha”视频游戏?
- 关于Duilib的扩展——“拖放”实现(二)
- opencv 实现照片美颜功能 html5版(源码)