news 2026/2/21 0:37:57

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小红删数字【牛客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;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/20 2:49:18

04. 引用

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

作者头像 李华
网站建设 2026/2/19 21:38:41

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

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

作者头像 李华
网站建设 2026/2/20 17:03:24

YOLOv11魔改高效涨点 | 注意力篇 | DAT注意力:可变形自注意力,结合变形卷积之魂,动态捕捉全局核心特征,让 Transformer 拥有“动态猫眼”,精准锁定目标,彻底疯狂!!!

1、模块介绍 1.1 论文信息 论文标题:SimAM: A Simple, Parameter-Free Attention Module for Convolutional Neural Networks 中文标题:SimAM:一种简单、无参数的卷积神经网络注意力模块 论文链接 论文代码 核心创新点模块:可变形自注意力模块 (Deformable Self-Attention…

作者头像 李华
网站建设 2026/2/20 6:50:01

SSM272的交通事故档案管理系统

目录SSM272交通事故档案管理系统摘要开发技术源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;SSM272交通事故档案管理系统摘要 该系统基于SSM&#xff08;SpringSpringMVCMyBatis&#xff09;框架开发&#xff0c;旨在实现交通事故档案…

作者头像 李华
网站建设 2026/2/17 18:03:22

SSM296的汽车租赁系统vue

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

作者头像 李华