》》传送门《《

分析:这个题是结束之后和老师他们讨论出来的,很神奇;刚写的时候一直没有注意到这个是一个树这个条件;和老师讨论出来的思路是,任意两个结点出现的次数是(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. 【驱动】GNSS驱动:gpsOneXTRA 援助技术
  2. pygame 移开的矩形留痕迹_Python之pygame学习矩形区域(5)
  3. IE7.0默认主页修改
  4. Ubuntu : 未找到 ‘nm-tool‘ 命令
  5. SciencePlots科研绘图
  6. 4月11日 GCD 总结(二)
  7. 自动摘要php,phpcms修改手动摘要255字符、自动摘要200字符及取消自动摘要
  8. 请给出linux中查看系统已经登录用户的命令?
  9. 计算机自动关闭硬盘,你遇到过电脑硬盘自动关闭的问题吗?
  10. 服务器维护通宵,20150405晚上凌晨通宵进行服务器系统维护
  11. 使用Mysql 5.5数据库Hibernate自动建表创建表出错table doesn't exist
  12. Recoverit for Mac专业的数据恢复工具
  13. 背包问题(Knapsack Problem)—— 完全背包问题 —— (1)背包价值最大
  14. 2022 Medtec中国展参观渠道开放,800+参展企业将助力稳定供应链
  15. 电风扇维修 记录-成功复原3台电风扇
  16. 蜜雪冰城23年创业史:关门3次,被拆4次,创始人被弟弟怼出局
  17. JavaScript Promise迷你书(中文版)
  18. ntpdate离线安装
  19. 推荐收藏,25条实用简洁的 Python 代码真香啊
  20. Building window 2008 Cluster using Virtual Box 4.1.18 with ISCSI (NAS4Free)

热门文章

  1. 1、css引入的方式有哪些?_发泡机的原理都有哪些呢?
  2. Python解决使用列表副本问题
  3. 数学建模之微分方程(符实现例题和MATLAB源码)
  4. OpenCV | 图片与视频的相互转换(C++Python)
  5. 深入理解并发/并行,阻塞/非阻塞,同步/异步
  6. qq文件对方接收后一定会有提示吗_QQ要增加消息已读功能,你是否赞成?
  7. python中将列表中的元素倒序输出_python实现对列表中的元素进行倒序打印
  8. mysql查询到最新记录就停止_使用Limit参数优化MySQL查询 在找到一个记录后将停止查询...
  9. pwm驱动电机 为什么pwm不能太快_认识直流电机的PWM驱动控制电路
  10. matlab 正则化表达式_MATLAB 正则表达式(一)(转)