首页 > 其他分享 >遍历(强连通)

遍历(强连通)

时间:2024-07-18 19:18:05浏览次数:4  
标签:输出 连通 遍历 正整数 方案 可以 节点

https://www.luogu.com.cn/problem/P2194 第3题     遍历 查看测评数据信息

给定n个点,m条边的有向图,每个节点有一个权重v(i),你的任务是把n个点遍历一遍,点可以重复经过。允许的操作如下:每次你可以选择一个开始节点i,如果可以从i出发,最后可以回到i节点,那么你的花费为v(i)。

问:最少需要多少费用可以把n个节点遍历一遍,并且当费用最少时的方案数是多少?存在一个开始节点不同被视为两种不同的方案,由于方案数可能过大,所以请输出方案数对 10^9+7 取模的结果。

(注:这里每次可以从任何一个开始节点开始走回路。就是说一个回路走完了,下一个开始位置可以任选。)

对于 100% 的数据,1<= n <= 10^5,1<= m <= 3*10^5,0<= w(i) <= 10^9。

输入格式

 

第一行一个正整数 n。   

第二行 n 个正整数,表示每个点的点权 w(i)。  

第三行一个正整数 m。  

接下来 m 行,每行两个正整数 x,y,表示一条 x到y有一条有向边。

 

输出格式

 

输出一行两个整数,分别表示最小花费,和花费最小时的方案数。

 

输入/输出例子1

输入:

3

1 2 3

3

1 2

2 3

3 2

 

输出:

3 1

 

样例解释

 

 

比较简单,记录缩点后胖点内最小值即可,以及有几个最小值

标签:输出,连通,遍历,正整数,方案,可以,节点
From: https://www.cnblogs.com/didiao233/p/18310286

相关文章

  • 代码随想录算法训练营Day13 | 二叉树理论基础 二叉树的递归遍历 前序、中序、后序遍历
    一、二叉树理论基础1. 二叉树种类①满二叉树:顾名思义就是结点都满的二叉树。定义:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。     深度为k,结点数为2^k-1的二叉树②完全二叉树:最后一层可以不满,但最后一层从左......
  • 代码随想录算法训练营第16天|LeetCode112路径总和LeetCode113路径总和iiLeetCode106.
    代码随想录算法训练营Day16代码随想录算法训练营第16天|LeetCode112路径总和LeetCode113路径总和iiLeetCode106.从中序与后序遍历序列构造二叉树LeetCode105.从前序与中序遍历序列构造二叉树目录代码随想录算法训练营前言LeetCode112路径总和,LeetCode113路径......
  • 算法力扣刷题记录 五十【106.从中序与后序遍历序列构造二叉树】和【105.从前序与中序
    前言记录三十八的四、二叉树构建通过层序遍历的数组实现。层序遍历中,某个节点下标是i,那么左孩子的下标2i+1,右孩子的下标2i+2。这是统一的规律。那么通过中序序列和后序序列如何构造二叉树?通过中序序列和前序序列如何构造二叉树?通过前序序列和后序序列如何构造二叉树?一......
  • 从前序与中序遍历序列构造二叉树-递归
    题目描述:个人题解:        只要我们在中序遍历中定位到根节点,那么我们就可以分别知道左子树和右子树中的节点数目。由于同一颗子树的前序遍历和中序遍历的长度显然是相同的,因此我们就可以对应到前序遍历的结果中,对上述形式中的所有左右括号进行定位。这样的话,我们就......
  • 朋友(强连通)
    https://www.luogu.com.cn/problem/P1407 第1题   朋友 查看测评数据信息我们已知n对男女朋友,称第i对朋友的男方为B(i),女方为G(i)。若某男B(i)与某女G(j)曾经是同学(无论是大学,高中,亦或是幼儿园阶段,i<=j),则当某方与其朋友(即B(i)与G(i)或B(j)与G(j))感情......
  • leetcode145. 二叉树的后序遍历,递归法+迭代法,全过程图解+步步解析,一点点教会你迭代法
    leetcode145.二叉树的后序遍历,递归法+迭代法给你一棵二叉树的根节点root,返回其节点值的后序遍历。示例1:输入:root=[1,null,2,3]输出:[3,2,1]示例2:输入:root=[]输出:[]示例3:输入:root=[1]输出:[1]递归法还是一如既往的简单。postorder函数是递归函数,用......
  • 连通性相关
    连通性相关强连通分量强连通分量(SCC):极大的强连通子图。Tarjan算法维护一个栈存储搜索到的还未确定强连通分量的点,定义:\(dfn_u\):节点\(u\)被搜索的次序。\(low_u\):\(u\)子树中能回溯到的最小的\(dfn\)。不难得到:一个点子树内的\(dfn\)大于该点的\(dfn\)。......
  • 利用递归的二叉树的先序,中序,后序遍历
    一.常见的二叉树的遍历①先序遍历:先访问根节点,再访问左右子树(根左右)③中序遍历:先访问左子树,再访问根节点,最后访问右子树(左根右)③后序遍历:先访问左右子树,再访问根节点(左右根)先定义二叉树的数据结构:typedefcharElemType;typedefstructBTNode{ ElemTypedata; ......
  • java陷阱之遍历数据源数据
    日常我们执行刷数更新避免使用分页偏移,如何涉及到条件变更会丢数据比如满足条件的数据12 34 567根据分页偏移查询当处理第一页12,12处理后不满足条件分页指针偏移到2,这个时候条件12已经不满足了就丢了34数据采用id偏移的方式针对要修改的db场景,还应该避免大事务......
  • 代码随想录算法训练营第十三天 | 144.二叉树的前序遍历、94、二叉树的中序遍历、145、
    144.二叉树的前序遍历题目:.-力扣(LeetCode)思路:有递归法和使用栈来模拟递归的迭代法。代码:1.递归/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nu......