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

打卡信奥刷题(2995)用C++实现信奥题 P6146 [USACO20FEB] Help Yourself G

P6146 [USACO20FEB] Help Yourself G

题目描述

在一个数轴上有NNN条线段,第iii条线段覆盖了从lil_ilirir_iri的所有实数(包含lil_ilirir_iri)。

定义若干条线段的为一个包含了所有被至少一个线段覆盖的点的集合。

定义若干条线段的复杂度为这些线段的并形成的连通块的数目。

现在 Bessie 想要求出给定NNN条线段的所有子集(共有2N2^N2N个)的复杂度之和对109+710^9+7109+7取模的结果。

你也许猜到了,你需要帮 Bessie 解决这个问题。但不幸的是,你猜错了!在这道题中你就是 Bessie,而且没有人来帮助你。一切就靠你自己了!

输入格式

第一行一个整数NNN1≤N≤1051 \leq N \leq 10^51N105)。

接下来NNN行,每行两个整数li,ril_i,r_ili,ri,描述一条线段。保证1≤li<ri≤2N1 \leq l_i \lt r_i \leq 2N1li<ri2N,且任意两个端点都不在同一位置上。

输出格式

输出所求答案对109+710^9+7109+7取模的结果。

输入输出样例 #1

输入 #1

3 1 6 2 3 4 5

输出 #1

8

说明/提示

样例解释

所有非空子集的复杂度如下所示(显然空集的复杂度为零):
{[1,6]} ⟹ 1,{[2,3]} ⟹ 1,{[4,5]} ⟹ 1 \{[1,6]\} \implies 1, \{[2,3]\} \implies 1, \{[4,5]\} \implies 1{[1,6]}1,{[2,3]}1,{[4,5]}1

{[1,6],[2,3]} ⟹ 1,{[1,6],[4,5]} ⟹ 1,{[2,3],[4,5]} ⟹ 2 \{[1,6],[2,3]\} \implies 1, \{[1,6],[4,5]\} \implies 1, \{[2,3],[4,5]\} \implies 2{[1,6],[2,3]}1,{[1,6],[4,5]}1,{[2,3],[4,5]}2

{[1,6],[2,3],[4,5]} ⟹ 1 \{[1,6],[2,3],[4,5]\} \implies 1{[1,6],[2,3],[4,5]}1

故答案为1+1+1+1+1+2+1=81+1+1+1+1+2+1=81+1+1+1+1+2+1=8

子任务

  • 测试点2∼32 \sim 323满足N≤16N \leq 16N16
  • 测试点4∼74 \sim 747满足N≤1000N \leq 1000N1000
  • 测试点8∼128 \sim 12812没有特殊限制。

C++实现

#include<iostream>#include<algorithm>#defineMOD1000000007usingnamespacestd;structseg{intl,r;}a[100005];ints[200005];longlongf[100005];boolcmp(constseg&a,constseg&b){returna.l<b.l;}longlongfpow(longlongx,longlongy){longlongans=1;while(y){if(y&1)ans=ans*x%MOD;x=x*x%MOD;y>>=1;}returnans;}intmain(){intn;cin>>n;for(inti=1;i<=n;i++){cin>>a[i].l>>a[i].r;s[a[i].r]++;}sort(a+1,a+n+1,cmp);for(inti=1;i<=2*n;i++)s[i]+=s[i-1];for(inti=1;i<=n;i++)f[i]=(2*f[i-1]+fpow(2,s[a[i].l-1]))%MOD;cout<<f[n]<<endl;return0;}

后续

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

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

相关文章:

  • 亚马逊Nova AI挑战赛:加速生成式AI安全研究
  • OpenClaw云端体验方案:星图平台Qwen3-32B镜像快速验证AI助手
  • java非访问控制修饰符有哪些
  • RT-Thread SPI设备封装实战:如何正确关联rt_spi_send与自定义write函数
  • 2026年中国营销管理咨询公司推荐:中小企业营销增长口碑机构及服务模式深度对比 - 十大品牌推荐
  • 好用还专业!10个降AIGC软件全学科适配测评,帮你高效降AI率
  • uniapp键盘高度获取全攻略:解决安卓/iOS虚拟键导致的定位偏差
  • EM算法中的Q函数:从三硬币模型到实际应用的完整推导指南
  • 从零理解电动机工作原理:5个关键公式带你读懂电机铭牌参数
  • 从零到一:手把手教你用Android Studio离线打包UniApp安卓应用
  • Spring新手必看:IOC容器中Bean的5个关键操作(含containsBean使用场景)
  • 语音处理不求人:用ClearerVoice-Studio轻松搞定会议纪要音频
  • 2026年羊绒衫厂家推荐:品牌合作ODM定制从设计到生产一站式解决方案 - 十大品牌推荐
  • Java中如何使用Scanner读取输入数据
  • 国家中小学智慧教育平台电子课本下载终极指南:三步获取全科教材PDF
  • 黑盒 vs 白盒测试:5个真实项目案例教你如何选择测试方法
  • 告别抓包烦恼:用Postern+Charles搞定雷电模拟器里所有难抓的App流量
  • 2025-2026年羊绒衫厂家推荐:设计师品牌合作与柔性供应链口碑厂家分析 - 十大品牌推荐
  • 2026年中国营销管理咨询公司推荐:企业数字化转型期营销策略靠谱选择与口碑分析 - 十大品牌推荐
  • 保姆级教程:用ROS Noetic在Ubuntu 20.04上配置RealSense D455与机械臂手眼标定(附常见错误排查)
  • 从零到一:F28379D SCI串口通信实战配置与调试指南
  • Buck - Boost双向DC - DC电源学习资料大揭秘
  • Wireshark实战:3步搞定HTTPS证书抓包与导出(附浏览器备用方案)
  • 如何为Java初学者配置最简洁的开发环境
  • 中国营销管理咨询公司如何选不踩坑?2026年靠谱推荐聚焦业绩对赌与效果保障型服务 - 十大品牌推荐
  • 2026年羊绒衫厂家推荐:商务通勤与日常穿搭高质感靠谱供应商深度解析 - 十大品牌推荐
  • Java charAt 方法与字符编码变换实践
  • 2026年佛山地区软件开发年度排名,看看费用合理的有哪些 - 工业推荐榜
  • 2026年中国营销管理咨询公司推荐:长期服务口碑与客户增量价值深度对比 - 十大品牌推荐
  • 嵌入式C语言错误处理五大核心技术与工程实践