首页 > 其他分享 >牛客周赛 Round 1

牛客周赛 Round 1

时间:2024-06-02 19:56:17浏览次数:13  
标签:周赛 取模 10 int 牛客 游游 倍数 序列 Round

D 游游的9的倍数

题目描述

游游拿到了一个数字串,她想取一个该数字串的子序列(子序列在原串中可以不连续),使得该子序列是9的倍数。子序列可以包含前导零。
游游想知道,一共能取多少个合法的子序列?答案请对 \(10^9+7\) 取模。
我们定义,若两个子序列在原串中的位置不同,则认为它们不同。

输入描述

一个长度不超过200000的,仅由'0'~'9' 十种字符组成的字符串。

输出描述

子序列是9的倍数的数量。答案请对 \(10^9+7\) 取模。

解题思路

代码实现

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+100;
const int MOD=1e9+7;
int dp[N][10];
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    string s;
    cin>>s;
    int n=s.size();
    dp[0][0]=1;
    for(int i=0;i<n;i++){
        //不选这个数字
        for(int j=0;j<9;j++){
            dp[i+1][j]=dp[i][j];
        }
        //选这个数字
        for(int j=0;j<9;j++){
            int l=(j+s[i]-'0')%9;
            dp[i+1][l]+=dp[i][j]; 
            dp[i+1][l]%=MOD;
        }
    }
    cout<<dp[n][0]-1<<"\n";
}

标签:周赛,取模,10,int,牛客,游游,倍数,序列,Round
From: https://www.cnblogs.com/udiandianis/p/18227517

相关文章

  • 【leetcode】——第 400 场周赛,2题选手签个到
    第一题:100307.候诊室中的最少椅子数给你一个字符串 s,模拟每秒钟的事件 i:如果 s[i]=='E',表示有一位顾客进入候诊室并占用一把椅子。如果 s[i]=='L',表示有一位顾客离开候诊室,从而释放一把椅子。返回保证每位进入候诊室的顾客都能有椅子坐的 最少 椅子数,假设候诊室......
  • 牛客网刷题 | BC110 X形图案
    目前主要分为三个专栏,后续还会添加:    专栏如下:          C语言刷题解析    C语言系列文章    我的成长经历感谢阅读!初来乍到,如有错误请指出,感谢!描述KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组......
  • 牛客网刷题 | BC111 空心正方形图案
    目前主要分为三个专栏,后续还会添加:    专栏如下:          C语言刷题解析    C语言系列文章    我的成长经历感谢阅读!初来乍到,如有错误请指出,感谢!描述KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组......
  • 牛客网刷题 | BC107 箭形图案
    目前主要分为三个专栏,后续还会添加:    专栏如下:          C语言刷题解析    C语言系列文章    我的成长经历感谢阅读!初来乍到,如有错误请指出,感谢!描述KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组......
  • [leetcode 第 400 场周赛]题解
    第一题:classSolution{publicintminimumChairs(Strings){intx=0;intans=0;for(inti=0;i<s.length();i++){if(s.charAt(i)=='E'){x--;if(x<0){ans++;x=0;......
  • Codeforces Round 949 (Div. 2)
    目录写在前面ABCD写在最后写在前面比赛地址:https://codeforces.com/contest/1976妈的昨晚硬撑打了场edu上午实验下午爬山考试困困困妈的什么二进制场,C吃了个爽呃呃写得什么史山A二进制。一个显然的想法是选择区间\([l,r]\)中质因数次数之和最大的数。特别指出了限制......
  • Codeforces Round 949 (Div. 2)
    榜单#提交者=*ABCDEF1(2055)gutongxing20261388-1488900A#include<bits/stdc++.h>usingnamespacestd;intT,n,m;signedmain(){ scanf("%d",&T); while(T--){ scanf("%d%d",&n,&m); printf(&quo......
  • 123. 连续子数组最大和(卡码网周赛第十九期)
    123.连续子数组最大和(卡码网周赛第十九期(23年小红书提前批笔试真题))题目描述小红拿到了一个数组,她希望进行最多一次操作:将一个元素修改为x。小红想知道,最终的连续子数组最大和最大是多少?输入第一行输入一个正整数t,代表询问次数。对于每次询问,输入两行:第一行输入两......
  • Educational Codeforces Round 166 (Rated for Div. 2)
    目录写在前面ABCD写在最后写在前面比赛地址:https://codeforces.com/contest/1976满课,并且48小时之内只睡了8h。本来不想打的,但是手痒就上小号打了,然而唐唐唐掉大分呃呃A签到。感谢isdigit函数。///*By:Luckyblock*/#include<bits/stdc++.h>#defineLLlonglon......
  • 小猴编程周赛C++ | 金币
    学习C++从娃娃抓起!记录下在学而思小猴编程学习过程中的题目,记录每一个瞬间。侵权即删,谢谢支持!附上汇总贴:小猴编程C++|汇总-CSDN博客【题目描述】猴博士将金币作为工资,发给实验室的员工。员工入职后第一个月,收到一枚金币;之后两个月(第二个月和第三个月),每个月收到两枚金......