请注意最佳消费者和最佳生产者可能有多个
查看原帖
请注意最佳消费者和最佳生产者可能有多个
548859
一袍清酒付楼主2023/9/12 21:49

注意最佳消费者和最佳生产者可能会有多个,在写代码的时候要注意。 需要这样写:

    queue<int> q;
    vector<int> dp(n + 1, 0); // dp[i]表示从生产者到节点i的总路径
    for(int i = 1; i <= n; ++ i)
        if(!in[i]){
            dp[i] = 1;
            q.push(i);
        }

而不是:

    queue<int> q;
    vector<int> dp(n + 1, 0); // dp[i]表示从生产者到节点i的总路径
	int dest = 0;
    for(int i = 1; i <= n; ++ i)
        if(!in[i]){
          dest = i;
        }
	q.push(dest);
	dp[dest] = 1;

输出同理:

    int ans = 0;
    for(int i = 1; i <= n; ++ i)
        if(! out[i])
            ans = (ans + dp[i]) % MOD;
    cout << ans % MOD;
2023/9/12 21:49
加载中...