小红删数字【牛客tracker 每日一题】

小红删数字

时间限制:1秒 空间限制:256M

网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!

题目描述

给定一个长度为n nn的整数数组a 1 , a 2 , … , a n a_1,a_2,…,a_na1,a2,,an。需要进行恰好n − 1 n−1n1次操作,数组最终只剩下一个数字。

每次操作只能针对当前数组的最后两个数x , y x,yx,yx xx在前,y yy在后)执行下述二选一:

请统计,在所有可能的操作序列下,最终结果为0 , 1 , … , 9 0,1,…,90,1,,9的方案数各有多少。答案对10 9 + 7 10^9+7109+7取模。

输入描述:

第一行输入整数n ( 1 ≦ n ≦ 200 000 ) n (1≦n≦200 000)n(1n200 000)——数组长度。

第二行输入n nn个整数a 1 , … , a n ( 1 ≦ a i ≦ 10 9 ) a_1,…,a_n (1≦a_i≦10^9)a1,,an(1ai109)——初始数组。

输出描述:

输出一行10 1010个整数,第i ii个数表示最终结果为i ii的方案数(按m o d 10 9 + 7 \mod\ 10^9+7mod109+7)。

示例1

输入:

4 1 2 3 4

输出:

1 0 0 0 3 3 0 0 0 1

解题思路

本题采用动态规划结合状态压缩求解,核心是利用模运算特性(加减乘模10 1010仅与数字个位相关),先将数组所有元素取模10 1010简化计算;初始化d p dpdp数组(d p [ j ] dp[j]dp[j]表示当前得到结果j的方案数),若n = 1 n=1n=1则直接标记对应数字的方案数为1 11,否则先将d p [ a [ n − 1 ] ] dp[a[n-1]]dp[a[n1]]设为1 11(初始仅最后一个元素);逆序遍历数组前n − 1 n-1n1个元素,每次新建临时数组q qq,遍历0 − 9 0-909的状态,若d p [ j ] dp[j]dp[j]有方案数,分别计算当前元素与j jj的加、乘模10 1010结果r rr,将d p [ j ] dp[j]dp[j]累加到q [ r ] q[r]q[r](两种操作对应两种方案),更新d p dpdpq qq;最终d p dpdp数组即为0 − 9 0-909的方案数,答案对1 e 9 + 7 1e9+71e9+7取模。该方法时间复杂度O ( n × 10 ) O(n×10)O(n×10),状态数固定为10 1010,完美适配n ≤ 2 × 10 5 n≤2×10^5n2×105的规模,高效统计所有操作序列的结果分布。

