牛客周赛ROUND1 D

游游的9的倍数

https://ac.nowcoder.com/acm/contest/60245/D

一般来说,要求符合条件的子序列的数量,而且子序列是不连续的(虽然子序***实都是不连续的)都可以考虑dp来做,一般的思路就是考虑从0~k号位置的子序列个数与0~k-1号位置的子序列个数之间的关系,找到状态转移方程

这题要找的是9倍,一般来说,如果0~k位子序列的和是9的倍数,第k位我们直接设为6,那么显然0~k-1位的余数为3的方案数就是0~k位选择了6的情况下和是9的倍数的方案数,这里就可以得到dp数组的第二个维度就是模9的余数

最后我们完善一下状态转移方程,上面是选了6,还可以不选6,0~k-1位余数为0的方案数直接加过来,还有一种情况,只选第k位的数,6的话就是加到dp[k][6]中

这样就能有一个完整的状态转移方程,从0遍历到len即可

#include<iostream>
#include<cstring>
const int M = 1000000007;
const int N = 200005;
using namespace std;
string s;
int ans;
long long a[N],dp[N][10];
int main()
{
    cin >> s;
    int len = s.length();
    for(int i = 0 ; i < len ; i++)
    {
        int k =  s[i] - '0';
        a[i+1] = k;
      dp[i+1][k%9] ++;//0和9属于同一种情况
       
    }
    int n =  len;
   // dp[0][0] =1;不需要这个,因为初始状态就是0没有方案
    for(int i = 1;  i <= n ; i++)
    {
      
        for(int j =  0; j <= 8 ; j++)
        {
            //cout<<dp[1][1]<<endl;
            dp[i][(j+a[i])%9] = (dp[i][(j+a[i])%9] + dp[i-1][j]+dp[i-1][(j+a[i])%9])%M;
          
           // cout<<i<<" "<<(j+a[i])%9<<" "<<dp[i][(j+a[i])%9]<<endl;
        }
    }
    cout << dp[n][0]%M << endl;
    return 0;
}


全部评论

相关推荐

面试官全程关摄像头1.自我介绍一下2.React和Vue哪个更熟悉一点3.你在之前那段实习经历中有没有什么技术性的突破(我只是实习了44天工作28天,我把我能说的都说了)4.你封装的哪个表单组件支不支持动态传值5.自己在实习阶段Vue3项目封装过hook吗6.hook有什么作用7.Vue2和Vue3的响应式区别(我说一个是proxy是拦截所有的底层操作,Object.defineProperty本身就是一个底层操作,有些东西拦截不了,比如数组的一些操作还有等等,面试官就说实在要拦截能不能拦截????我心想肯定不行呀,他的底层机制就不允许吧)8.pinia和vuex的区别(这个回答不出来是我太久没用了)9.pinia和zustand的区别,怎么选(直接给我干懵了)(我说react能用pinia吗&nbsp;&nbsp;他说要用的话也可以)10.渲染一万条数据,怎么解决页面卡顿问题(我说分页、监听滚轮动态加载,纯数据展示好像还可以用canvas画)(估计是没说虚拟表单,感觉不满意)11.type和interface的区别12.ts的泛型有哪些作用(我就说了一个结构相同但是类型不同的时候可以用,比如请求响应的接口,每次的data不同,这里能用一个泛型,他问我还有什么)13.你项目用的是React,如果让你再写一遍你会选择什么14.pnpm、npm、yarn的区别15.dependencies和devdependencies的区别总而言之太久没面试了,上一段实习的面试js问了很多。结果这次js一点没问,网络方面也没考,表现得很一般,但是知道自己的问题了&nbsp;&nbsp;好好准备,等待明天的影石360和周四的腾讯了&nbsp;&nbsp;加油!!!
解zj:大三的第一段面试居然是这样的结局
查看15道真题和解析
点赞 评论 收藏
分享
程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
评论
14
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务