当前位置: 首页 > news >正文

2024.8.17


130124202408171002


DATE #:20240817

ITEM #:DOC

WEEK #:SATURDAY

DAIL #:捌月拾肆

TAGS
	
< BGM = "快哉风 -- 黄金玉米王" >
< theme = oi-language >
< theme = oi-graph theory >
< [空] > 
< [空] >
取次花丛懒回顾,半缘修道半缘君 -- 元稹《离思五首·其四》

[P4208 [JSOI2008] 最小生成树计数]([P4208 JSOI2008] 最小生成树计数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn))

[JSOI2008] 最小生成树计数

题目描述

现在给出了一个简单无向加权图。你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树。(如果两棵最小生成树中至少有一条边不同,则这两个最小生成树就是不同的)。由于不同的最小生成树可能很多,所以你只需要输出方案数对 31011 31011 31011 的模就可以了。

输入格式

第一行包含两个数, n n n m m m,其中 1 ≤ n ≤ 100 1 \le n \le 100 1n100 1 ≤ m ≤ 1000 1 \le m \le 1000 1m1000,表示该无向图的节点数和边数。每个节点用 1 ∼ n 1 \sim n 1n 的整数编号。

接下来的 m m m 行,每行包含两个整数: a , b , c a,b,c a,b,c,表示节点 a , b a,b a,b 之间的边的权值为 c c c,其中 1 ≤ c ≤ 1 0 9 1 \le c \le 10^9 1c109

数据保证不会出现自回边和重边。注意:具有相同权值的边不会超过 10 10 10 条。

输出格式

输出不同的最小生成树有多少个。你只需要输出数量对 31011 31011 31011 的模就可以了。

样例 #1

样例输入 #1

4 6
1 2 1
1 3 1
1 4 1
2 3 2
2 4 1
3 4 1

样例输出 #1

8

提示

数据范围及约定

对于全部数据, 1 ≤ n ≤ 100 1 \le n \le 100 1n100 1 ≤ m ≤ 1000 1 \le m \le 1000 1m1000 1 ≤ c i ≤ 1 0 9 1\leq c_i\leq 10^9 1ci109

先引入一个引理:

对于一个图的最小生成树,每个边权的边出现的次数是一样的

证明:模拟kruskal的过程,我们在给边排序时,交换同权的边并没有什么影响

那么我们先求解出最小生成树,并依次计算权值

考虑,当我们要加入权值为 i i i的若干条边时,

前面加入的边已经使其变成了几个联通块,只要考虑用权值为 i i i的边跑一次生成树数量即可,

之后对每个边权都依次操作

CODE
    //2024.8.17//by white_ice//[JSOI2008] 最小生成树计数 |P4208#include
http://www.lryc.cn/news/427108.html

相关文章:

  • 十分钟搭建一个RTMP服务器
  • Spring Boot解决循环注入问题
  • 《数据挖掘》期末考核重点
  • Golang | Leetcode Golang题解之第334题递增的三元子序列
  • HarmonyOs编写一个案例实现一个照片选择(阶段进阶 四种需求 逐一完善)
  • 洗衣机洗衣服一些知识
  • 探索文件系统:高效、可靠的文件管理与访问机制
  • 启程与远征Ⅸ--优化生成式人工智能以满足业务需求的框架
  • canal数据同步工具介绍与应用
  • ubuntu18.04 设置静态地址
  • jira敏捷开发管理工具视频教程Confluence工作流协同开发(2024)
  • 【网络】TCP回显服务器和客户端的构造,以及相关bug解决方法
  • Python知识点:如何使用Boto3进行AWS服务管理
  • Java - 正则表达式
  • Vue一款流行的JavaScript前端框架
  • GPT-SoVITS
  • linux高级编程——文件IO(常用函数大全)
  • matplotlib画图
  • Jetpack 各种框架简介
  • 海康VisionMaster使用学习笔记5-开机自启动
  • 驾驭数据之序:SQL序列的奥秘与实现
  • 【LeetCode】148. 排序链表
  • 阿里云-java调用短信服务,第三方接口的开启(傻瓜式教程)
  • 以node / link文件表征的道路网络-----基于南京公路公开数据做路径规划(下)------dijkstra算法的一些简单花样
  • 计算机操作员中级理论知识试题
  • Redis主从同步配置
  • 输出重定向
  • ubuntu20.04挂载机械硬盘
  • Python轻量级 NoSQL 数据库之tinydb使用详解
  • 【数据结构】二叉树(二)遍历