1051: [HAOI2006]受欢迎的牛
时间:2022-05-07
本文章向大家介绍1051: [HAOI2006]受欢迎的牛,主要内容包括1051: [HAOI2006]受欢迎的牛、Description、Input、Output、Sample Input、Sample Output、HINT、Source、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
1051: [HAOI2006]受欢迎的牛
Time Limit: 10 Sec Memory Limit: 162 MB
Submit: 2410 Solved: 1276
Description
每一头牛的愿望就是变成一头最受欢迎的牛。现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎。 这种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也认为牛C受欢迎。你的任务是求出有多少头牛被所有的牛认为是受欢迎的。
Input
第一行两个数N,M。 接下来M行,每行两个数A,B,意思是A认为B是受欢迎的(给出的信息有可能重复,即有可能出现多个A,B)
Output
一个数,即有多少头牛被所有的牛认为是受欢迎的。
Sample Input
3 3 1 2 2 1 2 3
Sample Output
1
HINT
100%的数据N<=10000,M<=50000
Source
题解:这辈子第一次写tarjan强连通分量,才知道这玩意可以如此霸气地实现缩点。在这里面就是先缩完了点,然后重新弄出来一个图,然后看图上出度为0的点是否唯一,如果唯一,输出这个缩点上有多少个点,否则0.。。。么么哒(个人觉得百度百科的算法讲解说的挺好的,赞一个:传送门在此)
1 type
2 point=^node;
3 node=record
4 g:longint;
5 next:point;
6 end;
7 var
8 i,j,k,l,m,n,h,t,ans:longint;
9 s,ss:array[0..100000] of boolean;
10 a:array[0..100000] of point;
11 c:array[0..100000,1..2] of longint;
12 f,b,low,dfn,d,e:array[0..100000] of longint;
13 function min(x,y:longint):longint;inline;
14 begin
15 if x<y then min:=x else min:=y;
16 end;
17 procedure add(x,y:longint);inline;
18 var p:point;
19 begin
20 new(p);
21 p^.g:=y;
22 p^.next:=a[x];
23 a[x]:=p;
24 end;
25 procedure tarjan(x:longint);
26 var i,j,k:longint;p:point;
27 begin
28 inc(h);
29 low[x]:=h;dfn[x]:=h;
30 inc(t);
31 ss[x]:=true;s[x]:=true;
32 f[t]:=x;
33 p:=a[x];
34 while p<>nil do
35 begin
36 if not(s[p^.g]) then
37 begin
38 tarjan(p^.g);
39 low[x]:=min(low[x],low[p^.g]);
40 end
41 else if ss[p^.g] then low[x]:=min(low[x],dfn[p^.g]);
42 p:=p^.next;
43 end;
44 if low[x]=dfn[x] then
45 begin
46 inc(ans);
47 while f[t+1]<>x do
48 begin
49 ss[f[t]]:=false;
50 b[f[t]]:=ans;
51 dec(t);
52 end;
53 end;
54 end;
55 begin
56 readln(n,m);
57 fillchar(s,sizeof(s),0);
58 fillchar(ss,sizeof(ss),0);
59 fillchar(b,sizeof(b),0);
60 fillchar(low,sizeof(low),0);
61 fillchar(dfn,sizeof(dfn),0);
62 for i:=1 to n do a[i]:=nil;
63 for i:=1 to m do
64 begin
65 readln(c[i,1],c[i,2]);
66 add(c[i,1],c[i,2]);
67 end;
68 tarjan(1);
69 fillchar(d,sizeof(d),0);
70 fillchar(e,sizeof(e),0);
71 for i:=1 to n do inc(e[b[i]]);
72 for i:=1 to m do
73 if b[c[i,1]]<>b[c[i,2]] then inc(d[b[c[i,1]]]); //吐槽:这边我第一遍交的时候写的是inc(d[c[i,1]]),显然这是一个相当愚蠢的错误,可问题是居然还是AC了?!?!表示不解*_*(HansBug:我猜是phile神犇保佑了吧233)
74 j:=-1;
75 for i:=1 to ans do
76 begin
77 if d[i]=0 then
78 begin
79 if j=-1 then j:=i else
80 begin
81 writeln(0);
82 halt;
83 end;
84 end;
85 end;
86 if j=-1 then writeln(0) else writeln(e[j]);
87 readln;
88 end.
89
- 香香的xss小记录(一)
- UAF Writeup - pwnable.kr
- 如何使用Nginx实现Impala负载均衡
- pwnhub年前最后一战——“血月归来”writeup
- MHN中心服务器搭建与树莓派蜜罐部署
- 如何在CDH中启用Spark Thrift
- 让你的以太坊 DApps 盈利的 6 种方法
- 赛博地球杯初赛第三名,ChaMd5安全团队的writeup
- 如何在Windows Server2012搭建DNS服务并配置泛域名解析
- 如何使用HBase快照实现跨集群全量与增量数据迁移
- 为什么你应该学习搭建区块链应用
- 如何在Hue中创建Ssh的Oozie工作流
- 如何在启用Sentry的CDH集群中使用UDF
- 区块链太火,小心你的服务器被动挖矿
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Vue框架av88732281笔记
- iOS-组件化(OC篇)
- Angular async pipe在html模板中的一个实际应用
- 3D引擎中LOD技术的理论基础
- one-hot encoding不是万能的,这些分类变量编码方法你值得拥有
- 【5分钟玩转Lighthouse】爬取JavaScript动态渲染页面
- 科技爱好者周刊(第 127 期):未来人人开发软件,几乎没人编码
- mac快捷键
- 浅谈Kotlin的Checked Exception机制
- 自研网关:特殊URL功能的开发
- centos7多网卡配置
- vuecli3 build之后静态文件出现404
- Muti-Similarity Loss:考虑了batch中整体距离分布的对比损失函数
- AkShare-中国宏观-社会消费品零售总额
- AkShare-中国宏观-存款准备金率