传送门

题目大意:A能揭发B,B能揭发C..某些人可以被收买,如果收买A,那么A,B,C..的情报都可以得到。

求能否得到所有情报,如果可以最少花费多少钱去收买。

题解:tajian缩点

dfs/bfs从能收买的人遍历图,如果全部都能遍历,那么可以得

到所有的情报。然后tarjan缩点,并记录缩的每一个点的收买的

最小值,不能收买的人设收买他的花费是正无穷。统计入度为0

的点的收买花费和。

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#define maxn 3020
#define inf 0x3f3f3f3f
using namespace std; int n,p,r,sumedge,top,tim,sumclr,cnt,ans,tot;
int head[maxn],Stack[maxn],instack[maxn],low[maxn];
int vis[maxn],dfn[maxn],cw[maxn],rd[maxn],w[maxn],bel[maxn]; struct Edge{
int x,y,nxt;
Edge(int x=,int y=,int nxt=):
x(x),y(y),nxt(nxt){}
}edge[maxn*]; void add(int x,int y){
edge[++sumedge]=Edge(x,y,head[x]);
head[x]=sumedge;
} void dfs(int x){
if(vis[x])return;
vis[x]=true;++tot;
for(int i=head[x];i;i=edge[i].nxt){
int v=edge[i].y;
dfs(v);
}
} void Tarjian(int x){
low[x]=dfn[x]=++tim;
Stack[++top]=x;instack[x]=true;
for(int i=head[x];i;i=edge[i].nxt){
int v=edge[i].y;
if(instack[v])low[x]=min(low[x],dfn[v]);
else if(!dfn[v]){
Tarjian(v);low[x]=min(low[x],low[v]);
}
}
if(low[x]==dfn[x]){
sumclr++;cw[sumclr]=inf;
while(Stack[top+]!=x){
bel[Stack[top]]=sumclr;
cw[sumclr]=min(cw[sumclr],w[Stack[top]]);
instack[Stack[top--]]=false;
}
}
} int main(){
scanf("%d%d",&n,&p);
memset(w,0x3f,sizeof(w));
for(int i=;i<=p;i++){
int x,y;
scanf("%d%d",&x,&y);w[x]=y;
}
scanf("%d",&r);
for(int i=;i<=r;i++){
int a,b;
scanf("%d%d",&a,&b);
add(a,b);
}
for(int i=;i<=n;i++)if(w[i]!=inf)dfs(i);
if(tot!=n){
for(int i=;i<=n;i++)
if(vis[i]==){
printf("NO\n");
printf("%d\n",i);
return ;
}
}
for(int i=;i<=n;i++)if(!dfn[i])Tarjian(i);
for(int x=;x<=n;x++){
for(int i=head[x];i;i=edge[i].nxt){
int v=edge[i].y;
if(bel[x]!=bel[v])rd[bel[v]]++;
}
}
for(int i=;i<=sumclr;i++)
if(rd[i]==)ans+=cw[i];
printf("YES\n%d\n",ans);
return ;
}

AC

