MOOC PTA 08-图8 How Long Does It Take

2023-11-19

http://pta.patest.cn/pta/test/18/exam/4/question/631

构建图的邻接矩阵,寻找入度为0的顶点,将其压入队列,出队列时对其相连接的顶点入度减1,更新每个顶点的最大时间。

刚开始提交 3和5 测试点过不去 是因为我以为输出最后一个顶点就是工程的最后一个顶点

#include<vector>
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cctype>
#include<cmath>
#include<cstdlib>
#include<queue>
using namespace std;
#define MAXnum 100
#define INF 100001
#define max(a,b) a>b?a:b
int Nv;//顶点个数
int Ne;//边的个数
int G[MAXnum][MAXnum];//图的邻接矩阵
int indegree[MAXnum];//入度计算
int time1[MAXnum];//时间计算
int countv;
void BuildGraph()
{
    int i,j,v1,v2,w;
    scanf("%d",&Nv);
    for(i=0; i<Nv; i++)
        for(j=0; j<Nv; j++)
            G[i][j]=-1;
    for( i=0; i<Nv; i++)
    {
        indegree[i]=0;
        time1[i]=0;
    }

    scanf("%d",&Ne);
    for(i=0; i<Ne; i++)
    {
        scanf("%d%d%d",&v1,&v2,&w);

        G[v1][v2]=w;
        indegree[v2]++;
        time1[v2]=max(w,time1[v2]);
    }

}
void topsort()
{
    queue<int> q;
    int v;
    int i;
    countv=0;
    
    for(i=0; i<Nv; i++)
        if(!indegree[i])
            q.push(i);


    while(!q.empty())
    {
        v=q.front();
        countv++;
        q.pop();
        
        for( i=0; i<Nv; i++)
            if(G[v][i]!=-1&&indegree[i]>0)
            {
                if(--indegree[i]==0)
                    q.push(i);
                    
                time1[i]=max(G[v][i]+time1[v],time1[i]);
            }
    }
    
    if(countv<Nv)
        printf("Impossible\n");
    else
    {
        int max1=-1;
        for(i=0; i<Nv; i++)
            if(max1<time1[i])
                max1=time1[i];
        printf("%d\n",max1);
    }
}
int main()
{
    BuildGraph();
    topsort();
    return 0;
}




本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MOOC PTA 08-图8 How Long Does It Take 的相关文章

  • 解析目标检测全流程!附代码数据

    关注后 星标 Datawhale 每日干货 每月组队学习 不错过 Datawhale干货 作者 王程伟 算法工程师 Datawhale成员 在计算机视觉中 红外弱小目标检测是一个重要的方向 但直到近一两年 才开始运用一些深度学习的方法 深度
  • 二叉树的递归遍历、非递归遍历、层次遍历

    1 递归遍历 2 非递归遍历 3 层次遍历 1 递归遍历 在使用递归遍历的时候 每个节点会经过三次 public class PreInPosTraversal public static class Node public int val
  • Java 基础--- Object Class

    Java 基础 Object Class Object Class 结构 toString clone finalize getClass equals Object obj hashCode 什么是hashcode hashcode的主要
  • 【MACOS(M1)编译Risc-v版OpenOCD】

    MACOS编译Risc v版OpenOCD 准备 1 执行顺序 常见问题 问题1 AC PROG CC C99 告警 2 问题2 texinfo 版本不匹配 问题2 libtool版本不匹配 问题3 编译错误 验证一下 准备1 Instal

