news 2026/8/8 8:33:16

打卡信奥刷题(3495)用C++实现信奥题 P10792 『SpOI - R1』笑起来最帅的小孩

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
打卡信奥刷题(3495)用C++实现信奥题 P10792 『SpOI - R1』笑起来最帅的小孩

P10792 『SpOI - R1』笑起来最帅的小孩

题目描述

本题包含多组数据。

有一个数字序列a aa,长度为n nn。序列中每一项均为0 009 99的数字。

另有一个空数字序列b bbb bb中会出现一个光标(你可以理解为能够出现在数字之间,或整个数字序列之前,或整个数字序列之后的细线),此时光标前后均没有数字。

现在向b bb中依次输入数字序列a aa。每输入一个数字,数字立即出现在光标之后。

接下来光标立即随机地移动到任意一个数字之前或所有数字之后。随机是均匀的。换句话说,光标移动到所有可移动到的位置的概率是均等的。

现在告诉你数字序列a aa。你需要输出的是,最终得到的b bb直接转为十进制后的大小(无视前导零)的期望,对质数2007072007 20070720072007072007取模。

由于a aa可能很长,所以本题采用压缩输入。

具体来说,最开始a aa是空的数字序列,输入会给你一个k kk长的二元组数组,其中第i ii项为( x i , l i ) (x_i,l_i)(xi,li),表示数字x i x_ixi连续出现l i l_ili次接在之前的a aa之后。你可以用此方法解压缩真正的a aa,再解决问题。


在本题,你可以对期望的理解:对于一个变量可能的结果X XX,若其权值为v X v_XvX,得到该结果的概率为p X p_XpX,则对于结果集S SS,变量的期望E = ∑ X ∈ S p X v X E=\sum\limits_{X\in S}p_Xv_XE=XSpXvX

如果你不知道如何对有理数取模:请查看此题。

输入格式

第一行一个整数T TT,表示数据组数。

对于每组数据:

一行一个整数k kk,表示a aa压缩后得到的二元组数组包含多少项。

接下来共k kk行,每行两个整数x i , l i x_i,l_ixi,li,表示在上一项所得a aa序列的基础上,在末尾增加l i l_ili个数字x i x_ixi得到新的a aa序列。你可以用这种方式解压缩真正的a aa序列。

输出格式

对于每组数据,输出一行一个整数,表示在光标每次都随机移动的情况下,可能得到的b bb转化为十进制后的大小(无视前导零)的期望,对质数2007072007 20070720072007072007取模的值。

输入输出样例 #1

输入 #1

1 2 4 1 2 1

输出 #1

33

输入输出样例 #2

输入 #2

1 3 1 2 3 1 7 2

输出 #2

1204285426

说明/提示

数据范围

本题开启子任务捆绑和子任务依赖。

n = ∑ i = 1 k l i n=\sum\limits_{i=1}^k l_in=i=1kli

对于100 % 100\%100%的数据,保证1 ≤ T ≤ 15 1\leq T\leq 151T151 ≤ n ≤ 2 × 10 9 1\leq n\leq 2\times 10^91n2×1091 ≤ k ≤ 10 5 1\leq k\leq 10^51k105,且对于任意i ii均有0 ≤ a i ≤ 9 0\leq a_i\leq 90ai91 ≤ l i ≤ 2 × 10 9 1\leq l_i\leq 2\times 10^91li2×109

SubtaskT ≤ T\leqTn ≤ n\leqn特殊性质得分子任务依赖
115 15152 × 10 9 2\times 10^92×109A AA10 1010
215 1515100 10010015 1515
35 552000 2000200015 15152
45 5510 6 10^610615 15152,3
55 552 × 10 9 2\times 10^92×10945 45451,2,3,4

特殊性质A AA:保证在解压缩后的a aa中,任意一个数字都出现了最多一次。

C++实现

#include<iostream>usingnamespacestd;typedeflonglongll;constll mod=2007072007;constintK=1e5+7;intk;structnode{ll x,l;}a[K];llksm(ll x,ll y){ll ans=1;x%=mod;while(y){if(y&1)ans=ans*x%mod;x=x*x%mod;y>>=1;}returnans;}intmain(){intT;cin>>T;while(T--){cin>>k;ll part1=0,part2,part3;ll n=0;for(inti=1;i<=k;i++){cin>>a[i].x>>a[i].l;n+=a[i].l;part1=(part1+a[i].x*a[i].l%mod)%mod;}part2=((ksm(10,n)-1)%mod+mod)%mod*ksm(9,mod-2)%mod;part3=ksm(n,mod-2);cout<<((part1*part2)%mod*part3)%mod<<endl;}return0;}

后续

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

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

SSM+Vue家庭菜谱系统开发与毕业设计实践

1. 项目背景与核心需求 2026届计算机相关专业毕业设计选题"SSMVue家庭菜谱软件"是一个典型的Web应用开发项目&#xff0c;它结合了后端SSM框架和前端Vue.js技术栈。这类选题在当前高校计算机专业中非常普遍&#xff0c;因为它既涵盖了企业级开发的主流技术&#xff0…

作者头像 李华
网站建设 2026/8/8 8:31:52

【AI大模型】约束提示:给模型加边界条件的设计方法

【AI大模型】约束提示:给模型加边界条件的设计方法(含实操代码) 在AI大模型规模化落地应用中,绝大多数输出失控、内容冗余、答非所问、越界跑偏、合规违规的核心原因,并非模型能力不足,而是提示词无边界、任务无约束、输出无限制。大模型具备极强的泛化生成能力,在无明…

作者头像 李华
网站建设 2026/8/8 8:30:56

3分钟搞定戴尔G15散热控制:告别AWCC臃肿软件的终极方案

3分钟搞定戴尔G15散热控制&#xff1a;告别AWCC臃肿软件的终极方案 【免费下载链接】tcc-g15 Thermal Control Center for Dell G15 - open source alternative to AWCC 项目地址: https://gitcode.com/gh_mirrors/tc/tcc-g15 还在为戴尔G15笔记本散热问题头疼吗&#x…

作者头像 李华
网站建设 2026/8/8 8:29:58

深入解析CAN通信矩阵:从信号属性到工程实践

1. 项目概述&#xff1a;从“黑盒”到“白盒”的CAN通信认知跃迁在汽车电子、工业控制这些领域里混久了&#xff0c;你肯定对CAN总线不陌生。它就像设备之间的“神经系统”&#xff0c;负责传递各种控制指令和状态信息。但很多工程师&#xff0c;尤其是刚入行的朋友&#xff0c…

作者头像 李华
网站建设 2026/8/8 8:29:18

Kimi LeetCode 3836. 恰好 K 个下标对的最大得分 TypeScript实现

以下是 LeetCode 3836. 恰好 K 个下标对的最大得分 的 TypeScript 实现。解题思路三维动态规划。定义 dp[i][j][k] 为&#xff1a;在 nums1 的前 i 个元素和 nums2 的前 j 个元素中&#xff0c;恰好选择 k 对下标所能获得的最大得分。状态转移有三种情况&#xff1a; 1. 跳过 n…

作者头像 李华
网站建设 2026/8/8 8:27:33

近视防控视角下 如何甄别护眼灯的真实护眼性能?

近视防控视角下 如何甄别护眼灯的真实护眼性能&#xff1f;我国儿童青少年近视防控始终是社会关注的民生议题&#xff0c;国家卫健委相关数据显示&#xff0c;全国儿童青少年总体近视率仍处于较高水平&#xff0c;小学阶段近视率攀升速度尤为值得关注。不少家长都有困惑&#x…

作者头像 李华