首页 > 其他分享 >E-小红的序列乘积2.0(牛客周赛55)

E-小红的序列乘积2.0(牛客周赛55)

时间:2024-08-12 23:24:08浏览次数:14  
标签:周赛 牛客 55 res ll int base mp 个位数

E-小红的序列乘积2.0

题意:给定数组a,求子序列前缀积个位数为6的数字个数。

分析:只要算个位数是否为6,所以把a数组都换成个位数上的数就好了。用a数组与1到9的数字进行组合,用组合数学算出组合数。

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod=1e9+7;
ll qpow2(ll a,ll b,ll p){
    ll base=a;
    ll res=1;
    while(b){
            if(b&1)res=(res*base)%p;
            base=(base*base)%p;
            b>>=1;
    }
    return res;
}
​
int main(){
    int n;cin>>n;
    ll a[n+10];ll ans=0;
    ll mp[100],mp2[100];
    for(int i=1;i<=n;i++){
        cin>>a[i];
        a[i]%=10;
    }
    memset(mp,0,sizeof(mp));
    mp[1]=1;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=9;j++)mp2[j]=0;
        for(int j=1;j<=9;j++){
            int c=a[i]*j%10;
            if(c==6){
                ans+=mp[j]*qpow2(2,n-i,mod);
                cout<<i<<" "<<mp[j]<<endl;
                ans%=mod;
            }
            mp2[c]+=mp[j];mp2[c]%=mod;
        }
        for(int j=1;j<=9;j++){
            mp[j]+=mp2[j];mp[j]%=mod;
        }
    }
    cout<<ans<<endl;
    return 0;
}

标签:周赛,牛客,55,res,ll,int,base,mp,个位数
From: https://blog.csdn.net/m0_74310050/article/details/141114684

相关文章

  • 牛客JS题(三十八)双向绑定
    注释很详细,直接上代码涉及知识点:浅度监听作用域链Object.defineProperty题干:我的答案<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/></head><body><style>ul{list-sty......
  • 代码随想录day27 || 455 分饼干,376 摆动序列,53 最大子序列和
    分饼干funcfindContentChildren(g[]int,s[]int)int{ //第一思路,双指针暴力解法 varcountint varused2=make([]bool,len(s)) g=quicksort(g) s=quicksort(s) for_,child:=rangeg{ foridx,cookie:=ranges{ if!used2[idx]&&cookie>=......
  • 洛谷 P4556 雨天的尾巴之线段树合并模板
    洛谷P4556题解传送锚点摸鱼环节[Vani有约会]雨天的尾巴/【模板】线段树合并题目背景深绘里一直很讨厌雨天。灼热的天气穿透了前半个夏天,后来一场大雨和随之而来的洪水,浇灭了一切。虽然深绘里家乡的小村落对洪水有着顽固的抵抗力,但也倒了几座老房子,几棵老树被连根拔起,以......
  • Leetcode 热题100 - 155 最小栈
    Leetcode热题100-155最小栈1.题目描述2.解题思路3.代码实现(方法二)4.c++知识点用法1.题目描述155最小栈2.解题思路方法一:创建一个辅助栈min_stk用以存储当前元素相对应的栈中最小元素值;方式二:类似于方法一,使用pair<int,int>同时存储当前元素与其对应......
  • 2024牛客暑期多校训练营7 DK
    来源:2024牛客暑期多校训练营7做题时间:2024_08_06DIntervalSelection标签:线段树、[[扫描线]]、枚举题意区间的每个数字的数量是\(k\)的定义为好区间比如\(k=2\),数组为\({1,1,2,3,2,3,1}\)对于\([3,6]\)和\([1,6]\)等都符合要求(下标从1开始)求所有好区间的数量,比如案......
  • JSP古田会址旅游网站t7554(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统功能:用户,景点类型,旅游景点,古田故事,古田人文,自驾游线路,酒店信息技术要求:    开发语言:JSP前端使用:HTML5,CSS,JSP动态网页技术后端使用SpringBoo......
  • 2024牛客多校1
    H签到题,对于每场比赛排名在lzr010506前面且同时在两场比赛出现的的队伍,让他们全部去另一场,看看哪种情况lzr010506的排名更高即可。#include<bits/stdc++.h>#defineendl'\n'usingnamespacestd;constintmaxn=1e5+3;structteam{stringname;in......
  • CF1155C 题解
    题目传送门题目大意:给定一个长度为\(n\)的单增序列\(a\)和一个长度为\(m\)的序列\(b\),询问是否存在一个正整数\(y\)使得\(a_1\equiva_2\equiv\cdots\equiva_n\equivy\space(\bmod\spacep)\),且\(p\)在序列\(b\)中出现过。思路:将条件转化一下,得:是否存在一个......
  • 2024牛客暑期多校训练营2
    A.FloorTiles恶心构造,本来构造的方法没有错,因为不小心修改了第一块砖的位置,导致一直过不去,没注意,倒了思路:先把最多曲线的构造出来,就是类似于BAB......
  • 2024牛客暑期多校训练营8 I Haitang and Ranking 题解
    乱搞看到\(n=1e5\),时限3s,存在修改操作,很自然的想到根号分治。考虑按照时间分治。对每\(B\)个交换统一处理,\(B\)个交换最多有\(2B\)个元素改变状态,剩下都不变。那么只要对这\(2B\)元素内,暴力枚举,剩下的元素构建数据结构实现二维数点,平面内区间最值。因为\(a,b\)是不......