》》传送门《《

分析:这个题是结束之后和老师他们讨论出来的,很神奇;刚写的时候一直没有注意到这个是一个树这个条件;和老师讨论出来的思路是,任意两个结点出现的次数是(n-1)!,建立这个连通图,每一条边的出现的次数是边的左结点数乘右结点数,然后右结点数又等于结点总数减去左结点数,所有我们只需要知道左节点数;画成树的样子就是,子节点的个数。这个题一定要建图,但是数据有点水,我用并查集就给A掉了。

#include<cstdio>
#include<vector>
#include<iostream> using namespace std;
#define ll long long const int maxn = 1e5 + ;
const ll mod = 1e9 + ;
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 = ;
for (int i = ; 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 = ; i <= n; i++){
tal[i] = ; tree[i] = i;
} for (int i = ; i <= n - ; 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 - ), sum = ;
for (int i = ; 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 * % mod;
cout << sum << endl;
} return ;
}

HDU 6446 Tree and Permutation(赛后补题)的更多相关文章

  1. HDU - 6446 Tree and Permutation

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6446 本题是一个树上的问题——DFS. 一棵N个结点的树,其结点为1~N.树具有N-1条边,每一条边具有 ...

  2. (1009) HDU 6446 Tree and Permutation(规律+树上各个点的距离和)

    题意: 给一棵N个点的树,对应于一个长为N的全排列,对于排列的每个相邻数字a和b,他们的贡献是对应树上顶点a和b的路径长,求所有排列的贡献和. 分析: 经过简单的分析可以得知,全部的贡献其实相当与(这 ...

  3. 2018 HDU多校第三场赛后补题

    2018 HDU多校第三场赛后补题 从易到难来写吧,其中题意有些直接摘了Claris的,数据范围是就不标了. 如果需要可以去hdu题库里找.题号是6319 - 6331. L. Visual Cube ...

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

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

  5. 【赛后补题】(HDU6228) Tree {2017-ACM/ICPC Shenyang Onsite}

    这条题目当时卡了我们半天,于是成功打铁--今天回来一看,mmp,贪心思想怎么这么弱智.....(怪不得场上那么多人A了 题意分析 这里是原题: Tree Time Limit: 2000/1000 M ...

  6. HZNU第十二届校赛赛后补题

    愉快的校赛翻皮水! 题解 A 温暖的签到,注意用gets #include <map> #include <set> #include <ctime> #inclu ...

  7. 【赛后补题】Lucky Probability(CodeForces 110D)

    题意 给定两个\(P,Q\)的正整数区间(\(P,Q\)都符合\([L,R]\)这个区间,并且都\(\le 10^9\)),分别从其中随机选出一个数,选出的两个数作为一个新区间的左右端点.要求新区间内 ...

  8. 「赛后补题」HBCPC2018题目代码与思路简析

    这次比赛(2018年第二届河北省大学生程序设计竞赛)虽然没有打,但是题目还是要写的.未完成的题目(还差比较硬核的四题)和思路分析会陆续更新完. Problem A 2011 Mex Query /* ...

  9. 【赛后补题】(HDU6223) Infinite Fraction Path {2017-ACM/ICPC Shenyang Onsite}

    场上第二条卡我队的题目. 题意与分析 按照题意能够生成一个有环的n个点图(每个点有个位数的权值).图上路过n个点显然能够生成一个n位数的序列.求一个最大序列. 这条题目显然是搜索,但是我队在场上(我负 ...

随机推荐

  1. LeetCode.893-特殊相等字符串组(Groups of Special-Equivalent Strings)

    这是悦乐书的第344次更新,第368篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第209题(顺位题号是893). You are given an array A of ...

  2. Mybatis的全局配置文件标签介绍(mybatis-config.xml)

    全局配置文件中本人只记录了常用的几个  typeHandlers, objectFactory,objectWrapperFactory, reflectorFactory, plugins, dat ...

  3. border-radius的参数

    border-radius的参数: 据w3c上的官方解释,是这样子的: border-radius: 1-4 length|% / 1-4 length|%;1-4指的是radius的四个值,leng ...

  4. [Usaco2005]Part Acquisition

    Description The cows have been sent on a mission through space to acquire a new milking machine for ...

  5. _bzoj1031 [JSOI2007]字符加密Cipher【后缀数组】

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1031 保存后缀数组模版. 其实如果数据范围小一点,或者空间限制再大一点,或者甚至只要字母表再 ...

  6. 题解报告:poj 2689 Prime Distance(区间素数筛)

    Description The branch of mathematics called number theory is about properties of numbers. One of th ...

  7. Normal equations 正规方程组

    前面我们通过Gradient Descent的方法进行了线性回归,但是梯度下降有如下特点: (1)需要预先选定Learning rate: (2)需要多次iteration: (3)需要Feature ...

  8. 转】SparkSQL中的内置函数

    原博文来自于: http://blog.csdn.net/u012297062/article/details/52207934    感谢! 使用Spark SQL中的内置函数对数据进行分析,Spa ...

  9. [转]Azure 表存储和 Windows Azure SQL Database - 比较与对照

    本文转自:https://msdn.microsoft.com/library/azure/jj553018 更新时间: 2014年10月 作者:Valery Mizonov 和 Seth Manhe ...

  10. web api 解决Ajax请求跨域问题

    前端ajax请求接口时,经常出现跨域问题,当然了解决方法有很多种,比如: http://www.jb51.net/article/68424.htm 我本人恰好前后端都会一点,所以直接在接口端处理. ...