「NOIP2014」「Codevs3728」 联合权值(乱搞
3728 联合权值







题解
这(在洛谷上)都是些什么标签?LCA?dp?(MAX问号脸
随意钦定一个点当根节点,转化成有根树处理。
对于dfs到的每个点,$sum$加上$x$和$fa[fa[x]]$的点权乘积$*2$($(x,y)$和$(y,x)$要算两次
然后在当前这个点的所有儿子之间乘一下,加到$sum$里。
当然也顺手跟$mac$取个$max$。
然后在处理每个点的儿子之间的恩怨时,很多人用的是$O(n^2)$的两个for。
菊花图会直接让你们TLE的啊qwq,但是这数据蛮水的,没卡他们qaq
所以我写的时候怕T,做了一丢丢优化,搞到了$O(n)$。
反正也没什么用就是了。
/*
qwerta
P1351 联合权值
Accepted
100
代码 C++,1.41KB
提交时间 2018-10-09 11:26:08
耗时/内存
170ms, 7356KB
*/
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
const int MAXN=+;
struct emm{
int e,f;
}a[*MAXN];
int h[MAXN];
int tot=;
void con(int u,int v)
{
a[++tot].f=h[u];
h[u]=tot;
a[tot].e=v;
a[++tot].f=h[v];
h[v]=tot;
a[tot].e=u;
return;
}
int w[MAXN];
int d[MAXN],fa[MAXN];
const int mod=;
long long sum=,ans=;
int st[MAXN];
void dfs(int x)
{
if(fa[fa[x]])
{
sum+=*w[x]*w[fa[fa[x]]];
sum%=mod;
ans=max(ans,(long long)w[x]*w[fa[fa[x]]]);
}
int tos=;
long long sumn=;
int mac1=,mac2=;
for(int i=h[x];i;i=a[i].f)
if(!d[a[i].e])
{
fa[a[i].e]=x;
d[a[i].e]=d[x]+;
st[++tos]=a[i].e;
sumn+=w[a[i].e];
if(w[a[i].e]>=mac1){mac2=mac1,mac1=w[a[i].e];}
else if(w[a[i].e]>mac2){mac2=w[a[i].e];}
}
ans=max(ans,(long long)mac1*mac2);
for(int i=;i<=tos;++i)
{
sum+=(sumn-w[st[i]])*w[st[i]];
sum%=mod;
}
//cout<<x<<" "<<ans<<" "<<sum<<endl;
for(int i=h[x];i;i=a[i].f)
if(fa[a[i].e]==x)
dfs(a[i].e);
return;
}
int main()
{
//freopen("a.in","r",stdin);
int n;
scanf("%d",&n);
for(int i=;i<n;++i)
{
int u,v;
scanf("%d%d",&u,&v);
con(u,v);
}
for(int i=;i<=n;++i)
scanf("%d",&w[i]);
int s=min(n,);
d[s]=;
dfs(s);
cout<<ans<<" "<<sum%mod;
return ;
}
「NOIP2014」「Codevs3728」 联合权值(乱搞的更多相关文章
- NOIP2014提高组第二题联合权值
还是先看题吧: 试题描述 无向连通图 G 有 n 个点,n-1 条边.点从 1 到 n 依次编号,编号为 i 的点的权值为 Wi ,每条边的长度均为 1.图上两点(u, v)的距离定义为 u 点到 ...
- 【前缀和】【前缀MAX】洛谷 P1351 NOIP2014提高组 day1 T2 联合权值
不难发现,树中与某个点距离为2的点只可能是它的父亲的父亲.儿子的儿子 或者 兄弟,分类讨论一下即可. 只有对于兄弟我们不能暴力搞,维护一下每个节点的所有儿子的前缀和.前缀MAX就行了. #includ ...
- 「NOIP2014」联合权值
传送门 Luogu 解题思路 因为这是一棵树,所以说两个点如果能产生联合权值,那么它们就只能通过唯一的一个中转点来匹配,所以我们就枚举这个中转点. 但是我们又会发现,如果把每个点周围的点抠出来进行两两 ...
- 【学术篇】luogu1351 [NOIP2014提高组] 联合权值
一道提高组的题..... 传送门:题目在这里.... 现在都懒得更自己的blog了,怕是太颓废了_ (:з」∠) _ 好久没做题了,手都生了.(好吧其实是做题方面手太生了) 这题我都不想讲了,把代码一 ...
- [Luogu 1351] NOIP2014 联合权值
[Luogu 1351] NOIP2014 联合权值 存图,对于每一个点 \(u\),遍历它的所有邻接点.以 \(u\) 为中转点的点对中,\((x,y)\) 的联合权值 \(w_x \cdot w_ ...
- [NOIP2014提高组]联合权值
题目:洛谷P1351.Vijos P1906.codevs3728.UOJ#16. 题目大意:有一个无向连通图,有n个点n-1条边,每个点有一个权值$W_i$,每条边长度为1.规定两个距离为2的点i和 ...
- [NOIP2014] 提高组 洛谷P1351 联合权值
题目描述 无向连通图G 有n 个点,n - 1 条边.点从1 到n 依次编号,编号为 i 的点的权值为W i ,每条边的长度均为1 .图上两点( u , v ) 的距离定义为u 点到v 点的最短距离. ...
- Noip2014 提高组 T2 联合权值 连通图+技巧
联合权值 描述 无向连通图 G 有 n 个点,n-1 条边.点从 1 到 n 依次编号,编号为 i 的点的权值为 WiWi, 每条边的长度均为 1.图上两点(u, v)的距离定义为 u 点到 v 点的 ...
- NOIP2014 联合权值
2.联合权值 (link.cpp/c/pas) [问题描述] 无向连通图G有n个点,n-1条边.点从1到n依次编号,编号为i的点的权值为Wi ,每条边的长度均为1.图上两点(u, v)的距离定义为u ...
随机推荐
- 近期微信上非常火的小游戏【壹秒】android版——开发分享
近期在朋友圈,朋友转了一个html小游戏[壹秒],游戏的规则是:用户按住button然后释放,看谁能精准地保持一秒的时间.^_^刚好刚才在linuxserver上调试程序的时候server挂了,腾出点 ...
- C和C++代码精粹笔记1
CH1 更好的C 运算符重载规定,必须有一个为用户自定义类型 一些输出没注意到的函数: float x = 123.456, y = 12345; //cout.precision(2); //显示两 ...
- HTTPS那些事儿(一)-HTTPS原理
HTTPS那些事儿(一) 近期看了<http权威指南>的几个章节.对HTTPS有了部分了解,同一时候在网上查阅了一些资料,遂打算记录一下心得,写的仓促,肯定有非常多错误的地方.欢迎大家指正 ...
- kubernetes之故障现场二,节点名称冲突
系列目录 问题描述:测试环境由于异常断电导致服务器重启一后,有一个节点的状态一直是NotReady.通过journalctl -f -u kubelet没有错误日志输出.通过tail /var/log ...
- JavaScript读书笔记(1)
从今天开启每天看书记笔记模式,<JavaScript高级程序设计(第3版)> 1. Javascript最初是为了解决输入验证器的问题,现在已经发展成一门复杂的语言: 2. 语言标准为E ...
- spring2实现定时任务的一种方式
1. 在项目中放入Spring的jar包 2. applicationContext.xml的<beans xmlns>部分,添加context相关内容: <beans xmlns= ...
- javascript中提高代码的封装性
我出的面试题中,有一条是问如何避免页面引用JS,出现函数.变量重复.冲突的. 从大的方面讲,应该引入javascript的模块化开发,符合AMD规范之类: 从小的方面说,大概就是限定变量和函数的作用域 ...
- Netty 100万级高并发服务器配置
前言 每一种该语言在某些极限情况下的表现一般都不太一样,那么我常用的Java语言,在达到100万个并发连接情况下,会怎么样呢,有些好奇,更有些期盼. 这次使用经常使用的顺手的netty NIO框架(n ...
- window.onerror 错误监听,发到后台
var doc = document.body || document.documentElement; var _onerror = Onerror(''); var Onerror = funct ...
- ADFS 2016 – Cannot add/update Relying Parties from the GUI from metadata files “Method not found”
UPDATE: The following update is fixing this issue: Cumulative Update for Windows 10 Version 1607 and ...