zoukankan      html  css  js  c++  java
  • 联合权值

    要根据题目描述看出这是一个树,然后在树上搜索......

    关于看出这是一个树,茅佳源老师在寒假的时候提醒过两次......

    然后注意在树上距离为2的情况有两种,一种是祖先关系,另一种是并列为儿子......

    然后就好了

     1 #include<iostream>
     2 #include<cstdio>
     3 using namespace std;
     4 typedef long long ll;
     5 const int mod=10007;
     6 const int maxn=2e6+7;
     7 ll val[maxn],head[maxn];
     8 ll sum,imax,num,n;
     9 struct Edge{
    10     int next,to;
    11 }edge[maxn];
    12 void add(int from,int to){
    13     edge[++num].next=head[from];
    14     edge[num].to=to;
    15     head[from]=num;
    16 }
    17 void build(int u,int pre){
    18     ll su=0,ima=0;
    19     for(int i=head[u];i;i=edge[i].next){
    20         int v=edge[i].to;if(v==pre) continue;
    21         imax=max(imax,val[pre]*val[v]);imax=max(imax,ima*val[v]); 
    22         sum+=val[pre]*val[v]%mod;sum+=su*val[v]%mod; 
    23         su+=val[v];ima=max(ima,val[v]);
    24         build(v,u);
    25     }
    26 }
    27 int main(){
    28     cin>>n;
    29     for(int i=1;i<n;i++){
    30         int u,v;cin>>u>>v;
    31         add(u,v);add(v,u);
    32     }
    33     for(int i=1;i<=n;i++) cin>>val[i];
    34     build(1,0);
    35     cout<<imax<<" "<<sum*2%mod<<endl;
    36     return 0; 
    37 } 
  • 相关阅读:
    css中的属性
    css初识和css选择器
    前端html的简单认识
    数据库进阶了解
    数据库索引
    pymysql模块
    数据库的多表查询
    数据库中的行操作
    数据库和表操作以及完整性约束
    数据库概述
  • 原文地址:https://www.cnblogs.com/lcan/p/9571418.html
Copyright © 2011-2022 走看看