博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ_1236 Network of School (Tarjan)
阅读量:5033 次
发布时间:2019-06-12

本文共 2698 字,大约阅读时间需要 8 分钟。

  Tarjan 它好贱,wa了10+次。。。

  思路:用“它贱”进行强连通缩点。然后统计缩点后的图中入度为0的点的个数in和出度为0的点到个数out。A就是in, B就是max(in, out);

渣代码:

View Code
1 #include 
2 #include
3 #include
4 #include
5 6 using namespace std; 7 8 const int N = 110; 9 10 struct node {
11 int to; 12 int next; 13 } g[N*N/2]; 14 15 int head[N], blong[N]; 16 int dfn[N], low[N]; 17 int in[N], out[N]; 18 int t, cnt, ind; 19 bool vis[N]; 20 21 stack
s; 22 23 void init() {
24 memset(g, 0, sizeof(g)); 25 memset(head, 0, sizeof(head)); 26 memset(blong, 0, sizeof(blong)); 27 memset(dfn, 0, sizeof(dfn)); 28 memset(low, 0, sizeof(low)); 29 memset(in, 0, sizeof(in)); 30 memset(out, 0, sizeof(out)); 31 memset(vis, 0, sizeof(vis)); 32 t = 1; cnt = ind = 0; 33 } 34 35 void add(int u, int v) {
36 g[t].to = v; g[t].next = head[u]; head[u] = t++; 37 } 38 39 void tarjan(int u) {
40 int v, i; 41 vis[u] = true; 42 s.push(u); 43 low[u] = dfn[u] = ++ind; 44 for(i = head[u]; i; i = g[i].next) {
45 v = g[i].to; 46 if(!dfn[v]) {
47 tarjan(v); 48 low[u] = min(low[u], low[v]); 49 } else if(vis[v]) {
50 low[u] = min(low[u], dfn[v]); 51 } 52 } 53 if(low[u] == dfn[u]) {
54 cnt++; 55 do {
56 v = s.top(); 57 s.pop(); 58 //printf("%d %d\n", v, cnt); 59 blong[v] = cnt; 60 vis[v] = false; 61 } while(v != u); 62 } 63 } 64 65 int main() {
66 //freopen("data.in","r", stdin); 67 68 int i, j, v, a, b, n; 69 while(~scanf("%d", &n)) {
70 init(); 71 for(i = 1; i <= n; i++) {
72 while(scanf("%d", &v), v) {
73 add(i, v); 74 } 75 } 76 77 for(i = 1; i <= n; i++) {
78 if(!dfn[i]) tarjan(i); 79 } 80 81 for(i = 1; i <= n; i++) {
82 for(j = head[i]; j; j = g[j].next) {
83 v = g[j].to; 84 if(blong[i] != blong[v]) {
85 in[blong[v]]++; out[blong[i]]++; 86 } 87 } 88 } 89 a = b = 0; 90 for(i = 1; i <= cnt; i++) {
91 if(!in[i]) a++; 92 if(!out[i]) b++; 93 } 94 printf("%d\n", a); 95 if(cnt == 1) printf("0\n"); 96 else printf("%d\n", max(a, b)); 97 } 98 return 0; 99 }

转载于:https://www.cnblogs.com/vongang/archive/2012/02/11/2346570.html

你可能感兴趣的文章
Camera前后摄像头同时预览
查看>>
HDU 1856
查看>>
课堂作业01--架构师的职责
查看>>
iOS计算富文本(NSMutableAttributedString)高度
查看>>
2017/09/15 ( 框架2)
查看>>
Centos下源码安装git
查看>>
gulp-rev-append md5版本号
查看>>
IO流之File类
查看>>
sql 基础语句
查看>>
CF717A Festival Organization(第一类斯特林数,斐波那契数列)
查看>>
oracle直接读写ms sqlserver数据库(二)配置透明网关
查看>>
控件发布:div2dropdownlist(div模拟dropdownlist控件)
查看>>
Oracle composite index column ordering
查看>>
ActiveReports 报表控件官方中文入门教程 (3)-如何选择页面报表和区域报表
查看>>
kaggle竞赛
查看>>
区块链入门教程
查看>>
域 搭建OU 组织单元
查看>>
npm常用命令
查看>>
南海区行政审批管理系统接口规范v0.3(规划)4.2.【queryExpireList】当天到期业务查询...
查看>>
[置顶] 细说Cookies
查看>>