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

打卡信奥刷题(3291)用C++实现信奥题 P8971 『GROI-R1』 虹色的彼岸花

P8971 『GROI-R1』 虹色的彼岸花

题目背景

少年身着春季校服的深灰色外套与黑色短裤,外套内是白净的衬衫。

他的右手不知为何缠着绷带,右眼用头发挡得严严实实,扑面而来的是一种神秘感。

一瓣鲜红的彼岸花,在教室上空无人在意之处打旋。

玘的身世,总是一个谜题吧。

「所以你到底是什么人,又为什么要来这里!」

可是彼岸花显然不想让你知道这些。

题目描述

玘给了寒一棵编号为1∼n1\sim n1n的树,这棵树上每个点都有一个点权,同时有些边有边权,有些边没有边权。可是玘把每一个点的点权删除了。寒只知道点权都是整数,而且在lllrrr之间(包含端点)。而且,点权和边权有着下面的特殊关系:

  • 对于有边权的边,要求连接的两个点的点权和为边权

  • 对于没有边权的边无限制

玘问寒这棵树有多少种不同的点权填写方式。两种填写方式不同,当且仅当至少存在一个点的点权不同。可是寒不会做这个题。

寒请你解决这个问题。

输入格式

本题有多组测试数据。

第一行一个整数TTT,代表测试数据组数。

对于每一组测试数据:

第一行三个整数n,l,rn,l,rn,l,r,代表树上点的个数是nnn,点权的范围是[l,r][l,r][l,r]

接下来n−1n-1n1行,每行先输入一个整数opopopop=0op=0op=0表示这条边没有边权,op=1op=1op=1表示这条边有边权。

  • 如果op=0op=0op=0,再输入两个整数u,vu,vu,v,表示这条边连接u,vu,vu,v两个点。

  • 如果op=1op=1op=1,再输入三个整数u,v,wu,v,wu,v,w,表示有一条权值为www的边连接u,vu,vu,v两个点。

输出格式

对于每个测试点,输出一行一个整数,代表点权填写方式的个数。答案对109+710^9+7109+7取模。

输入输出样例 #1

输入 #1

2 6 0 4 1 1 2 2 1 2 3 4 1 3 4 2 0 2 5 1 4 6 3 6 -1 4 1 1 2 4 0 2 3 0 3 4 0 2 5 0 4 6

输出 #1

5 6480

说明/提示

样例解释

对于样例的第一组测试数据,可以得到下图:

555种填写方式分别为:

{0,2,2,0,0,3}{0,2,2,0,1,3}{0,2,2,0,2,3}{0,2,2,0,3,3}{0,2,2,0,4,3}\{0,2,2,0,0,3\}\\\{0,2,2,0,1,3\}\\\{0,2,2,0,2,3\}\\\{0,2,2,0,3,3\}\\\{0,2,2,0,4,3\}{0,2,2,0,0,3}{0,2,2,0,1,3}{0,2,2,0,2,3}{0,2,2,0,3,3}{0,2,2,0,4,3}

可以证明,不存在别的填写方式。

样例输入中,为了直观,添加了空行。实际数据中不存在多余空行。

数据范围

本题采用捆绑测试。

子任务编号数据范围特殊性质分值
Subtask1\text{Subtask1}Subtask11≤n≤101\le n\le 101n100≤l,r≤50\le l,r\le50l,r5151515
Subtask2\text{Subtask2}Subtask21≤n≤2×1051\le n\le 2\times 10^51n2×1050≤l,r≤50\le l,r\le50l,r5202020
Subtask3\text{Subtask3}Subtask31≤n≤101\le n\le 101n10−109≤l,r≤109-10^9\le l,r\le 10^9109l,r109151515
Subtask4\text{Subtask4}Subtask41≤n≤2×1051\le n\le 2\times10^51n2×105−109≤l,r≤109-10^9\le l,r\le 10^9109l,r109101010
Subtask5\text{Subtask5}Subtask51≤n≤2×1051\le n\le 2\times10^51n2×105−109≤l,r≤109-10^9\le l,r\le 10^9109l,r109404040

特殊性质:保证每条边都无边权。

对于100%100\%100%的数据,保证1≤T≤51\le T \le 51T51≤n≤2×1051\le n\le 2\times10^51n2×1051≤∑n≤1061\le \sum n\le 10^61n106−109≤l≤r≤109-10^9\le l\le r \le 10^9109lr109−109≤w≤109-10^9\le w\le 10^9109w109op∈{0,1}op\in\{0,1\}op{0,1}

C++实现

