bzoj2152 (点分治)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2152
思路:
要想两点之间距离为3的倍数,那么用t0表示该点距离重心的距离对3取模为0,依此得t1,t2,那么两点之间距离为3的倍数只有三种可能:t1-t2,t2-t1,t0-t0,将所有和重心的具体全部统计好,最后t1*t2*2+t0*t0就是
为3的倍数的点对数量
实现代码:
#include<bits/stdc++.h>
using namespace std;
#define inf 0x7fffffff
const int M = 1e5+;
int siz[M],f[M],head[M],vis[M],ans,cnt,t[M],sum,root,d[M];
struct node{
int to,next,w;
}e[M<<]; void init(){
ans = ;
cnt = ;
memset(vis,,sizeof(vis));
memset(head,,sizeof(head));
} void add(int u,int v,int w){
e[++cnt].to = v; e[cnt].w = w; e[cnt].next = head[u]; head[u] = cnt;
} void get_root(int u,int fa){
siz[u] = ; f[u] = ;
for(int i = head[u];i;i = e[i].next){
int v = e[i].to;
if(v != fa&&!vis[v]){
get_root(v,u);
siz[u] += siz[v];
f[u] = max(f[u],siz[v]);
}
}
f[u] = max(f[u],sum - siz[u]);
if(f[u] < f[root]) root = u;
return ;
} void get_dis(int u,int fa){
t[d[u]]++;
for(int i = head[u];i;i = e[i].next){
int v = e[i].to;
if(v != fa&& !vis[v]){
d[v] = (d[u] + e[i].w)%;
get_dis(v,u);
}
}
return ;
} int cal(int u,int c){
t[] = t[] = t[] = ;
d[u] = c;
get_dis(u,);
return t[]*t[]*+t[]*t[];
} void solve(int v){
ans += cal(v,); vis[v] = ;
for(int i = head[v];i;i = e[i].next){
int v = e[i].to;
if(!vis[v]){
ans -= cal(v,e[i].w);
sum = siz[v];
root = ;
get_root(v,);
solve(root);
}
}
} int main()
{
ios::sync_with_stdio();
cin.tie(); cout.tie();
int m,u,v,w,n;
cin>>n;
init();
for(int i = ;i <= n-;i ++){
cin>>u>>v>>w;
w%=;
add(u,v,w);
add(v,u,w);
}
f[] = inf;
sum = n;
root = ;
get_root(,);
solve(root);
int x = __gcd(ans,n*n);
cout<<ans/x<<"/"<<n*n/x<<endl;
return ;
}
bzoj2152 (点分治)的更多相关文章
- bzoj2152 树分治
还是太菜了,自己写的wa,但是找不到哪里错了,, 感觉现在学树分治早了点..以后回来再看吧 /* 多少点对之间的路径是3的倍数 */ #include<iostream> #include ...
- 【BZOJ2152】聪聪可可(点分治)
[BZOJ2152]聪聪可可(点分治) 题面 Description 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电 ...
- BZOJ2152 [国家集训队] 聪聪可可 [点分治]
题目传送门 聪聪可可 Time Limit: 3 Sec Memory Limit: 259 MBSubmit: 5237 Solved: 2750[Submit][Status][Discuss ...
- BZOJ2152 聪聪可可 【点分治】
BZOJ2152 聪聪可可 Description 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电脑)--遇到这种问 ...
- BZOJ2152 聪聪可可 (点分治)
2152: 聪聪可可 题意: 在一棵边带权的树中,问任取两个点,这两个点间的权值和是3的倍数的概率. 思路: 经典的点分治题目. 利用点分治在计算所有路径长度,把路径长度对3取模,用t[0],t[1] ...
- [bzoj2152][聪聪和可可] (点分治+概率)
Description 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好 ...
- [BZOJ2152]聪聪可可(点分治)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2152 分析:裸的点分治,对于每课树,记录t[0],t[1],t[2]表示到当前根节点距 ...
- BZOJ2152[国家集训队]聪聪可可——点分治
题目描述 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好了,可是他们已 ...
- bzoj2152 / P2634 [国家集训队]聪聪可可(点分治)
P2634 [国家集训队]聪聪可可 淀粉质点分治板子 边权直接 mod 3 直接点分治统计出所有的符合条件的点对再和总方案数约分 至于约分.....gcd搞搞就好辣 #include<iostr ...
随机推荐
- OO课程学期末总结
OO课程学期末总结 测试VS正确性论证 OCL vs JSF 对象约束语言(Object Constraint Language), 简称OCL, 是一种指示用户建模系统中的限制方式. 他是UML可选 ...
- HBase启动报错:ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet
今天进入hbase shell中输入命令报错:ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is no ...
- Winniechen’s test1
https://winniechen.cn/wp-content/uploads/2018/08/Winniechens_test_1.rar 放水练习赛,主要考察最短路,DP,状态压缩等知识点 题解 ...
- scala-数组操作
package com.bigdata import scala.collection.mutable.ArrayBuffer object ArrayO { def main(args: Array ...
- MS SQL Server字符拆分函数
Insus.NET以前有用XQuery的nodes()方法写过一个函数,是MS SQL字符拆分的函数,http://www.cnblogs.com/insus/archive/2012/02/26/2 ...
- 用pyinstaller把python代码打包成exe可执行文件
优点: 1. pyinstaller 是跨平台的可以用在linux和windows系统上 2. 操作非常简单,几个命令就搞定了,这个比py2exe容易用多了 缺点: 1. 打包后的体积过大,因为要带p ...
- MiZ702学习笔记9——XADC采集片上数据PS版
这次借助zynq的内嵌的XADC来采集zynq内部的一些参数: •VCCINT:内部PL核心电压 •VCCAUX:辅助PL电压 •VREFP:XADC正参考电压 •VREFN:XADC负参考电压 •V ...
- 【DDD】领域驱动设计实践 —— 业务建模战术
本文结合团队在COMMUNITY(社区服务系统)业务建模过程中的实践经验,总结得到一些DDD业务建模的小招数,不一定是完美的,但是对我们团队来说很有效用,希望能帮到其他人.后面会陆续将项目中业务建模的 ...
- python 游戏(猜单词Hangman)
1.游戏思路和流程图 实现功能:随机一个单词让玩家猜测(后续难度实现修改为成语填空,成语必须要有提示,可修改猜的次数,增加连续猜成语,难度系数随着次数的增加而增加) 游戏流程图 2. 单词库和模块 i ...
- 怎么理解LAXCUS大操作系统系统在云计算体系中的定位
最近一直在做laxcus大数据操作系统的分布式应用开发,因为做得多了,感触也多了.按照云计算三层定义,即iaas(基础设施即服务).paas(平台即服务).saas(软件即服务),laxcus属于pa ...