代码内容

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefunsignedlonglongull;typedefpair<ll,ll>pii;constll p=1e9+7;constll N=1e5+10;intmain(){ll n;cin>>n;vector<ll>dp(10,0);if(n==1){ll x;cin>>x;if(x<10)dp[x]=1;}else{vector<ll>a(n);for(ll i=0;i<n;++i){cin>>a[i];a[i]%=10;}dp[a[n-1]]=1;for(ll i=n-2;i>=0;--i){vector<ll>q(10,0);for(ll j=0;j<10;++j){if(!dp[j])continue;ll r=(a[i]+j)%10;q[r]=(q[r]+dp[j])%p;r=(a[i]*j)%10;q[r]=(q[r]+dp[j])%p;}dp=move(q);}}for(ll e:dp)cout<<e<<' ';return0;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1190641.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么我辞去高薪开发工作?2026年反思

职业转折点&#xff1a;代码之外的觉醒 当我在2026年初递交辞呈时&#xff0c;部门主管看着远超行业均值的薪资单反复确认&#xff1a;"你确定要放弃年薪85万的开发岗&#xff0c;去做测试&#xff1f;" 这个看似悖论的选择背后&#xff0c;藏着对软件行业生态的深度…

情感分享:当代码成为我的第二语言——一位测试工程师的心路历程

在软件测试的世界里&#xff0c;我们常常被定义为“质量守门人”、“Bug猎人”&#xff0c;但鲜少有人关注我们与代码之间建立的那份深刻而复杂的情感连接。本文从一个资深软件测试工程师的视角出发&#xff0c;探讨代码如何超越工具属性&#xff0c;逐渐成为我们思维、表达甚至…

Node.js WebAssembly零拷贝图像处理

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 Node.js WebAssembly零拷贝图像处理&#xff1a;性能优化的革命性实践目录Node.js WebAssembly零拷贝图像处理&#xff1a;性能优…

别再裸连 OpenAI 了!我用这一招,帮公司节省百万成本,还搞定了 Gemini 3.0 和 Sora 2

摘要&#xff1a; 2026 年&#xff0c;AI 模型大爆发。 Gemini 3.0 Pro 突破上下文极限。 Sora 2 让视频生成进入电影级时代。 但对于开发者来说&#xff0c; 这简直是“API 地狱”。 本文将揭秘如何用 向量引擎&#xff08;Vector Engine&#xff09;。 这一行代码&#xff0c…

当AI刺破泡沫:算力瓶颈、能源战争与资本主义的“物理转向”

如果说过去二十年的科技主旋律是“软件吞噬世界”,那么在 Jordi Visser 看来,这一章节正在剧烈翻篇。我们正处于一个甚至连“资本主义”本身都在面临终结与重构的奇点时刻。 当大众还在惊叹于 ChatGPT 的生成能力时,华尔街的敏锐资金已经嗅到了风向的改变:AI 的竞争不再仅…

4.自注意机制__self-attention

自注意机制也是一个常见的network架构目前来说&#xff0c;输入都是一个向量&#xff0c;但是如果我们的输入变成了一排向量并且数目可以改变呢&#xff1f;这就是自注意机制解决的问题&#xff0c;现在model每次输入的sequence长度都不一样&#xff0c;如下图假设network现在要…

如何用ChatGPT提升开发效率?实战技巧大公开

ChatGPT在软件测试中的效率革命 随着AI技术的快速发展&#xff0c;ChatGPT正成为测试工程师的智能协作者。本文聚焦六大核心场景&#xff0c;结合可落地的操作指南&#xff0c;帮助测试人员将AI能力深度融入工作流。 一、智能测试用例生成&#xff1a;覆盖度提升300%的秘诀 1…

Python的后端框架 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Springboot集成支付宝

1、支付宝开放平台操作 我们需要做内网穿透&#xff0c;推荐使用 ngrok | API Gateway, Kubernetes Ingress, Webhook Gateway 详细接口参考API - 开放平台 进入 控制台首页 - 开放平台&#xff0c;开通沙箱环境 支付宝公钥&#xff0c;和你的秘钥点击查看就能看到 2、Spring…

救命神器!8款AI论文软件测评:本科生毕业论文全攻略

救命神器&#xff01;8款AI论文软件测评&#xff1a;本科生毕业论文全攻略 2026年AI论文工具测评&#xff1a;为何需要这份精准指南&#xff1f; 随着人工智能技术的不断进步&#xff0c;越来越多的本科生开始依赖AI论文软件来提升写作效率、优化内容结构。然而&#xff0c;面对…

开发者社区的力量:一位测试工程师的破茧之路

迷雾中的测试新人 2018年夏&#xff0c;当我手持手工测试用例文档站在网易大楼前时&#xff0c;从未想到三年后会在谷歌开发者大会分享《AI赋能的混沌工程实践》。作为日均执行200重复测试的"点点工程师"&#xff0c;我陷入职业困局&#xff1a;自动化脚本无从下手&…

【闲话】i and flow - L

i and flow 2026.1.20 部分为 AI 创作。其中所有人名均为虚构,均非有意设定。深夜十一点半,小 L 的房间还亮着屏幕的光。 他盯着「网络流 24 题」题单的进度条,23 / 24,最后一个红叉格外刺眼。第 24 题,《机器人路…

04. 引用

1.引用的基本定义与核心特性 2.引用的常见用法 3.引用 vs 指针1.引用的基本定义与核心特性 c中引用是变量的"别名", 就像一个人有本名和外号, 引用和原变量指向同一块内存地址, 操作引用就等同于操作原变量1).语法格式// 语法&#xff1a;类型& 引用名 原变量名…

系统V信号量

信号量 PV操作的名称来源于荷兰语,其中P代表“passeren”(通过),V代表“vrijgeven”(释放),是Dijkstra在设计信号量时所使用的术语。 P操作:表示“通过”,用于请求资源或进入临界区。当进程执行P操作时,信号…

我的十年:从测试员到AI创业者的真实旅程

启程于测试的基石 回首2016年&#xff0c;我作为一名初入行的软件测试员&#xff0c;坐在狭小的工位前&#xff0c;面对着一堆杂乱的测试用例和反复出现的bug报告。那时的测试世界&#xff0c;大多依赖手动执行&#xff1a;我们用Excel记录用例&#xff0c;用JIRA追踪缺陷&…

2026年靠谱的pp管,PP风机,pp风管厂家实力推荐名录 - 品牌鉴赏师

引言在当今环保产业蓬勃发展的时代,PP 管、PP 风机、PP 风管作为工业通风与环保系统中不可或缺的重要组件,其质量与性能直接关系到整个系统的稳定运行与环保效果。为了给广大用户提供一份可靠、客观的厂家实力推荐名…

SSM294的农产品进销存管理vue

目录SSM294农产品进销存管理系统的Vue实现摘要开发技术源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;SSM294农产品进销存管理系统的Vue实现摘要 该系统基于SSM&#xff08;SpringSpringMVCMyBatis&#xff09;后端框架与Vue.js前端技…

Java实现——链队列(泛型)

package Data_Structure;import java.util.NoSuchElementException; import java.util.Random;//链队列,附设头结点 public class LinkQueue<T> {//内部结点类private static class Node<T>{T data;Node&…

SSM296的汽车租赁系统vue

目录SSM296汽车租赁系统Vue摘要开发技术源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;SSM296汽车租赁系统Vue摘要 SSM296汽车租赁系统是基于SpringSpringMVCMyBatis&#xff08;SSM&#xff09;后端框架与Vue.js前端框架开发的现代化…

2026年上海二手房装修公司推荐,一站式服务与拎包入住交付能力横评 - 品牌鉴赏师

引言在上海二手房装修市场蓬勃发展的当下,消费者面临着众多装修公司的选择。为了给消费者提供全面、客观、公正的参考,我们依据相关的行业标准和市场数据,制定了这份上海二手房装修公司推荐榜单,并推出相应的选择指…