随机推荐

  • document this 插件 mac_又一个折腰的 VSCode 插件

    1 最近这两周周末都在折腾 VSCode 白板插件 其主要原理是将 Excalidraw 1 嵌入到 VSCode 的 WebView 中 如果所有功能正常 那么相比于在 Web 中使用 在 VSCode 中将会更方便 截至目前 该插件的功
  • Power BI——SUMX函数(对列操作)

    1 语法 说明 第一个参数为被运算的表 table 第二个参数是对表中的每一行计算的表达式 2 步骤 SUMX 将迭代第一个参数中指定的表 一次一行 并完成第二个参数中指定的计算 3 案例 总销售额SUMX SUMX 销售表 销售表 数量
  • 【路径规划】基于A*算法和Dijkstra算法的路径规划(Python代码实现)

    个人主页 研学社的博客 欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码实现 1 概述 Dijkstr
  • 基于 tensorflow 的鲜花识别

    本文中 采用了卷积神经网络的深度学习方法来实现对鲜花种类的高精度识别 先是对原始图像进行预处理 然后是以LeNet 5 卷积神经网络模型为基础建立网络模型 再进行模型训练后得到鲜花识别分类器 最后分析实验结果并与其它花卉识别的算法进行对比
  • MySQL的JDBC操作入门案例 IDEA 实现

    package cn itcast jdbc import java sql public class JdbcDemo01 public static void main String args throws SQLException 1
  • 设计模式学习笔记(一)如何评判代码质量的好坏?

    1 评判代码质量好坏的角度 在目前的面板项目中 经常听到同事用 代码写的很烂 这是什么鬼 我去 这个思路很棒啊 等字眼来评判项目中部分代码逻辑的好坏 经过阅读一些文章和学习技术大神分享的内容 了解到真正评判代码好坏不应该笼统的用 好 烂 这
  • java实现starteam配置库中checkout对应的文件

    1 所属jar包 starteam sdk 5 2 jar 2 样例代码 package com comtop qcms base starteam import java io IOException import com comtop
  • 结果解读_染色体CNV检测结果解读

    染色体CNV检测的结果 大致可以分三类 完全正常或多态性 致病性片段 及 临床意义未明 值得一提的是 由于分子遗传学检测技术的发展 比如染色体CNV检测 染色体层面的产前诊断的时间不再局限于细胞培养的最佳时间 18 26周 脐血穿刺也几乎被
  • 编译mysql出现CMake Error at cmake/readline.cmake:83 (MESSAGE)

    本文转载至 http blog 163 com sz2273 pr blog static 41264296201361354426670 Could NOT find Curses missing CURSES LIBRARY CURSE
  • 【业务功能篇104】 补充【业务功能篇99】微服务-springcloud-springboot-电商订单模块--整合支付

    在前面我们业务功能篇98 99中 我们介绍了电商项目中的订单模块服务 那么最后就是需要进行支付动作 那么我们这里就通过订阅第三方平台支付宝的支付调用接口功能 来进一步完成订单提交后的支付动作 支付宝的接口使用可以登录官网开发指南详情去了解
  • java lazy_Spring注解之@Lazy注解使用解析

    Lazy用于指定该Bean是否取消预初始化 主要用于修饰Spring Bean类 用于指定该Bean的预初始化行为 使用该Annotation时可以指定一个boolean型的value属性 该属性决定是否要预初始化该Bean lazy代表延
  • 如何用3个方法做到照片数据恢复…

    照片数据恢复是否能够做到 现在电脑已经成为社会的主流工具 因为很多工作有已经通过互联网的桥梁达到了更高的利益 基本现在的生活已经离不开电脑的存在 当我们电脑中的照片或者相机什么的照片删除之后该怎么办 本期要给大家介绍一下照片丢失该怎么办 不
  • NHCP H4: Network Resource Management Topic

    NHCP H4 Network Resource Management Topic Cloud computing Single Choice T F items Single Choice 1 部署华为云计算解决方案时 一般将服务器BMC
  • Pygame 教程(4)拓展:使用 subsurface 方法

    原文 图像传输和绘制文本 在本拓展文章 将展示如何使用pygame Surface subsurface方法实现原文中的更改线条粗细步骤 pygame Surface subsurface将获取原Surface对象的子Surface它与原S
  • linux deepin/ubuntu系统 远程连接windows/linux 用rdesktop

    一 首先使用rdesktop 主要是rdesktop非常容易安装 极度简单 二 安装 1 duso apt get install rdesktop 三 windows 配置 1 远程设置 系统设置的远程设置 四 rdesktop连接win
  • C# 图片操作(图片读取,保存,转换,传输)

    JPG PNG GIF BMP图片格式的区别 类型 优点 缺点 应用场景 相同图片大小比较 BMP 无损压缩 图质最好 文件太大 不利于网络传输 152K GIF 动画存储格式 最多256色 画质差 53K PNG 可保存透明背景的图片 画
  • TCP/IP网络编程 第五章:实现基于TCP的服务端/客户端(2)

    回声客户端的完美实现 在上一章中 我们提出了实现的回声客户端存在的问题 这里我们来解决一下 先给出对应的服务端和客户端代码 while str len read clnt sock message BUF SIZE 0 write clnt
  • 使用cloudflare+wzfou为自己的网站配置CDN加速

    本文同步于个人博客 蝴蝶飞不过沧海 Blog 本文链接 泛播 Cloudflare 挖站否 Wzfou 为什么用到挖站否 单独泛播不就可以作cdn加速吗 众所周知泛播 cloudflare 国外知名免费cdn服务商无需网站备案 但有个缺点就
  • Latex安装教程

    Latex安装教程 TeXLive TeXstudio 1 TeXLive安装 2 TeXstudio安装 TeXLive和TeXstudio的安装包 链接 https pan baidu com s 17rgbGKE9t7oKd FePo
  • MOOC PTA 08-图8 How Long Does It Take

    http pta patest cn pta test 18 exam 4 question 631 构建图的邻接矩阵 寻找入度为0的顶点 将其压入队列 出队列时对其相连接的顶点入度减1 更新每个顶点的最大时间 刚开始提交 3和5 测试点过