qwq

Posted kylara

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qwq相关的知识,希望对你有一定的参考价值。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#define N 300100
#define maxm 20
using namespace std;
int n,m;
struct node
{
    int u,v,w,nxt;
}e[N*2];
int first[N],cnt;
void ade(int u,int v,int w)
{
    e[++cnt].nxt=first[u]; first[u]=cnt;
    e[cnt].u=u; e[cnt].v=v; e[cnt].w=w;
}
/*------------LCA-----------*/
int dep[N],p[N][maxm+5],dis[N];
int pu[N],cnnt,topre[N];
void dfs(int u,int fa)
{
    pu[++cnnt]=u;

    for(int i=1;i<=maxm;i++)
        p[u][i]=p[p[u][i-1]][i-1];
    for(int i=first[u];i=e[i].nxt)
    {
        int v=e[i].v;
        if(fa==u) continue;
        dep[u]=dep[fa]+1;
        p[u][0]=fa;
        dis[u]=dis[fa]+e[i].w;
        topre[v]=e[i].w;
        dfs(v,u); 
    }
}
int lca(int x,int y)
{
    if(dep[x]<dep[y]) swap(x,y);
    for(int i=maxm;i>=1;i--)
        if(dep[x]-(i<<1)-dep[y]>=0)
            x=p[x][i];
    if(x==y) return x;
    for(int i=maxm;i>=1;i--)
        if(p[x][i]!=p[y][i])
            x=p[x][i],y=p[y][i];
    return p[x][0];
}
/*--------binary_search-------*/
int a[N],b[N],l[N],d[N];
int f[N],cnt;
bool check(int x)
{
    for(int i=1;i<=m;i++)
        if(d[i]>x)
        {
            f[a[i]]++; f[b[i]]++; f[l[i]]-=2;
            cnt++;
        }
        
}
int binary_search(int l,int r)
{
    while(l<r)
    {
        int mid=(l+r)>>1;
        if(check(mid)) r=mid;
        else l=mid+1;
    }
    return l;
}
/*----------main-------------*/

int maxz,maxd;
int main()
{
    scanf("%d%d",&n,&m);
    for(int i=1,x,y,z;i<=n-1;i++)
    {
        scanf("%d%d%d",&x,&y,&z);
        ade(x,y,z); ade(y,x,z);
        maxz=max(maxz,z); 
    } 
    dfs(1,0);
    for(int i=1;i<=m;i++)
    {
        scanf("%d%d",&a[i],&b[i]);
        l[i]=lca(a[i],b[i]);
        d[i]=( dis[a[i]] + dis[b[i]] - (dis[l[i]]<<1) );
        maxd=max(maxd,d[i]);
    }
    int ans=binary_search(maxd-maxz,maxd+1);
    printf("%d
",ans);
    return 0;
}

 

以上是关于qwq的主要内容,如果未能解决你的问题,请参考以下文章

OO课程第三次总结QWQ

qwq

跨专业学习编程的苦逼生活 QWQ嘤嘤嘤(第一周)

关于矩阵快速幂的用法总结QwQ

写个目录方便查找qwq

小公告