HDU 6446 Tree and Permutation(赛后补题)
》》传送门《《
分析:这个题是结束之后和老师他们讨论出来的,很神奇;刚写的时候一直没有注意到这个是一个树这个条件;和老师讨论出来的思路是,任意两个结点出现的次数是(n-1)!,建立这个连通图,每一条边的出现的次数是边的左结点数乘右结点数,然后右结点数又等于结点总数减去左结点数,所有我们只需要知道左节点数;画成树的样子就是,子节点的个数。这个题一定要建图,但是数据有点水,我用并查集就给A掉了。
#include<cstdio> #include<vector> #include<iostream>using namespace std; #define ll long longconst int maxn = 1e5 + 10; const ll mod = 1e9 + 7; ll n, tree[maxn], tal[maxn]; struct Edge{ll a, b, v;Edge(){}Edge(ll _a, ll _b, ll _v) :a(_a), b(_b), v(_v){} }; ll f(ll nn){ll sum = 1;for (int i = 2; i <= nn; i++){sum = (sum*i) % mod;}return sum; } int main(){ll a, b, v;vector<Edge>vec;while (~scanf("%lld", &n)){vec.clear();for (int i = 1; i <= n; i++){tal[i] = 1; tree[i] = i;}for (int i = 1; i <= n - 1; i++){scanf("%lld%lld%lld", &a, &b, &v);if (a > b)swap(a, b);vec.push_back(Edge(a, b, v));tree[b] = a;tal[a] += tal[b];while (tree[a] != a){//cout << a << endl;a = tree[a];tal[a] += tal[b];}}/* (int i = 1; i <= n; i++){cout << "tal[i] = " << tal[i] << endl;}*/ll _n = f(n - 1), sum = 0;for (int i = 0; i < vec.size(); i++){sum = (sum + vec[i].v*(tal[vec[i].b] * (n - tal[vec[i].b])) % mod) % mod;}sum = sum*_n%mod;sum = sum * 2 % mod;cout << sum << endl;}return 0; }
转载于:https://www.cnblogs.com/zengguoqiang/p/9536695.html
HDU 6446 Tree and Permutation(赛后补题)相关推荐
- HDU 6446 Tree and Permutation (dp)
题意:给出一颗树,按节点进行全排列,给你一棵树,以全排列的第一个树为根节点,求出根节点到其他点的最短路径之和,把这些和在相加,求最后结果 分析:对于每一条边都经过了 2*(n-1)!次,用dp算出这棵 ...
- 2018 HDU多校第四场赛后补题
2018 HDU多校第四场赛后补题 自己学校出的毒瘤场..吃枣药丸 hdu中的题号是6332 - 6343. K. Expression in Memories 题意: 判断一个简化版的算术表达式是否 ...
- Codeforces Round #701 (Div. 2)赛后补题报告(A~D)
Codeforces Round #701 (Div. 2)赛后补题报告(A~D) A. Add and Divide 原题信息 http://codeforces.com/contest/1485/ ...
- 2021年度训练联盟热身训练赛第三场赛后补题
2021年度训练联盟热身训练赛第三场赛后补题 A Circuit Math [题目分析] [代码展示] B Diagonal Cut [题目分析] [代码展示] C Gerrymandering [题 ...
- 2020年湖南中医药大学“华为杯”大学生程序设计竞赛——正式赛(赛后补题)
目录 A-幸福小组 B-菜鸡驿站 C-TC的火柴 D-n盏灯 E-电子手表 F- TC的steam账号 G- 万圣节 H-最少颜色 I-2048 J-解密 K-TC的门牌号 L-粗心的小明 M-小明的 ...
- 赛后补题:2022CCPC绵阳 A. Ban or Pick, What‘s the Trick
传送门:CF 题目描述: outputstandard output Bobo has recently learned how to play Dota2. In Dota2 competition ...
- coderforce Educational Codeforces Round 44 (Rated for Div. 2) C(赛后补题)
C. Liebig's Barrels time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- 2020年湖南中医药大学“华为杯”大学生程序设计竞赛(赛后补题)
这次院赛给打自闭了,从头到尾一直落在后面,最后只拿到了二等奖尾,还是太菜了,唉(难受).多刷题!!! (未完待续) 目录 A:幸福小组 B:菜鸟驿站 C:TC的火柴 D:n盏灯 E:电子手表 F:TC ...
- Codeforces Round #498 (Div. 3) - 赛后补题
D. Two Strings Swaps PS:没思考清楚,重复算了一些情况. #include<bits/stdc++.h> #include<bitset> #define ...
最新文章
- 西门子标准报文1常用_关于西门子变频器报文的个人解读
- yii2.0框架中自定义接口,实现类的多继承
- 图解Spring循环依赖,看过之后面试再也不用慌了!
- 20201202 《计算感知》武老师 第2节课 笔记
- Boost:双图bimap用户定义的名称未加标签的版本的测试程序
- ML Tools List
- 获取要素集中字段的唯一值
- 一、Java Web——JDBC快速入门(详解)
- 现代软件工程讲义 12 绩效管理
- Skype一国通套餐不再提供无限制拨打中国大陆地区通知
- 信息学奥赛一本通C++语言——1001:Hello,World!
- 云小课|三大灵魂拷问GaussDB(DWS)数据落盘安全问题
- vue-router: $router.push遇到的问题
- hive sql 怎么实现循环_shell中循环调用hive sql 脚本的方法
- Python pip freeze获取安装的Python包并使用pip install -r还原到这些包环境(转载)
- 北方民族大学c语言期末考试试题,2018年北方民族大学软件工程832C语言程序设计与数据结构之C程序设计考研核心题库...
- Go语言高性能编程手册(万字长文)
- 苹果App Store 四年历程回顾
- mysql 表继承_如何在数据库中表示继承?
- Indexes and Indexing
热门文章
- 详细解读Python 递归函数!
- 解密:90后程序员青睐哪些互联网公司?
- 【TensorFlow】TensorFlow函数精讲之tf.nn.softmax_cross_entropy_with_logits
- 【TensorFlow】TensorFlow函数精讲之 tf.random_normal()
- 一文带你纵览 200+ 大规模机器学习研究
- 程序员看的JPEG图像压缩介绍(多图慎入)
- 复练-关于面试的技能树-自信从容的参加面试
- oracle manager 配置,Oracle Net Manager 基本配置
- Spring Batch 使用指南
- java arraylist 合并_在Java中将两个arrayList合并到一个新的arrayList中,没有重复且没有顺序...