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 ...
最新文章
- 【驱动】GNSS驱动:gpsOneXTRA 援助技术
- pygame 移开的矩形留痕迹_Python之pygame学习矩形区域(5)
- IE7.0默认主页修改
- Ubuntu : 未找到 ‘nm-tool‘ 命令
- SciencePlots科研绘图
- 4月11日 GCD 总结(二)
- 自动摘要php,phpcms修改手动摘要255字符、自动摘要200字符及取消自动摘要
- 请给出linux中查看系统已经登录用户的命令?
- 计算机自动关闭硬盘,你遇到过电脑硬盘自动关闭的问题吗?
- 服务器维护通宵,20150405晚上凌晨通宵进行服务器系统维护
- 使用Mysql 5.5数据库Hibernate自动建表创建表出错table doesn't exist
- Recoverit for Mac专业的数据恢复工具
- 背包问题(Knapsack Problem)—— 完全背包问题 —— (1)背包价值最大
- 2022 Medtec中国展参观渠道开放,800+参展企业将助力稳定供应链
- 电风扇维修 记录-成功复原3台电风扇
- 蜜雪冰城23年创业史:关门3次,被拆4次,创始人被弟弟怼出局
- JavaScript Promise迷你书(中文版)
- ntpdate离线安装
- 推荐收藏,25条实用简洁的 Python 代码真香啊
- Building window 2008 Cluster using Virtual Box 4.1.18 with ISCSI (NAS4Free)
热门文章
- 1、css引入的方式有哪些?_发泡机的原理都有哪些呢?
- Python解决使用列表副本问题
- 数学建模之微分方程(符实现例题和MATLAB源码)
- OpenCV | 图片与视频的相互转换(C++Python)
- 深入理解并发/并行,阻塞/非阻塞,同步/异步
- qq文件对方接收后一定会有提示吗_QQ要增加消息已读功能,你是否赞成?
- python中将列表中的元素倒序输出_python实现对列表中的元素进行倒序打印
- mysql查询到最新记录就停止_使用Limit参数优化MySQL查询 在找到一个记录后将停止查询...
- pwm驱动电机 为什么pwm不能太快_认识直流电机的PWM驱动控制电路
- matlab 正则化表达式_MATLAB 正则表达式(一)(转)