cpu烧了
  • 板块灌水区
  • 楼主Sad_Fool
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/6/27 13:11
  • 上次更新2024/6/27 14:41:00
查看原帖
cpu烧了
1330396
Sad_Fool楼主2024/6/27 13:11
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 105, MAXM = 10005;
int n, p, in[MAXN], C[MAXN], T[MAXN], out[MAXN];
bool flag;
queue<int> q;
struct Edge
{
    int v, w;
};
vector<Edge> e[MAXN];
void tp() {
    for (int i = 1; i <= n; i++) if (in[i] == 0) q.push(i);
    while (q.size()) {
        int p = q.front();
        for (int i = 0; i < e[p].size(); i++) {
            int to = e[p][i].v, w = e[p][i].w;
            C[to] += w * C[p];
            if (--in[to] == 0) {
                C[to] -= T[to];
                q.push(to);
            } 
        }
        q.pop();
    }
}
int main()
{
    cin >> n >> p;
    for (int i = 1; i <= n; i++)
    {
        cin >> C[i] >> T[i];
    }
    int i, j, w;
    for (int i = 1; i <= p; i++) {
        cin >> i >> j >> w;
        e[i].push_back((Edge){j, w});
        in[j]++; out[i]++;
        cout << i << "\n";
    }
    tp();
    for (int i = 1; i <= n; i++) {
        if (!out[i] && C[i] > 0) {
            flag = 1;
            cout << i << " " << C[i] << "\n";
        }
    }
    if (!flag) cout << "NULL";
    return 0;
}


输入:

5 6
1 0
1 0
0 1
0 1
0 1
1 3 1
1 4 1
1 5 1
2 3 1
2 4 1
2 5 1

为什么没有输入完

2024/6/27 13:11
加载中...