#include<bits/stdc++.h>usingnamespacestd;constintN=2e5+5,mod=1e9+7;structnode{intto,next,w;}e[N<<1];longlongl,r;longlongn,t,cnt,ans;longlongh[N];longlongll,rr,x,y,op,w;boolvis[N];voidLink(intx,inty,intw){e[++cnt].to=y;e[cnt].next=h[x];e[cnt].w=w;h[x]=cnt;}voiddfs(intx,intk,intsign){vis[x]=true;longlongnl=l-k,nr=r-k;//解不等式if(sign==-1)swap(nl,nr),nl=-nl,nr=-nr;ll=max(ll,nl),rr=min(rr,nr);//更新左极值、右极值for(inti=h[x];i;i=e[i].next){if(!vis[e[i].to])dfs(e[i].to,e[i].w-k,-sign);//计算k和sign}}intmain(){cin>>t;while(t--){cin>>n>>l>>r;memset(vis,false,sizeof(vis));//多测清空memset(e,0,sizeof(e));memset(h,0,sizeof(h));cnt=0;ans=1;for(inti=1;i<=n-1;i++){cin>>op>>x>>y;if(op==1)cin>>w;elsecontinue;//忽略无边权的边Link(x,y,w);Link(y,x,w);}for(inti=1;i<=n;i++){ll=l,rr=r;if(!vis[i]){dfs(i,0,1);//从自己开始,自己的k是0,sign是1if(rr<ll)ans*=0;//更新范围elseans=ans*(rr-ll+1)%mod;}}cout<<ans<<endl;}return0;}

后续

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

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

相关文章:

  • 2026 年 5 月全球生成式引擎优化(GEO)服务商 TOP8 深度评测:AI 时代品牌认知战选型指南 - 资讯速览
  • 手把手教你用Python+Shapely解决实际问题:从判断快递配送范围到计算地块重叠面积
  • Ubuntu 20.04 + ROS Noetic 下,手把手解决 Cartographer 安装的‘libabsl-dev’报错
  • 2026研发效能工具全景评测:Gitee Insight在DevSecOps赛道的差异化分析
  • LabVIEW生产者消费者模式:队列实现多任务并发与数据流解耦
  • 别再死记硬背了!用NestJS + TypeORM实战‘用户-标签’系统,搞懂OneToMany和ManyToOne
  • 实测Orange Pi 5的RK3588S性能:CoreMark跑分17979,比你想的强多少?
  • 你的动漫图片为什么总是不够清晰?3个步骤让AI帮你还原4K级画质
  • SSM加速器优化:算子融合与内存感知设计
  • 技术路线深度对比:PPTAgent结构化生成与DeepPresenter环境驱动架构解析
  • 终极免费窗口强制调整工具:如何突破Windows尺寸限制
  • 降AIGC黑科技揭秘!AI率92%暴降至5%!实测10款降AI率网站!免费额度狂薅攻略
  • 保姆级教程:手把手教你将YOLOv8n模型导出为TensorRT/RKNN/Horizon可用的ONNX格式(附避坑点)
  • 《Keil MDK-Arm》编译报错:ARM Compiler Version 5缺失的深度排查与一站式修复指南
  • 用C语言结构体给51单片机游戏开发‘开挂’:以ST7735S驱动TFT屏贪吃蛇为例
  • 新手建站首选!阿贝云免费云服务真实使用体验
  • 小米手表表盘设计终极指南:5分钟掌握Mi-Create可视化工具
  • 从Fmask到U-Net:遥感云检测算法怎么选?一份给地信从业者的选型指南
  • i.MX9352嵌入式开发实战:硬件调试、系统移植与驱动问题排查指南
  • API契約測試 Pact 實戰指南
  • 从T-Pose到活灵活现:解决Mixamo动画导入Unity后材质丢失、骨骼错位的常见问题全攻略
  • SoC设计基石:组合逻辑与时序逻辑的协同与避坑指南
  • Spark:解决Minecraft服务器卡顿的终极性能诊断方案
  • 2026年如何选专业翻译公司?汇泉翻译破解精准效率痛点 - 资讯速览
  • 从氦氖到二氧化碳:聊聊那些“老当益壮”的工业气体激光器(选型避坑指南)
  • 门诊量提升55%:医疗建筑设计公司案例解析 - 资讯速览
  • 服务器UEFI启动项冗余排查与自动化清理实践
  • FPGA UDP通信实战:从数据回环到网络测速,用Tri Mode Ethernet MAC玩转千兆以太网
  • 好用的临沂GEO生成式引擎优化公司
  • 2026年PE瓶生产厂家:三大核心趋势解读 - 资讯速览