1、题面

2、总结

第一次回忆一下当年的题目。但是这道题已经做烂了,只是看还记得树遍历会写么。

然后我写了一下,有点费劲,交上去之后只有70,比较尴尬,看了下去年5月写的代码,发现完全不是一个感觉啊。。。什么鬼?为什么那个时候写得那么长啊。难道是我现在想错了什么?

结果我发现当年我交过一个70分的。。发现差别就在于有没有开long long。

SHIT。想了一上午。

3、代码

 #include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std; #define MAXN 200005
#define MOD 10007 #ifdef WIN32
#define LL "%I64d"
#else
#define LL "%lld"
#endif typedef long long ll; ll h[MAXN], w[MAXN], tot[MAXN], n, u, v, o, ans, maxv; struct edge {
ll v, next;
} e[MAXN * ]; void add(ll u, ll v) {
o++, e[o] = (edge) {v, h[u]}, h[u] = o;
} void work(ll x, ll fa) {
ll sonv = , tmax = , vmax;
for (ll o = h[x]; o; o = e[o].next) {
ll v = e[o].v;
sonv += w[v];
if (tmax < w[v]) tmax = w[v], vmax = v;
}
for (ll o = h[x]; o; o = e[o].next) {
ll v = e[o].v;
if (v == fa) continue;
if (v != vmax) maxv = max(maxv, tmax * w[v]);
tot[v] += w[fa] + sonv - w[v], work(v, x);
maxv = max(maxv, w[v] * w[fa]);
}
} int main() {
freopen("link.in", "r", stdin);
freopen("link.out", "w", stdout);
scanf(LL, &n);
for (ll i = ; i < n; i++) scanf(LL " " LL, &u, &v), add(u, v), add(v, u);
for (ll i = ; i <= n; i++) scanf(LL, &w[i]);
work(, );
for (ll i = ; i <= n; i++) (ans += w[i] * tot[i]) %= MOD;
printf(LL " " LL, maxv, ans);
return ;
}

风格也差别比较大。

[NOIP2015]联合权值的更多相关文章

  1. [RT][NOIP2015]联合权值

    1.题面 2.总结 第一次回忆一下当年的题目.但是这道题已经做烂了,只是看还记得树遍历会写么. 然后我写了一下,有点费劲,交上去之后只有70,比较尴尬,看了下去年5月写的代码,发现完全不是一个感觉啊. ...

  2. Codevs 3728 联合权值

    问题描述 无向连通图G有n个点,n-1条边.点从1到n依次编号,编号为i的点的权值为Wi ,每 条边的长度均为1.图上两点(u,v)的距离定义为u点到v点的最短距离.对于图G上的点 对(u,v),若它 ...

  3. P1906联合权值

    描述 无向连通图 G 有 n 个点,n-1 条边.点从 1 到 n 依次编号,编号为 i 的点的权值为 WiWi, 每条边的长度均为 1.图上两点(u, v)的距离定义为 u 点到 v 点的最短距离. ...

  4. [NOIP2014] 提高组 洛谷P1351 联合权值

    题目描述 无向连通图G 有n 个点,n - 1 条边.点从1 到n 依次编号,编号为 i 的点的权值为W i ,每条边的长度均为1 .图上两点( u , v ) 的距离定义为u 点到v 点的最短距离. ...

  5. NOIp 2014 #2 联合权值 Label:图论 !!!未AC

    题目描述 无向连通图G 有n 个点,n - 1 条边.点从1 到n 依次编号,编号为 i 的点的权值为W i ,每条边的长度均为1 .图上两点( u , v ) 的距离定义为u 点到v 点的最短距离. ...

  6. 【洛谷P1351】联合权值

    我们枚举中间点,当连的点数不小于2时进行处理 最大值好搞 求和:设中间点 i 所连所有点权之和为sum 则对于每个中间点i的联合权值之和为: w[j]*(sum-w[j])之和 #include< ...

  7. Noip2014 提高组 T2 联合权值 连通图+技巧

    联合权值 描述 无向连通图 G 有 n 个点,n-1 条边.点从 1 到 n 依次编号,编号为 i 的点的权值为 WiWi, 每条边的长度均为 1.图上两点(u, v)的距离定义为 u 点到 v 点的 ...

  8. NOIP2014 联合权值

    2.联合权值 (link.cpp/c/pas) [问题描述] 无向连通图G有n个点,n-1条边.点从1到n依次编号,编号为i的点的权值为Wi  ,每条边的长度均为1.图上两点(u, v)的距离定义为u ...

  9. NOIP2014提高组第二题联合权值

    还是先看题吧: 试题描述  无向连通图 G 有 n 个点,n-1 条边.点从 1 到 n 依次编号,编号为 i 的点的权值为 Wi ,每条边的长度均为 1.图上两点(u, v)的距离定义为 u 点到 ...

随机推荐

  1. oracle中如何更改一个表的一个字段属性(名称,类型)

    修改字段的属性,名称方法 --修改某一个字段的类型,当该字段不为null时alter table 表名add 字段NUMBER(11,0) default 0 not null;--添加表一个字段 A ...

  2. 安装pip-9.0.1-py2.py3-none-any.whl

    pip的安装 1.从https://pypi.python.org/pypi/pip#downloads下载所需的.whl文件 2.将下载的文件放入Python的根目录 我的根目录是F:\Python ...

  3. Kafka界面管理工具-kafkamanager

    在上一篇文章<Linux安装Kafka>中,已经介绍了如何在Linux安装Kafka,以及Kafka的启动/关闭和创建发话题并产生消息和消费消息.这篇文章就介绍介绍Kafka管理界面(ka ...

  4. vue数据更改视图不更新问题----深入响应式原理

    Vue响应式原理之官方解释 当你把一个普通的JavaScript对象传给Vue实例的data选项,Vue将遍历此对象所有的属性,并使用Object.defineProperty把这些属性全部转为get ...

  5. mysql批量更新数据(性能优化)--第二种方式

    Spring+Mybatis 手动控制事务 参考: https://blog.csdn.net/qq_41750175/article/details/87621170 public boolean ...

  6. Lambda 表达式构建初级示例(不完整)

    直接贴代码了: using System; using System.Collections.Generic; using System.Linq; using System.Linq.Express ...

  7. Microsoft.Extensions.DependencyInjection 之一:解析实现

    [TOC] 前言 项目使用了 Microsoft.Extensions.DependencyInjection 2.x 版本,遇到第2次请求时非常高的内存占用情况,于是作了调查,本文对 3.0 版本仍 ...

  8. Powershell ExecutionPolicy 执行策略

    简单说明 powershell对于脚本的执行有着严格的安全限制 Get-ExecutionPolicy -List #查看当前的执行策略 Set-ExecutionPolicy -Scope Curr ...

  9. php 5.5 编译安装

    链接:https://pan.baidu.com/s/1Iy5kdugWqmvtsrYG0WYAdA 提取码:knk9 上面的链接 php5.5.8 编译安装的包 ./configure  --pre ...

  10. http接口和webservice接口的区别

    web service(SOAP)与HTTP接口的区别 什么是web service? soap请求是HTTP POST的一个专用版本,遵循一种特殊的xml消息格式Content-type设置为: t ...