码迷,mamicode.com
首页 > 其他好文 > 详细

P1113-杂务

时间:2019-09-16 14:51:24      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:lin   oid   putc   space   ast   ret   write   else   name   

#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define _for(i,a,b) for(int i = (a);i < (b);i ++)
#define INF 100000003
#define ll long long
inline ll read()
{
    ll ans = 0;
    char ch = getchar(), last =  ;
    while(!isdigit(ch)) last = ch, ch = getchar();
    while(isdigit(ch)) ans = (ans << 1) + (ans << 3) + ch - 0, ch = getchar();
    if(last == -) ans = -ans;
    return ans;
}
inline void write(ll x)
{
    if(x < 0) x = -x, putchar(-);
    if(x >= 10) write(x / 10);
    putchar(x % 10 + 0);
}

vector<int> G[10003];
int T[10003];
int con[10003];
int n; 
int main()
{
    n = read();
    _for(i,1,n+1)
    {
        read();
        T[i] = read();
        int t;
        while(t = read())
        {
            if(!t)
                break;
            else
                G[t].pb(i);
            con[i] ++;
        }
    }

    int t = 0;
    queue<int> q;
    q.push(1);
    q.push(0);
    while(q.size()!=1)
    {
        while(q.front())
        {
            int x = q.front();
            q.pop();
            T[x]--;
            if(T[x])
                q.push(x);
            else
                _for(i,0,G[x].size())
                {
                    con[G[x][i]] --;
                    if(!con[G[x][i]])
                        q.push(G[x][i]);
                }
        }
        q.pop();
        q.push(0);
        t ++;
    }
    write(t);
    return 0;
}

 

P1113-杂务

标签:lin   oid   putc   space   ast   ret   write   else   name   

原文地址:https://www.cnblogs.com/Asurudo/p/11526774.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!