news 2026/3/9 17:27:17

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
打卡信奥刷题(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考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/4 0:32:44

基于Sonic的数字人生成方案,助力短视频创作降本增效

基于Sonic的数字人生成方案&#xff0c;助力短视频创作降本增效 在短视频内容爆发式增长的今天&#xff0c;创作者面临的不仅是创意压力&#xff0c;更是效率与成本的双重挑战。一条高质量带货视频&#xff0c;过去可能需要编导、摄像、演员、剪辑师协同数小时才能完成&#xf…

作者头像 李华
网站建设 2026/3/4 8:39:43

【智能体】SKILL.md 的作用是什么?

SKILL.md在 Agent Skills 系统中是每个技能&#xff08;Skill&#xff09;的核心定义文件。 Agent Skills 是 Anthropic&#xff08;Claude 的开发公司&#xff09;推出的一个开放标准&#xff0c;用于给 AI 代理&#xff08;agents&#xff09;提供模块化的专长能力。它已被 G…

作者头像 李华
网站建设 2026/3/5 23:39:52

Sonic数字人项目立项书模板分享:申请经费参考

Sonic数字人项目技术解析与应用实践 在短视频、虚拟主播和智能客服需求爆发的今天&#xff0c;如何快速生成“会说话的数字人”视频&#xff0c;已成为AIGC领域最现实的技术挑战之一。传统方案依赖3D建模、骨骼绑定和动作捕捉&#xff0c;不仅成本高昂&#xff0c;且制作周期动…

作者头像 李华
网站建设 2026/3/10 2:22:12

iertutil.dll文件损坏丢失找不到 打不开程序 免费下载方法

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/3/7 3:02:13

C#能否调用Sonic DLL?跨语言集成的技术路径分析

C#能否调用Sonic DLL&#xff1f;跨语言集成的技术路径分析 在数字人技术快速普及的今天&#xff0c;越来越多的企业希望将AI驱动的虚拟形象能力嵌入现有系统。比如&#xff0c;一家使用C#开发Windows桌面应用的教育科技公司&#xff0c;想要为教师用户提供“上传照片音频→自动…

作者头像 李华
网站建设 2026/3/4 12:10:39

俄语爆破音处理如何?唇齿动作略有延迟

Sonic模型在俄语爆破音处理中的表现与优化策略 在虚拟数字人技术迅速普及的今天&#xff0c;口型同步&#xff08;Lip Sync&#xff09;的质量直接决定了观众对“真实感”的第一印象。尤其是在处理如俄语这类拥有丰富辅音系统、频繁出现爆破音的语言时&#xff0c;一个微小的唇…

作者头像 李华