题解 | #相遇#

相遇

https://www.nowcoder.com/practice/5dc1ccabaa0442d8b83f00ec74b225fa

拓扑排序原理

#include <bits/stdc++.h>
using namespace std;


const int mod =  100007;
int main()
{
    
    int n,m,t;
    cin>>n>>m>>t;
    unordered_map<int,vector<int> >mp ;
    vector<int> ind(n+1); 
    // vector<int> dfn(n+1); 
    // vector<int> mdfn(n+1); 
    for(int i=0;i<m;i++) {

        int u,v;
        cin>>u>>v;
        mp[u].push_back(v);
        ind[v]++;
    }
    int qx;
    int cnt=0;
    cin>>qx;
    queue<int> q;
    for(int i=1;i<=n;i++)
        if(ind[i]==0)
            q.push(i);
    vector<int> seq; 
    while(q.size()) {
        int x = q.front();q.pop();
        seq.push_back(x);
        for(auto p: mp[x]) {
            ind[p]--;
            if(ind[p]==0)
                q.push(p);
        }
    }
    vector<int> dp(n+1);
    dp[t] = 1;

    for(int i=seq.size()-1;i>=0;i--) {
        int k = seq[i];
        for(auto ne: mp[k]) {
            dp[k] = (dp[k] + dp[ne]) % mod;
        }
    } 
    for(int i=0;i<qx;i++) {
        int s;
        cin>>s;
        //s->t cnt 
        cout << dp[s]<<endl;
    }
    return 0;
}

算法常用解题技巧 文章被收录于专栏

算法常用解题技巧

全部评论

相关推荐

序&nbsp;朋友们,好久不见。&nbsp;笔者在过去消失的五个月里被困在情绪牢笼中过的相当煎熬,一度丢失自己,觉得整个世界都是昏暗的。&nbsp;庆幸的是靠着自己纯硬扛也是走出来了。表达欲再度回归,所以真的很开心还有机会能在再和大家见面。&nbsp;破碎秋招&nbsp;抑郁情绪的引爆点必然是秋招期间遭受的打击了,从去年九月份腾讯转正被告知失败之后就开始疯狂投递简历,每天都在经历:简历挂、一面挂、二面挂、三面挂、HR面挂,每天睁开眼就被无所适从的挫败感包围。&nbsp;秋招的特点是即便流程走到最后一步也不一定会&nbsp;offer,因为还需要进入大池子进行横向对比,俗称泡池子,而这一泡我的大多数面试流程到后面就没了后文,这一度让我感觉非常绝望。我深知自己学历并...
SoNiC_X:我已经工作快2年了,当时高考没考好没去到想去的学校,觉得天要塌了;校招找不到工作,觉得天要塌了;现在工作觉得看不到未来,觉得天要塌了;最近最大的感悟就是:天会一直塌,但是生活也会一直继续下去,还是要调整好自己的心态,不要因为一时的困难把自己困住,要记住完蛋的日子永远在后头
点赞 评论 收藏
分享
03-11 14:28
浙江大学 设计
牛客小黄鱼:代入一下,独居女生会觉得有点可怕
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务