链接

https://www.lydsy.com/JudgeOnline/problem.php?id=2152

luogu爆搜都能过,总时间超过100ms就是写错了

思路

直接mod上面跑点分治就行了,又是模板

代码

#include <cstdio>
#include <algorithm>
#include <cmath>
#include <iostream>
using namespace std;
const int N=5e5+7;
const int inf=0x3f3f3f3f;
int read() {
int x=0,f=1;char s=getchar();
for(;s<'0'||s>'9';s=getchar()) if(s=='-') f=-1;
for(;s>='0'&&s<='9';s=getchar()) x=x*10+s-'0';
return x*f;
}
int n,ans;
struct node {
int v,nxt,q;
}e[N<<1];
int head[N<<1],tot;
void add(int u,int v,int w) {
e[++tot].v=v;
e[tot].q=w;
e[tot].nxt=head[u];
head[u]=tot;
}
int rt,rt_val;
int vis[N],siz[N],dis[N];
void get_rt(int u,int f) {
siz[u]=1;
int tmp=0;
for(int i=head[u];i;i=e[i].nxt) {
int v=e[i].v;
if(v==f||vis[v]) continue;
get_rt(v,u);
siz[u]+=siz[v];
tmp=max(tmp,siz[v]);
}
tmp=max(tmp,tot-siz[u]);
if(tmp<rt_val) rt_val=tmp,rt=u;
}
int T[5];
void get_dis(int u,int f) {
T[dis[u]]++;
for(int i=head[u];i;i=e[i].nxt) {
int v=e[i].v;
if(v==f||vis[v]) continue;
dis[v]=(dis[u]+e[i].q)%3;
get_dis(v,u);
}
}
int q[N];
void calc(int u) {
int a=1,b=0,c=0;
for(int i=head[u];i;i=e[i].nxt) {
int v=e[i].v;
if(vis[v]) continue;
dis[v]=e[i].q;
T[0]=T[1]=T[2]=0;
get_dis(v,u);
ans+=a*T[0]+c*T[1]+b*T[2];
a+=T[0],b+=T[1],c+=T[2];
}
}
void dfs(int u) {
vis[u]=1;calc(u);
for(int i=head[u];i;i=e[i].nxt) {
int v=e[i].v;
if(vis[v]) continue;
rt_val=inf;
tot=siz[v],get_rt(v,0);
dfs(rt);
}
}
int main() {
n=read();
for(int i=1;i<n;++i) {
int x=read(),y=read(),z=read()%3;
add(x,y,z);
add(y,x,z);
}
tot=n;
rt_val=inf;
get_rt(1,0);
dfs(rt);
int a=n*n,b=ans*2+n,gcd=__gcd(a,b);
a/=gcd,b/=gcd;
printf("%d/%d",b,a);
return 0;
}

bzoj2152: 聪聪可可 点分治的更多相关文章

  1. [bzoj2152][聪聪和可可] (点分治+概率)

    Description 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好 ...

  2. 【BZOJ2152】聪聪可可(点分治)

    [BZOJ2152]聪聪可可(点分治) 题面 Description 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电 ...

  3. BZOJ2152 [国家集训队] 聪聪可可 [点分治]

    题目传送门 聪聪可可 Time Limit: 3 Sec  Memory Limit: 259 MBSubmit: 5237  Solved: 2750[Submit][Status][Discuss ...

  4. BZOJ2152 聪聪可可 【点分治】

    BZOJ2152 聪聪可可 Description 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电脑)--遇到这种问 ...

  5. BZOJ2152 聪聪可可 (点分治)

    2152: 聪聪可可 题意: 在一棵边带权的树中,问任取两个点,这两个点间的权值和是3的倍数的概率. 思路: 经典的点分治题目. 利用点分治在计算所有路径长度,把路径长度对3取模,用t[0],t[1] ...

  6. BZOJ2152[国家集训队]聪聪可可——点分治

    题目描述 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好了,可是他们已 ...

  7. bzoj2152 / P2634 [国家集训队]聪聪可可(点分治)

    P2634 [国家集训队]聪聪可可 淀粉质点分治板子 边权直接 mod 3 直接点分治统计出所有的符合条件的点对再和总方案数约分 至于约分.....gcd搞搞就好辣 #include<iostr ...

  8. 【bzoj2152】聪聪可可 树的点分治

    题目描述 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好了,可是他们已 ...

  9. [BZOJ2152]聪聪可可 点分治/树形dp

    2152: 聪聪可可 Time Limit: 3 Sec  Memory Limit: 259 MB Submit: 3602  Solved: 1858 [Submit][Status][Discu ...

  10. 【bzoj2152】【聪聪可可】【点分治】

    [问题描写叙述] 聪聪和可但是兄弟俩.他们俩常常为了一些琐事打起来,比如家中仅仅剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(但是他们家仅仅有一台电脑)--遇到这样的问题,普通情况下石头剪刀布就好 ...

随机推荐

  1. windows启动项管理

    在运行框中输入 msconfig 选择启动栏 会跳转到任务管理器,可以管理启动项,可以看到我的启动项里有nc病毒 ,点击禁用即可.

  2. I Count Tow Three

    #include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#inclu ...

  3. C/C++笔试题(基础题)

    为了便于温故而知新,特于此整理 C/C++ 方面相关面试题.分享,共勉. (备注:各题的重要程度与先后顺序无关.不断更新中......欢迎补充) (1)分析下面程序的输出(* 与 -- 运算符优先级问 ...

  4. 51ll网产品信息保存为txt文件

    import requests from pyquery import PyQuery as pq url='http://www.51xxx.com/Try/index/p/3' headers={ ...

  5. 了解一下UTF-16

    1)先啰嗦一下 UTF-16是一种编码格式.啥是编码格式?就是怎么存储,也就是存储的方式. 存储啥?存二进制数字.为啥要存二进制数字? 因为Unicode字符集里面把二进制数字和字符一一对应了,存二进 ...

  6. 创建一个简单的WCF程序2——手动开启/关闭WCF服务与动态调用WCF地址

    一.创建WCF服务器 1.创建WCF服务器的窗体应用程序 打开VS2010,选择文件→新建→项目菜单项,在打开的新建项目对话框中,依次选择Visual C#→Windows→Windows窗体应用程序 ...

  7. 2017年3月29日 webService入门理解 二

    前边说到了N多webService的概念. 其实,说白了,我个人理解的话,webService就是一个“概念”.就好像互联网一样,就是一个很虚幻,很高的一个概念.同样,webService也是.互联网 ...

  8. MFC超链接

    最近写一个小的对话框程序时,想加一个文本超链接,研究了一下,发上自己的研究成果,供大家参考.下面说说完整的步骤. (假定静态文本ID为ID_STATIC) 首先,设置鼠标的形状及响应鼠标点击 第一步, ...

  9. 跨域的根本原因:JavaScript 的同源策略

    摘自:https://blog.csdn.net/liubo2012/article/details/43148705 同源策略限制了一个源(origin)中加载文本或脚本与来自其它源(origin) ...

  10. PHP官方文档和phpstorm配置指南

    http://cn2.php.net/manual/zh/ phpstorm安装——>next——>…… 下载PHP.exe 地址:http://www.php.net/ 配置interp ...