HRBUST 1849 商品中心

vjudge

智商掉线...

可以发现一条边能贡献其他点当且仅当两点路径上这个边权值最小,所以如果按照边权从大到小加边,每加一条边就会合并两个联通块,那么一个联通块内的点到另一个联通块的点的权值就都是那条边的边权,所以可以给两个联通块内的点答案分别加上边权\(*\)另一个联通块点数.然后这个可以用类似重构树的方法维护,具体是每次给两个联通块根节点打标记,然后查询某个点就是根到这个点路径上的标记和

#include<bits/stdc++.h>
#define LL long long
#define uLL unsigned long long
#define db double

using namespace std;
const int N=2e5+10;
int rd()
{
    int x=0,w=1;char ch=0;
    while(ch<'0'||ch>'9'){if(ch=='-') w=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}
    return x*w;
}
struct node{int x;LL y;};
struct edge
{
    int x,y,z;
    bool operator < (const edge &bb) const {return z>bb.z;}
}e[N];
int n,pt,ff[N<<1],sz[N<<1],ch[N<<1][2];
LL tg[N<<1],ans;
int findf(int x){return ff[x]==x?x:ff[x]=findf(ff[x]);}
queue<node> q;

int main()
{
    while(~scanf("%d",&n))
    {
        for(int i=1;i<=n;++i)
            ff[i]=i,sz[i]=1;
        for(int i=1;i<=n+n;++i) tg[i]=ch[i][0]=ch[i][1]=0;
        for(int i=1;i<n;++i)
        {
            int x=rd(),y=rd(),z=rd();
            e[i]=(edge){x,y,z};
        }
        sort(e+1,e+n);
        pt=n;
        for(int i=1;i<n;++i)
        {
            int x=findf(e[i].x),y=findf(e[i].y),z=e[i].z;
            tg[x]+=1ll*sz[y]*z,tg[y]+=1ll*sz[x]*z;
            ++pt,ff[x]=ff[y]=ff[pt]=pt,sz[pt]=sz[x]+sz[y],ch[pt][0]=x,ch[pt][1]=y;
        }
        ans=0;
        q.push((node){pt,0});
        while(!q.empty())
        {
            int x=q.front().x;
            LL di=q.front().y;
            q.pop();
            ans=max(ans,di);
            if(!x) continue;
            q.push((node){ch[x][0],di+tg[ch[x][0]]});
            q.push((node){ch[x][1],di+tg[ch[x][1]]});
        }
        printf("%lld\n",ans);
    }
    return 0;
}

原文地址:https://www.cnblogs.com/smyjr/p/11432439.html

时间: 2024-10-07 13:54:03

HRBUST 1849 商品中心的相关文章

商品中心中台支持系统-商品销售信息设计

