当前位置: 首页 > news >正文

打卡信奥刷题(2629)用C++实现信奥题 P2634 [国家集训队] 聪聪可可

P2634 [国家集训队] 聪聪可可

题目描述

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

他们的爸爸快被他们的争吵烦死了,所以他发明了一个新游戏:由爸爸在纸上画nnn个“点”,并用n−1n-1n1条“边”把这nnn个“点”恰好连通(其实这就是一棵树)。并且每条“边”上都有一个数。接下来由聪聪和可可分别随机选一个点(当然他们选点时是看不到这棵树的),如果两个点之间所有边上数的和加起来恰好是333的倍数,则判聪聪赢,否则可可赢。

聪聪非常爱思考问题,在每次游戏后都会仔细研究这棵树,希望知道对于这张图自己的获胜概率是多少。现请你帮忙求出这个值以验证聪聪的答案是否正确。

输入格式

输入的第111行包含111个正整数nnn。后面n−1n-1n1行,每行333个整数x,y,wx,y,wx,y,w,表示xxx号点和yyy号点之间有一条边,上面的数是www

输出格式

以即约分数形式输出这个概率(即a/b的形式,其中aaabbb必须互质。如果概率为111,输出1/1)。

输入输出样例 #1

输入 #1

5 1 2 1 1 3 2 1 4 1 2 5 3

输出 #1

13/25

说明/提示

【样例说明】

131313组点对分别是(1,1)(1,1)(1,1)(2,2)(2,2)(2,2)(2,3)(2,3)(2,3)(2,5)(2,5)(2,5)(3,2)(3,2)(3,2)(3,3)(3,3)(3,3)(3,4)(3,4)(3,4)(3,5)(3,5)(3,5)(4,3)(4,3)(4,3)(4,4)(4,4)(4,4)(5,2)(5,2)(5,2)(5,3)(5,3)(5,3)(5,5)(5,5)(5,5)

【数据规模】

对于100%100\%100%的数据,n≤2×104n\leq 2 \times 10^4n2×104

C++实现

#include<bits/stdc++.h>usingnamespacestd;inlineintread(){ints=0,f=1;charch=getchar();while(!isdigit(ch))f=(ch=='-'?-1:1),ch=getchar();while(isdigit(ch))s=(s<<1)+(s<<3)+(ch&15),ch=getchar();returns*f;}intn,f[20005][3],u,v,w,ans,m;vector<int>nxt[20005],val[20005];inlinevoiddfs(intnow,intfa){f[now][0]=1;vector<int>::iterator iv=val[now].begin();for(vector<int>::iterator it=nxt[now].begin();it!=nxt[now].end();++it){if((*it)==fa){++iv;continue;}dfs((*it),now);for(inti=0;i<3;++i)ans+=f[(*it)][i]*f[now][(3-(((i+(*iv))%3+3)%3))%3]*2;for(inti=0;i<3;++i)f[now][((i+(*iv))%3+3)%3]+=f[(*it)][i];++iv;}}inlineintgcd(inta,intb){returnb==0?a:gcd(b,a%b);}intmain(){n=read();for(inti=1;i<n;++i){u=read();v=read();w=read();nxt[u].push_back(v);val[u].push_back(w);nxt[v].push_back(u);val[v].push_back(w);}ans=n;dfs(1,-1);m=n*n;printf("%d/%d",ans/gcd(ans,m),m/gcd(ans,m));return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

http://www.jsqmd.com/news/182955/

相关文章:

  • 力扣1179-重新格式化部门表
  • Spring AI 集成国内大模型实战:千问/豆包(含多模态)+ Spring Boot 4.0.1 全攻略
  • Sonic数字人可用于广告投放?案例分析ROI提升效果
  • 任务管理|基于java + vue任务管理系统(源码+数据库+文档)
  • 基于Sonic的数字人生成方案,助力短视频创作降本增效
  • 当AI开始懂你的学术焦虑:PaperXie毕业论文功能,不是代写,是“思维协作者
  • Sonic社区治理规则:维护健康生态人人有责
  • 打卡信奥刷题(2630)用C++实现信奥题 P2638 安全系统
  • 全网最全9个AI论文写作软件,MBA毕业论文必备!
  • 面试必杀:对比 LangChain 与 AutoGPT/BabyAGI 的本质差异——为什么工业界更倾向于‘可控图(Graph)’?
  • Sonic能否生成儿童/老人面孔?年龄适应性实测报告
  • iertutil.dll文件损坏丢失找不到 打不开程序 免费下载方法
  • DBA手记|报账租赁系统Oracle迁移卡壳?金仓数据库72小时实现“零感知”割接
  • Sonic数字人眨眼机制是预设还是音频驱动?揭秘细节
  • Sonic数字人背景替换技巧:结合绿幕抠像提升真实感
  • 临终关怀陪伴?Sonic提供安宁疗护话语
  • 全网口碑好的中石化加油卡回收平台推荐 - 京顺回收
  • ifmon.dll文件损坏丢失找不到 打不开程序 免费下载方法
  • Sonic数字人适配直播场景?超低延迟生成不是梦
  • C#能否调用Sonic DLL?跨语言集成的技术路径分析
  • Git commit规范提交Sonic项目代码,团队协作更高效
  • 深入解析:华为手机USB连接WIN11--ew_usbccgpfilter.sys驱动无法加载
  • 出租车管理|基于java+ vue出租车管理系统(源码+数据库+文档)
  • Typora官网推荐写作工具,撰写Sonic技术文档更流畅
  • 力扣hot100:最小栈的实现
  • 无需3D建模!使用Sonic数字人模型+静态图+音频快速生成说话视频
  • Three.js与Sonic结合?构建3D数字人交互应用新思路
  • 脑机接口控制Sonic数字人?远期设想
  • Sonic数字人眼神跟随功能?注视点模拟实现方式
  • Spring-boot读书笔记一Map-Filter-Reduce