》》传送门《《

分析:这个题是结束之后和老师他们讨论出来的,很神奇;刚写的时候一直没有注意到这个是一个树这个条件;和老师讨论出来的思路是,任意两个结点出现的次数是(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(赛后补题)相关推荐

  1. HDU 6446 Tree and Permutation (dp)

    题意:给出一颗树,按节点进行全排列,给你一棵树,以全排列的第一个树为根节点,求出根节点到其他点的最短路径之和,把这些和在相加,求最后结果 分析:对于每一条边都经过了 2*(n-1)!次,用dp算出这棵 ...

  2. 2018 HDU多校第四场赛后补题

    2018 HDU多校第四场赛后补题 自己学校出的毒瘤场..吃枣药丸 hdu中的题号是6332 - 6343. K. Expression in Memories 题意: 判断一个简化版的算术表达式是否 ...

  3. Codeforces Round #701 (Div. 2)赛后补题报告(A~D)

    Codeforces Round #701 (Div. 2)赛后补题报告(A~D) A. Add and Divide 原题信息 http://codeforces.com/contest/1485/ ...

  4. 2021年度训练联盟热身训练赛第三场赛后补题

    2021年度训练联盟热身训练赛第三场赛后补题 A Circuit Math [题目分析] [代码展示] B Diagonal Cut [题目分析] [代码展示] C Gerrymandering [题 ...

  5. 2020年湖南中医药大学“华为杯”大学生程序设计竞赛——正式赛(赛后补题)

    目录 A-幸福小组 B-菜鸡驿站 C-TC的火柴 D-n盏灯 E-电子手表 F- TC的steam账号 G- 万圣节 H-最少颜色 I-2048 J-解密 K-TC的门牌号 L-粗心的小明 M-小明的 ...

  6. 赛后补题:2022CCPC绵阳 A. Ban or Pick, What‘s the Trick

    传送门:CF 题目描述: outputstandard output Bobo has recently learned how to play Dota2. In Dota2 competition ...

  7. 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 ...

  8. 2020年湖南中医药大学“华为杯”大学生程序设计竞赛(赛后补题)

    这次院赛给打自闭了,从头到尾一直落在后面,最后只拿到了二等奖尾,还是太菜了,唉(难受).多刷题!!! (未完待续) 目录 A:幸福小组 B:菜鸟驿站 C:TC的火柴 D:n盏灯 E:电子手表 F:TC ...

  9. Codeforces Round #498 (Div. 3) - 赛后补题

    D. Two Strings Swaps PS:没思考清楚,重复算了一些情况. #include<bits/stdc++.h> #include<bitset> #define ...

最新文章

  1. 西门子标准报文1常用_关于西门子变频器报文的个人解读
  2. yii2.0框架中自定义接口,实现类的多继承
  3. 图解Spring循环依赖,看过之后面试再也不用慌了!
  4. 20201202 《计算感知》武老师 第2节课 笔记
  5. Boost:双图bimap用户定义的名称未加标签的版本的测试程序
  6. ML Tools List
  7. 获取要素集中字段的唯一值
  8. 一、Java Web——JDBC快速入门(详解)
  9. 现代软件工程讲义 12 绩效管理
  10. Skype一国通套餐不再提供无限制拨打中国大陆地区通知
  11. 信息学奥赛一本通C++语言——1001:Hello,World!
  12. 云小课|三大灵魂拷问GaussDB(DWS)数据落盘安全问题
  13. vue-router: $router.push遇到的问题
  14. hive sql 怎么实现循环_shell中循环调用hive sql 脚本的方法
  15. Python pip freeze获取安装的Python包并使用pip install -r还原到这些包环境(转载)
  16. 北方民族大学c语言期末考试试题,2018年北方民族大学软件工程832C语言程序设计与数据结构之C程序设计考研核心题库...
  17. Go语言高性能编程手册(万字长文)
  18. 苹果App Store 四年历程回顾
  19. mysql 表继承_如何在数据库中表示继承?
  20. Indexes and Indexing

热门文章

  1. 详细解读Python 递归函数!
  2. 解密:90后程序员青睐哪些互联网公司?
  3. 【TensorFlow】TensorFlow函数精讲之tf.nn.softmax_cross_entropy_with_logits
  4. 【TensorFlow】TensorFlow函数精讲之 tf.random_normal()
  5. 一文带你纵览 200+ 大规模机器学习研究
  6. 程序员看的JPEG图像压缩介绍(多图慎入)
  7. 复练-关于面试的技能树-自信从容的参加面试
  8. oracle manager 配置,Oracle Net Manager 基本配置
  9. Spring Batch 使用指南
  10. java arraylist 合并_在Java中将两个arrayList合并到一个新的arrayList中,没有重复且没有顺序...