首页 > 其他分享 >2023.7.28 并行课程III

2023.7.28 并行课程III

时间:2023-07-29 18:12:16浏览次数:39  
标签:int auto 拓扑 28 vector 2023.7 push now III

image

根据题目要求,可以分析出,需要按照拓扑序上完所有的课。每次上课都需要一定时间,可以同时上任意多门课,要求最少得时间。
比如说示例1中的一个拓扑序是123,可以让12并行,因此只需要3+5=8个时间。

可以先用拓扑排序,得出拓扑序,然后进行dp(满足拓扑序即可dp)。dp时,对每个节点,令其花费时间为自身时间+前驱结点里的最大时间(最大程度的并行)。最终答案即为f[n]

class Solution {
public:
    int minimumTime(int n, vector<vector<int>>& relations, vector<int>& time) 
    {
        vector<vector<int>> g(n + 1);
        vector<vector<int>> rg(n + 1);
        vector<int> d(n + 1); //入度
        for (auto edge : relations)
        {
            int u = edge[0], v = edge[1];
            g[u].push_back(v); //建反图
            rg[v].push_back(u);
            ++d[v];
        }

        queue<int> q;
        for (int i = 1; i <= n; ++i)
            if (d[i] == 0)
                q.push(i);
        
        vector<int> path;
        while (!q.empty())
        {
            auto t = q.front(); q.pop();
            path.push_back(t);
            for (auto x : g[t])
                if (--d[x] == 0)
                    q.push(x);
        }
        vector<int> f(n + 1, 0);
        for (int i = 0; i < path.size(); ++i)
        {
            int now = path[i];
            for (auto pre : rg[now])
                f[now] = max(f[now], f[pre]);
            f[now] += time[now - 1];
        }

        return *max_element(f.begin(), f.end());
    }
};

标签:int,auto,拓扑,28,vector,2023.7,push,now,III
From: https://www.cnblogs.com/st0rmKR/p/17590228.html

相关文章

  • 2023年7月28日
        今天早上起来背了20个英语单词,然后学习了一个小时的Java编程,接下来就看了一会构建之法。最后就是写了一会pta上的作业。明天打算6点起床然后晨跑半小时,然后编程一小时。再就是出去打会羽毛球。再就是看会英语阅读。......
  • 小米路由器R3G稳定2.28.44 固化SSH
    1.SSH参考恩山论坛的帖子SSH即可[R3G]R3G和R3GV2解锁SSH我做了实验R3G稳定2.28.44是可以一键SSH的。2.固化SSH帖子中SSH所使用的本质是OpenWRTInvasion原理是通过小米路由器的Rootshell漏洞上传二进制文件进而获取SSH及root但是所有的二进制文件全部上传于/tmp目录......
  • 2023/7/28
    今天我妈给我表哥买的电脑到了,结果送到我表哥家开始试用时发现电脑显示屏不会亮。我就又让他把电脑送回我家然后找客服问,以为能抢救一下,然后客服直接叫我申请售后!!!还以为申请售后会立马通过的,还审核了3个小时,然后被临时通知快递上门取件,在家里苦苦等待。晚上被同学叫去一起看电影......
  • 7 月 28 日闲话
    P2580于是他错误的点名开始了(黄)注意事项除特殊情况,推荐使用unordered_map,省去一个\(O(logn)\)复杂度。在unordered_map中查找元素:vis.find(s)==vis.end()注意定义时的数据类型;iterator可使用auto犯の错误没有注意输入格式,导致m的输入位置错误,调了半天。循环......
  • Android平台GB28181设备接入侧如何同时对外输出RTSP流?
    技术背景GB28181的应用场景非常广泛,如公共安全、交通管理、企业安全、教育、医疗等众多领域,细分场景可用于如执法记录仪、智能安全帽、智能监控、智慧零售、智慧教育、远程办公、明厨亮灶、智慧交通、智慧工地、雪亮工程、平安乡村、生产运输、车载终端等:公共安全:通过GB28181协议,用......
  • 2023.7.28打卡
    2023.7.28(1)、今天开始写了读后感,好久没写了,脑子里啥都没有,今天还练了车,学了Java,记了单词。(2)、明天去市里准备考科目三了,要先去熟悉下线路,明天可能写下读后感,Java就推后再学。(3)、今天没遇到什么问题。......
  • 2023.7.28
    今天在看SROP,又细看了几篇博客,把总体差不多了解清楚了,但是ctfwiki的exp上还有几个看不懂的东西,之前在另外的博客上倒是看懂了一个实例的exp,只不过这个博客上实现的exp和ctfwiki上不太一样,就我看懂的部分来看,应该时题目上的差别。ctfwiki上的问题,问了两个学长,暂时还没得到较完善的......
  • 7.28
    类的继承格式在Java中通过extends关键字可以申明一个类是从另外一个类继承而来的。class父类{}class子类extends父类{}继承的特性子类拥有父类非private的属性、方法。子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。子类可以用自己的方式实现父类的方法......
  • 《摆与混》第二十四章--7月28日--周五
    明天就是周末·!!!!1.今天做了什么:今天8点半起床。洗漱后,简单吃了早饭,早上小学了一下,下午邀请哥们来家里一起读书,随便晚上一起吃了个饭,饭后散了个步,经典PTA休息一天。2.解决了什么问题:Java课程推进,复习了一下。3.明天干什么:预计继续学习Java,PTA同步跟进;PS:不想学习,我想成为螺丝刀;......
  • 2023.7.28 周五:抽象类 abstract
    1//不能new抽象类,只能依靠子类去重写来实现2//抽象类中可以写普通方法3//抽象方法必须写在抽象类中4//5//person6packagecom.mu.www;78publicabstractclassPerson{//抽象类9publicabstractvoiddoSth();//抽象方法,只有方法名字,没有方法的实......