博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LuoGuP1351联合权值
阅读量:5289 次
发布时间:2019-06-14

本文共 1961 字,大约阅读时间需要 6 分钟。

并不是很难的题目.
你考虑枚举中间点,然后所有与它相连的点都满足形成权值的条件.
所以我们就直接枚举中间点,取权值最大的两个相乘更新答案.
然后统计所有和它相连的点的权值和,每次统计总权值的时候加上(相连的点的权值和-它自身的权值)*它自身的权值即可.

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define MEM(x,y) memset ( x , y , sizeof ( x ) )#define rep(i,a,b) for (int i = (a) ; i <= (b) ; ++ i)#define per(i,a,b) for (int i = (a) ; i >= (b) ; -- i)#define pii pair < int , int >#define X first#define Y second#define rint read
#define int long long#define pb push_backusing std::queue ;using std::set ;using std::pair ;using std::max ;using std::min ;using std::priority_queue ;using std::vector ;using std::swap ;using std::sort ;using std::unique ;using std::greater ;template < class T > inline T read () { T x = 0 , f = 1 ; char ch = getchar () ; while ( ch < '0' || ch > '9' ) { if ( ch == '-' ) f = - 1 ; ch = getchar () ; } while ( ch >= '0' && ch <= '9' ) { x = ( x << 3 ) + ( x << 1 ) + ( ch - 48 ) ; ch = getchar () ; } return f * x ;}const int mod = 1e4 + 7 ;const int N = 2e5 + 100 ;vector < int > G[N] ;int n , v[N] , sum[N] ;int maxn , ans ;inline bool cmp (int a , int b) { return v[a] > v[b] ; }signed main (int argc , char * argv[]) { n = rint () ; rep ( i , 2 , n ) { int u = rint () , v = rint () ; G[u].pb ( v ) ; G[v].pb ( u ) ; } rep ( i , 1 , n ) v[i] = rint () ; rep ( i , 1 , n ) sort ( G[i].begin () , G[i].end () , cmp ) ; rep ( i , 1 , n ) { if ( (int)G[i].size () < 2 ) continue ; int sum = 0 ; for (int j = 0 ; j < (int)G[i].size () ; ++ j) sum += v[G[i][j]] ; maxn = max ( maxn , v[G[i][0]] * v[G[i][1]] ) ; for (int j = 0 ; j < (int)G[i].size () ; ++ j) { int k = G[i][j] , m = (int)G[i].size () ; ans = ( ans + v[k] * ( sum - v[k] ) % mod ) % mod ; } } printf ("%lld %lld\n" , maxn , ans ) ; system ("pause") ; return 0 ;}

转载于:https://www.cnblogs.com/Equinox-Flower/p/11507976.html

你可能感兴趣的文章
关于不断刷新界面jsp+ajax
查看>>
js高阶函数应用—函数防抖和节流
查看>>
eclipse 中java/scala 混合的maven项目 工作环境篇
查看>>
顺序栈与两栈共享空间-C语言实现
查看>>
【mongo】可以用localhost启动,无法用ip启动问题的解决
查看>>
【QT】视频播放
查看>>
揭开Redis的神秘面纱
查看>>
Object流
查看>>
Windows Phone开发(8):关于导航的小技巧 转:http://blog.csdn.net/tcjiaan/article/details/7285062...
查看>>
Ajax学习笔记1之第一个Ajax应用程序
查看>>
css3新单位vw、vh、vmin、vmax的使用详解(转载)
查看>>
软件测试培训第30天
查看>>
centos7 关闭防火墙
查看>>
response实现文件下载
查看>>
【WP7】页面之间数据交互
查看>>
C++中的unique函数
查看>>
FontAwesome 奥森图标的学习
查看>>
request response cookie session
查看>>
NMON记录服务器各项性能数据
查看>>
未找到arm-linux-gcc解决办法
查看>>