栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 2236 All Discs Considered

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 2236 All Discs Considered

#include <queue>#include <cctype>#include <cstdio>#include <vector>#include <algorithm>using namespace std;inline int nextInt() {    static int ch = 0;    int ret = 0;    while (!isdigit(ch = getchar())) {        continue;    }    do {        ret *= 10;        ret += ch - '0';    } while (isdigit(ch = getchar()));    return ret;}const int MAXN = 100001;int n, m, d, a, b;vector<int> e[MAXN];int c[MAXN];int gao(int cur) {    static int c[MAXN];    int ans = 0;    queue<int> q[2];    copy(::c, ::c + n + m, c);    for (int i = 0; i < n; ++i) {        if (c[i] == 0) { q[0].push(i);        }    }    for (int i = 0; i < m; ++i) {        if (c[n + i] == 0) { q[1].push(n + i);        }    }    while (!q[0].empty() || !q[1].empty()) {        ++ans;        while (!q[cur].empty()) { for (int i = 0; i < e[q[cur].front()].size(); ++i) {     int v = e[q[cur].front()][i];     --c[v];     if (c[v] == 0) {         q[v >= n].push(v);     } } q[cur].pop();        }        cur = 1 - cur;    }    return ans + 1;}int main() {    while (true) {        n = nextInt();        m = nextInt();        d = nextInt();        if (n == 0 && m == 0 && d == 0) { break;        }        for (int i = 0; i < n + m; ++i) { e[i].clear(); c[i] = 0;        }        for (int i = 0; i < d; ++i) { a = nextInt() - 1; b = nextInt() - 1; e[b].push_back(a); ++c[a];        }        printf("%dn", min(gao(0), gao(1)));    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/380619.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号