牛牛正在计划吃水果的顺序。他准备吃 numFruits 种水果,编号从 0 到 numFruits – 1。 在吃某些水果之前,有一些先决条件需要满足。先决条件以数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] 表示在吃水果 ai 之前必须先吃水果 bi。 例如,先决条件 [0, 1] 表示:在吃水果 0 前,必须先吃水果 1。 请你判断是否可能按照要求完成所有水果的吃法。如果可能,返回 true;否则,返回 false。

区块链毕设网qklbishe.com为您提供问题的解答

牛牛正在计划吃水果的顺序。他准备吃 numFruits 种水果,编号从 0 到 numFruits – 1。

在吃某些水果之前,有一些先决条件需要满足。先决条件以数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] 表示在吃水果 ai 之前必须先吃水果 bi。

例如,先决条件 [0, 1] 表示:在吃水果 0 前,必须先吃水果 1。
请你判断是否可能按照要求完成所有水果的吃法。如果可能,返回 true;否则,返回 false。

拓扑排序 

    bool canEatAllFruits(int numFruits, vector<vector<int> >& prerequisites) {         // write code here         vector<int> count(numFruits,0); //记录每个水果的先决个数         stack<int> table;         int num = 0;         unordered_map<int,unordered_set<int>>rela; //记录果子是其他哪些果子的先决条件         for(vector<int>& p : prerequisites)         {             count[p[0]]++;             rela[p[1]].insert(p[0]);         }         for(int i = 0;i<numFruits;++i)             if(count[i] == 0)                 table.push(i);         while(!table.empty())         {             int t = table.top();             table.pop();             ++num;             for(int val : rela[t])             {                 --count[val];                 if(count[val] == 0) //先决条件果子被吃完了,可以加入到table中去                     table.push(val);                }         }         if(numFruits == num)    //所有果子都遍历了             return true;         return false;              }

45:22

以上就是关于问题牛牛正在计划吃水果的顺序。他准备吃 numFruits 种水果,编号从 0 到 numFruits – 1。 在吃某些水果之前,有一些先决条件需要满足。先决条件以数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] 表示在吃水果 ai 之前必须先吃水果 bi。 例如,先决条件 [0, 1] 表示:在吃水果 0 前,必须先吃水果 1。
请你判断是否可能按照要求完成所有水果的吃法。如果可能,返回 true;否则,返回 false。的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

承接区块链项目定制开发

微信:btc9767

QQ :1330797917

TELEGRAM: BTCOK9

承接区块链项目定制开发


qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 牛牛正在计划吃水果的顺序。他准备吃 numFruits 种水果,编号从 0 到 numFruits – 1。 在吃某些水果之前,有一些先决条件需要满足。先决条件以数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] 表示在吃水果 ai 之前必须先吃水果 bi。 例如,先决条件 [0, 1] 表示:在吃水果 0 前,必须先吃水果 1。 请你判断是否可能按照要求完成所有水果的吃法。如果可能,返回 true;否则,返回 false。