「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挂了,腾出点 ...
- PS 如何用PS制作GIF图像
首先我们准备好要依次播放的图片(这里使用的是CS的光标缩放,只有两张图) 然后在窗口中打开动画,则下方会出现动画的面板. 点击图层按钮可以添加一帧,我们让第一帧显示为大图片,第二帧为小图片.还可以设置 ...
- webpack 项目实战
步骤一: npm init 步骤二: npm install -D clean-webpack-plugin css-loader extract-text-webpack-plugin html-w ...
- UVA - 11354Bond最小生成树,LCA寻找近期公共祖先
看懂题目意思.他的意思是求将全部的城市走一遍,危急度最小.而且给 你两个s,t后让你求在走的时候,从s到t过程中危急度最大的值,并输出它, 然后就是怎样攻克了,这个题目能够说简单,也能够说难 通过思考 ...
- Allegro封装的制作
过孔封装的层次分析: 1.阻焊层Solder Mask:又称绿油层,是PCB上的非布线层,用于制成丝网漏印板,将不需要的焊接的地方涂上阻焊剂.由于焊接PCB时焊锡在高温下的流动性,所以必须在不需要焊接 ...
- Hadoop学习笔记(一)——Hadoop体系结构
HDFS和MapReduce是Hadoop的两大核心. 整个Hadoop体系结构主要是通过HDFS来实现分布式存储的底层支持的,而且通过MapReduce来实现分布式并行任务处理的程序支持. 一.HD ...
- php把时间存入数据库为年月日时分秒类型
时间用now() $sql1 = "insert into registerip (name,logintime,ip,url) values ('1211121',now(),'127.0 ...
- IO复用之select实现
前言 在看过前文:初探IO复用后,想必你已对IO复用这个概念有了初步但清晰的认识.接下来,我要在一个具体的并发客户端中实现它( 基于select函数 ),使得一旦服务器中的客户进程被终止的时候,客户端 ...
- xlua学习过程遇到的问题,以后通了之后可能就不是问题了。但是还是有记录的必要。
//2.加载lua文件,这里这种方式只能够加载Resources文件夹下面的,并且是lua.txt类型的文件,感觉没啥乱用. //文档你说的是Resources文件夹下面的才需要加txt后缀,那么就是 ...
- httpclient4 模拟访问网页 模拟登录 简单例子
JAVA后台模拟登录一个网站,获得一定权限后进一步操作. 所用的工具: Apache HttpComponents client 4.3版本 以下为代码: import org.apache.http ...