BZOJ 2152 Luogu 2634——聪聪可可
BZOJ 2152 Luogu 2634——聪聪可可
题意
求两点之间路径和为3的倍数占的概率(最简)
解题思路与BZOJ1468差不多,
不过本题在计算经过某个点的次数时用了个ans数组,
对路径长度模3,得到的是0或1或2,但仍需要去重。
返回的值应是ans[0]*ans[0]+ans[1]*ans[2]*2。
为什么呢?
题目要求是3的倍数,所以0+0还是三的倍数,1+2也是三的
倍数,但是这里必须乘2,可以(2,3),当然也可以(3,2)。
#include<cstdio> #include<algorithm> #include<cstring> #define maxn 20010 using namespace std; struct LINK{int to,next,v; }e[maxn*2]; int deep[maxn],Distance[maxn],Maxsize[maxn],size[maxn],temp,tot,head[maxn],vis[maxn],root,k,ans[3],an; inline char Getchar(){static char BUF[16384],*S=BUF,*T=BUF;return(S==T)&&(T=(S=BUF)+fread(BUF,1,16384,stdin),S==T)?EOF:*S++; } inline int read(){int w=0;char c=Getchar();while(c<'0'||c>'9') c=Getchar();while(c>='0'&&c<='9'){w=w*10+c-48;c=Getchar();}return w; } //inline int gcd(int x,int y){ // int t; // while(y){ // t=x%y; // x=y;y=t; // } // return x; //} inline int gcd(int a,int b) { return b==0?a:gcd(b,a%b); } inline void add(int x,int y,int w){tot++;e[tot].to=y;e[tot].next=head[x];e[tot].v=w;head[x]=tot; } inline void getroot(int x,int fa){size[x]=1;Maxsize[x]=0;for(int i=head[x];i;i=e[i].next){if(!vis[e[i].to]&&e[i].to!=fa){getroot(e[i].to,x);size[x]+=size[e[i].to];Maxsize[x]=max(Maxsize[x],size[e[i].to]);}}Maxsize[x]=max(Maxsize[x],temp-size[x]);if(Maxsize[x]<Maxsize[root]) root=x; } inline void getdeep(int x,int fa){ans[Distance[x]]++;for(int i=head[x];i;i=e[i].next){if(!vis[e[i].to]&&e[i].to!=fa){Distance[e[i].to]=(Distance[x]+e[i].v)%3;getdeep(e[i].to,x);}} } inline int answer(int x,int w){memset(ans,0,sizeof(ans));Distance[x]=w;getdeep(x,0);return ans[0]*ans[0]+ans[1]*ans[2]*2; } inline void solve(int x){an+=answer(x,0);vis[x]=1;for(int i=head[x];i;i=e[i].next){if(!vis[e[i].to]){an-=answer(e[i].to,e[i].v);temp=size[e[i].to];root=0;getroot(e[i].to,0);solve(root);}} } int main(){int n,i,x,y,v;n=read();for(i=1;i<n;i++){x=read();y=read();v=read();add(x,y,v%3);add(y,x,v%3);}Maxsize[0]=n+1;temp=n;getroot(1,0);solve(root);int l=gcd(n*n,an);printf("%d/%d",an/l,n*n/l);return 0; }
聪聪可可
转载于:https://www.cnblogs.com/Fish-/p/8277010.html
BZOJ 2152 Luogu 2634——聪聪可可相关推荐
- BZOJ 2152 「国家集训队」聪聪可可(点分治)【BZOJ计划】
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/2152 是 hydro 的 BZOJ ...
- BZOJ 2152:聪聪可可
BZOJ 2152:聪聪可可 题目 Time Limit: 3 Sec Memory Limit: 259 MB Description 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩 ...
- Bzoj 2152: 聪聪可可(点分治)
2152: 聪聪可可 Time Limit: 3 Sec Memory Limit: 259 MB Submit: 2683 Solved: 1420 [Submit][Status][Discuss ...
- bzoj 2152: 聪聪可可(树的点分治)
2152: 聪聪可可 Time Limit: 3 Sec Memory Limit: 259 MB Submit: 3741 Solved: 1925 [Submit][Status][Discu ...
- [BZOJ 2152]聪聪可可(点分治)
Description 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电脑)--遇到这种问题,一般情况下石头剪刀布就好 ...
- BZOJ 2152: 聪聪可可|点分治
传送门 Description 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电脑)--遇到这种问题,一般情况下石头剪 ...
- luogu P2634 [国家集训队]聪聪可可 点分治
luogu P2634 [国家集训队]聪聪可可 点分治 没啥难度,只需将路径取模,开桶,统计 d[0],d[1],d[2] 的值即可. ans = d[1]*d[2]*d[2]+d[0]*d[0] C ...
- 【BZOJ 1415】 1415: [Noi2005]聪聪和可可 (bfs+记忆化搜索+期望)
1415: [Noi2005]聪聪和可可 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1640 Solved: 962 Description ...
- 2152: 聪聪可可
Description 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电脑)--遇到这种问题,一般情况下石头剪刀布就好 ...
最新文章
- PyTorch 笔记(11)— Tensor内部存储结构(头信息区 Tensor,存储区 Storage)
- id: cannot find name for user ID xxx处理办法
- ORA-12518 TNS:监听程序无法分发客户机连接 解决办法
- win7 java闪退_win7 sdk manager 闪退
- 阿里算法工程师公开机器学习路线,你的路走对了吗?
- LinuX 硬盘分区细节详谈 【 整理至 LinuxSir BY FreeXploiT 】
- 蒙特卡罗方法 python 实现2
- 软件测试:APP测试点
- android 基站信息说明,安卓android手机查看基站信息
- 基于LM2596开关稳压电源控制设计(毕业设计整套资料)
- 设置共享后其他计算机无法访问,Win7局域网共享设置疑难大全(无法访问,没有访问权限,看不到共享电脑)...
- 【转】Linux下进程隐藏的常见手法及侦测手段
- win10开始菜单卡住没反应,其他都没问题 看视频也没问题。
- Groovy脚本基础全攻略
- android 自定义图片裁剪,Android图片裁剪工具封装
- 用微信开发者工具--打开微信小程序weui组件示例
- catalan 数。。
- 58同城|TEG技术工程平台群-闪电面试专场内推(12月7日)
- 数学基础:角度,弧度,三角函数
- Keras深度学习实战(26)——文档向量详解
热门文章
- 【数据库系统设计】关系数据库简介(关系模型、关系模式、关系完整性、关系代数)
- 【jQuery笔记Part1】01-jQuery简介集成
- Windows域控设置 AD域策略屏蔽端口 禁用端口【全域策略生效】
- csv导入sqlite(python)
- 那些拆中台的CTO,70%被裁了
- 财务报表开发实例分析:几个通用维度介绍与关键点
- 帆软报表重要Activator之DesignerInitActivator之一
- 一个好用的变换类TransformManager
- 关于生活的计算机试题,国家电网考试计算机类试题三
- html绘制城堡,HTML5动画 - 山谷城堡