目录 商品中心中台支持系统-商品销售信息设计 修订记录 目录 1.商品销售信息设计 商品中心中台支持系统-商品销售信息设计 修订记录 日期 版本 章节 描述 作者 2018-10-25 V1.0 初始版本 无涯 目录 1.商品销售信息设计 本文讲述电商系统构建中,商品中心销售信息模块的相关知识和数据存储设计. 1.1.商品知识 商品销售信息包括商品价格信息,媒体信息,属性信息,商品描述信息等商品的通用扩展信息管理. 媒体信息:商品主图,商品切换图,商品视频. 属性信息:关键属性(通过该属性可搜索

电商商品中心类目体系

淘宝目前在线商品数超过 10 亿,如何精准的帮助用户找到他想要的商品呢?经过多年的探索,淘宝通过建立一套完整的类目属性体系,终于较好的解决了这一问题,今天就跟大家一起来谈谈淘宝的类目属性体系. ▍一点点历史和架构 2003 年淘宝刚上线时,商品量很少,没有分类. 后来,商品量上百,开始有了对商品进行单级分类,有点类似于现在的一级行业类目. 等到商品上万的时候,商品的单级分类已经不能满足需求,开始有了多级分类,就是一颗类目树了.从 06 年开始引入了属性,商家按照属性模板填写属性,用户可以按照属性

电商系统中的商品模型的分析与设计

前言 在电商系统中,商品模型至关重要,是整个电商的核心,下面通过一个简单的分析,设计一个基础的商品模型. 商品模型的演化 在以前,那时CMS很流行,最常见的模型是栏目-文章模型.于是做电商的时候,自然就继承了这种一对多的关系.只是栏目变成了分类,文章变成了商品.商品也具备了独特的业务属性.现在很多电商网站上左侧的菜单,也就是这个分类. 后来我们慢慢发现一个问题,只有分类并不能适应所有的需求,比如nike鞋和nikeT恤,用户可能希望先看nike的所有商品,这个模型就不能满足.我们想在这个关系中,

nCompass-视图中心的使用

单击返回:自学N-Compass之路  nCompass-视图中心的使用 视图中心:类似于商品中心,系统将默认常用的dashboard分类放在了视图中心. 我的视图:在视图中心添加收藏,就显示在我的视图中.  1. 视图基础知识 视图目录,搜索目录功能和添加目录分类功能: 视图目录,分级显示(一级目录,二级目录,dashboard): dashboard有两个操作,查看(收藏.下载[可通过json格式导出]和预览)和收藏(直接显示在我的视图中): 2. 创建目录  视图目录----新建目录 原文

ENode框架Conference案例分析系列之 - 事件溯源如何处理重构问题

前言 本文可能对大多数不太了解ENode的朋友来说,理解起来比较费劲,这篇文章主要讲思路,而不是一上来就讲结果.我写文章,总是希望能把自己的思考过程尽量能表达出来,能让大家知道每一个设计背后的思考的东西.我觉得,任何设计的结果可能看起来很高大上,一张图即可,但背后的思考,才是更有价值的东西. 本篇文章想写一下ENode如何处理由于业务需求的变化而导致的模型重构的问题.DDD之所以能解决复杂的业务问题是因为DDD是一种模型驱动的软件设计方法.用领域模型来捕获业务需求,根据业务需求,抽象出满足需求的

ENode框架Conference案例分析系列之 - 上下文划分和领域建模

前面一片文章,我介绍了Conference案例的核心业务,为了方便后面的分析,我这里再列一下: 业务描述 Conference是这样一个系统,它提供了一个在线创建会议以及预订会议座位的平台.这个系统的用户有两类:1)客户,可以创建和管理会议:2)会议座位预定者,可以预订会议座位.具体的关键业务描述如下: 客户创建一个会议,并录入会议的基本信息,比如名称.时间段.地点,等:会议创建后,系统会为客户自动生成一个AccessCode,客户可以通过AccessCode访问自己创建的会议: 客户定义某个会

淘宝技术发展

转载 http://blog.csdn.net/kobejayandy/article/details/8685271 目录 一.引言 二.个人网站 三.Oracle/支付宝/旺旺 四.淘宝技术发展(Java时代:脱胎换骨) 五.淘宝技术发展(Java时代:坚若磐石) 六.淘宝技术发展(Java时代:创造技术-TFS) 七.淘宝技术发展(分布式时代:服务化) 作者:赵超 一.引言 光棍节的狂欢 “时间到,开抢!”坐在电脑前早已等待多时的小美一看时间已到 2011 年 11 月 11 日零时,便迫

(转载)浅谈我对DDD领域驱动设计的理解

原文地址:http://www.cnblogs.com/netfocus/p/5548025.html 从遇到问题开始 当人们要做一个软件系统时,一般总是因为遇到了什么问题,然后希望通过一个软件系统来解决. 比如,我是一家企业,然后我觉得我现在线下销售自己的产品还不够,我希望能够在线上也能销售自己的产品.所以,自然而然就想到要做一个普通电商系统,用于实现在线销售自己企业产品的目的. 再比如,我是一家互联网公司,公司有很多系统对外提供服务,面向很多客户端设备.但是最近由于各种原因,导致服务经常出故

如何避免故障?

对每一个程序员而言,故障都是悬在头上的达摩克利斯之剑,都唯恐避之不及,如何避免故障是每一个程序员都在苦苦追寻希望解决的问题.对于这一问题,大家都可以从需求分析.架构设计 .代码编写.测试.code review.上线.线上服务运维等各个视角给出自己的答案.本人结合自己两年有限的互联网后端工作经验,从某几个视角谈谈自己对这一问题的理解,不足之处,望大家多多指出. 我们大部分服务都是如下的结构,既要给使用方使用,又依赖于他人提供的第三方服务,中间又穿插了各种业务.算法.数据等逻辑,这里面每一块都可能