zoukankan      html  css  js  c++  java
  • CF979C Kuro and Walking Route

    https://www.luogu.com.cn/problem/CF979C

    显然可以求需要先走到x再到y的点对数

    如果x和y不在同一条链上,那就x的子树大小*y的子树大小就可以了

    我们需要的是以x为根的时候,y的子树大小

    以y为根的时候,x的子树大小

    分别是n-从x开始搜,不经过y的点数

    和n-从y开始搜,不经过x的点数

    菜鸡本鸡。。。

    #include<cstdio>
    
    using namespace std;
    
    #define N 300001
    
    int front[N],nxt[N<<1],to[N<<1],tot;
    
    int s1,s2;
    
    void add(int u,int v)
    {
        to[++tot]=v; nxt[tot]=front[u]; front[u]=tot;
    }
    
    void dfs(int x,int f,int y)
    {
        if(x==y) return;
        s1++;
        for(int i=front[x];i;i=nxt[i])
            if(to[i]!=f) dfs(to[i],x,y); 
    }
    
    void dfs2(int x,int f,int y)
    {
        if(x==y) return;
        s2++;
        for(int i=front[x];i;i=nxt[i])
            if(to[i]!=f) dfs2(to[i],x,y); 
    }
    
    int main()
    {
        int n,x,y,u,v;
        scanf("%d%d%d",&n,&x,&y);
        for(int i=1;i<n;++i)
        {
            scanf("%d%d",&u,&v);
            add(u,v);
            add(v,u);
        }
        dfs(x,0,y);
        dfs2(y,0,x);
        printf("%lld",1ll*n*(n-1)-1ll*(n-s1)*(n-s2));
    }
  • 相关阅读:
    JSP 学习笔记1
    XML scriptlet 连接数据库
    JSP 定义行列数表单创建表格
    JSP_01
    JS创建表格完整
    04-基本的mysql语句
    03-MySql安装和基本管理
    02-数据库概述
    01-MySql的前戏
    爬虫系列
  • 原文地址:https://www.cnblogs.com/TheRoadToTheGold/p/13761365.html
Copyright © 2011-2022 走看看