洛谷 P1262 间谍网络的更多相关文章

  1. 【题解】洛谷P1262 间谍网络 (强连通分量缩点)

    洛谷P1262:https://www.luogu.org/problemnew/show/P1262 思路 一看题目就知道是强连通分量缩点 当图中有强连通分量时 将其缩点 我们可以用dfn数组判断是 ...

  2. 洛谷——P1262 间谍网络

    P1262 间谍网络 题目描述 由于外国间谍的大量渗入,国家安全正处于高度的危机之中.如果A间谍手中掌握着关于B间谍的犯罪证据,则称A可以揭发B.有些间谍收受贿赂,只要给他们一定数量的美元,他们就愿意 ...

  3. 洛谷 P1262 间谍网络==Codevs 4093 EZ的间谍网络

    4093 EZ的间谍网络 时间限制: 10 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 由于外国间谍的大量渗入,国家安全正处于高度的危机之中.如果A间谍手中掌握着关于B ...

  4. 洛谷P1262 间谍网络[强连通分量 BFS]

    题目描述 由于外国间谍的大量渗入,国家安全正处于高度的危机之中.如果A间谍手中掌握着关于B间谍的犯罪证据,则称A可以揭发B.有些间谍收受贿赂,只要给他们一定数量的美元,他们就愿意交出手中掌握的全部情报 ...

  5. 洛谷 P1262 间谍网络 Label: Kosarajn强联通

    题目描述 由于外国间谍的大量渗入,国家安全正处于高度的危机之中.如果A间谍手中掌握着关于B间谍的犯罪证据,则称A可以揭发B.有些间谍收受贿赂,只要给他们一定数量的美元,他们就愿意交出手中掌握的全部情报 ...

  6. 洛谷P1262 间谍网络

    本来只想刷道小题,没想到还有点麻烦 题目描述 由于外国间谍的大量渗入,国家安全正处于高度的危机之中.如果A间谍手中掌握着关于B间谍的犯罪证据,则称A可以揭发B.有些间谍收受贿赂,只要给他们一定数量的美 ...

  7. 洛谷P1262间谍网络

    题目 我们首先考虑该题没有环应该怎么做,因为没有环所以是一个DAG,因此直接加上入度为0的罪犯,而有环则可以缩点,之后就成为了DAG,然后用一方法做就好了. \(Code\) #include < ...

  8. 洛谷 P1262 间谍网络 —— 缩点

    题目:https://www.luogu.org/problemnew/show/P1262 首先,一个强连通分量里有一个点被控制则所有点都被控制,所以先 tarjan 缩点,记一下每个连通块中能被收 ...

  9. 洛谷—— P1262 间谍网络

    https://www.luogu.org/problem/show?pid=1262 题目描述 由于外国间谍的大量渗入,国家安全正处于高度的危机之中.如果A间谍手中掌握着关于B间谍的犯罪证据,则称A ...

随机推荐

  1. jQuery幻灯片播放器插件

    在线演示 本地下载

  2. 实验四 Android程序设计 实验报告 20162305李昱兴

    实验四 Android程序设计 实验报告 20162305李昱兴 一.Android Studio的安装测试 1.有关该软件 Android Studio,是基于Itellij IDEA的一款流行的I ...

  3. 【转载】在block中使用weakSelf/strongSelf

    http://blog.lessfun.com/blog/2014/11/22/when-should-use-weakself-and-strongself-in-objc-block/

  4. SpringBoot2.0之整合ElasticSearch

    就类比数据库到时候去实现 服务器端配置 集群名字  与yml名字一致 pom: <project xmlns="http://maven.apache.org/POM/4.0.0&qu ...

  5. 比较好的SQL

    DECLARE @Data NVARCHAR(30);DECLARE @Data2 NVARCHAR(30);SET @Data = @DataDate;SET @Data = CONVERT(CHA ...

  6. Vue初步认识

    什么是Vue Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架(根据需求使用特定的功 能).与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的 ...

  7. Memcached 连接

    我们可以通过 telnet 命令并指定主机ip和端口来连接 Memcached 服务. 语法 telnet HOST PORT 命令中的 HOST 和 PORT 为运行 Memcached 服务的 I ...

  8. JDK_环境变量

    1. 在系统环境变量中设置: ClASSPATH中输入: ".;C:\Program Files\Java\jdk1.7.0_07\jre\lib\rt.jar;"//java的安 ...

  9. mysql升级的一些踩坑点

    升级的方法一般有两类: 1.利用mysqldump来直接导出sql文件,导入到新库中,这种方法最省事也最保险 缺点:大库的mysqldump费时费力. 2.直接替换掉 mysql 的安装目录和 my. ...

  10. 不同局域网如何利用charles对app进行抓包

    晚上遇到了一种尴尬的场景:电脑并没有无线网卡,电脑是通过有线连接的,但是手机连的是公共的wifi,二者并不在同一个网段 在试过很多办法无解后,终于百度出一种"曲线救国"的办法(以荣 ...