同个人网站 https://www.serendipper-x.cn/,欢迎访问 !

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 524288K,其他语言1048576K
64bit IO Format: %lld
链接:https://ac.nowcoder.com/acm/problem/21302
来源:牛客网

题目描述

给你一个长度为50的数字串,问你有多少个子序列构成的数字可以被3整除
答案对1e9+7取模

输入描述:

输入一个字符串,由数字构成,长度小于等于50

输出描述:

输出一个整数

示例1
输入
132
输出
3示例2
输入
9
输出
1示例3
输入
333
输出
7示例4
输入
123456
输出
23示例5
输入
00
输出
3备注:
n为长度
子任务1: n <= 5
子任务2: n <= 20
子任务3: 无限制

动态转移方程为:

dp[i][j] += (dp[i-1][j] + dp[i-1][(j+3-m)%3]) % mod

s = input()mod = 1000000007
dp = [[0] * 3 for _ in range (51)]
for i in range (1, len(s)+1):m = int(s[i-1])%3dp[i][m] = 1for j in range (3):dp[i][j] += (dp[i-1][j] + dp[i-1][(j+3-m)%3]) % mod
print(dp[len(s)][0])

牛客 21302 被3整除的子序列 (动态规划、Python)相关推荐

  1. 牛客题霸 [最长公共子序列] C++题解/答案

    牛客题霸 [最长公共子序列] C++题解/答案 题目描述 给定两个字符串str1和str2,输出连个字符串的最长公共子序列.如过最长公共子序列为空,则输出-1. 题解: dp经典问题 代码: clas ...

  2. 牛客题霸 [ 最长递增子序列] C++题解/答案

    牛客题霸 [ 最长递增子序列] C++题解/答案 题目描述 给定数组arr,设长度为n,输出arr的最长递增子序列.(如果有多个答案,请输出其中字典序最小的) 题意: 直接暴力会超时 应该用二分+贪心 ...

  3. Java里面jvr,寻找下一个结点 牛客网 程序员面试金典 C++ java Python

    寻找下一个结点 牛客网 程序员面试金典 C++ java Python 题目描述 请设计一个算法,寻找二叉树中指定结点的下一个结点(即中序遍历的后继). 给定树的根结点指针TreeNode* root ...

  4. 牛客网赛码网输入输出总结(python版)

    1. 单行输入: n, m = map(int, sys.stdin.readline().strip().split()) 对该行中所有元素取整型后赋给等式左边若干参数 2. 多行输入: 先获取第一 ...

  5. 【python】牛客竞赛语法入门班顺序结构习题 python解法

    题目链接:牛客竞赛语法入门班顺序结构习题_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ 目录 1001 这是一道签到题 1002 排列式 1003 小飞机 1004 学 ...

  6. 【牛客 - 21302】被3整除的子序列(线性dp)

    题干: 给你一个长度为50的数字串,问你有多少个子序列构成的数字可以被3整除 答案对1e9+7取模 输入描述: 输入一个字符串,由数字构成,长度小于等于50 输出描述: 输出一个整数 示例1 输入 复 ...

  7. 【牛客 - 317F】小a的子序列(线性dp,tricks)

    题干: 小a有一个长度为nn的序列,但是他忘了这个序列的样子,他只记得序列中的数大小在[1,V][1,V]内 你可以任意选择一些位置,并给它们赋值来组成一段子序列,需要满足序列中的数严格递增 一段子序 ...

  8. 牛客网IT校招编程题-逛公园-Python

    题目描述: 又是晴朗的一天,牛牛的小伙伴们都跑来找牛牛去公园玩.但是牛牛想呆在家里看E3展,不想出去逛公园,可是牛牛又不想鸽掉他的小伙伴们,于是找来了公园的地图,发现公园是由一个边长为n的正方形构成的 ...

  9. 最长公共子序列-动态规划-python

    题目描述 给定一个长度为 N 数组 a 和一个长度为 M 的数组 b. 请你求出它们的最长公共子序列长度为多少. 输入描述 输入第一行包含两个整数 N,M,分别表示数组 a 和 b 的长度. 第二行包 ...

最新文章

  1. python汉字编码错误_python解决汉字编码问题:Unicode Decode Error
  2. 计算两个字符串之间是否包含的简单方法
  3. .net 考试系统人一多就断开了_2020年银行从业资格考试成绩查询入口已开放
  4. 免费音乐接口,当时写音乐播放器没资源,今天特意用nodejs写了一个,并布署到了cloudfo......
  5. spring批处理mysql语句_Spring框架——批处理(batch)和事务(Transaction)
  6. mysql unix_timestamp 格式化_FROM_UNIXTIME 格式化MYSQL时间戳函数_MySQL
  7. 微信公众号——永久素材的上传
  8. matlab randomsample,randperm和randsample函数用法对比
  9. MongoDB(1)--简单介绍以及安装
  10. 拓端tecdat|R语言Gibbs抽样的贝叶斯简单线性回归仿真分析
  11. Atitit 如何利用先有索引项进行查询性能优化
  12. length与length()
  13. WCF技术剖析之九:服务代理不能得到及时关闭会有什么后果?
  14. java环境变量配置验证_怎么验证Java环境变量配置成功
  15. java学习顺序_Java学习心得及学习顺序
  16. Android 多语言对照表
  17. 字幕集合保存为srt文件
  18. log4j2配置定期清理日志文件
  19. 一键修改手机DNS的bat文件
  20. 平板时代即将到来,写在即将发布Win8 Surface平板和iPad Mini之际

热门文章

  1. 天池 在线编程 扫雷(BFS)
  2. LeetCode MySQL 1517. Find Users With Valid E-Mails(正则表达式)
  3. LeetCode 993. 二叉树的堂兄弟节点(层序遍历)
  4. LeetCode 40. 组合总和 II(排列组合 回溯)
  5. python源文件编码的含义_【原创】Python 源文件编码解读
  6. 映射表map(平衡二叉树实现)_手动实现Java集合容器之TreeMap(上)
  7. convert.todatetime指定日期格式_MATLAB的时间与日期
  8. 最右显示请求服务器不存在,修改合流任务_实时音视频 RTC_服务端API参考_合流任务管理_华为云...
  9. ACL’22 | 为大模型定制的数据增强方法FlipDA,屠榜六大NLU 数据集!
  10. one-hot(独热)、bag of word(词袋)、word-Embedding(词嵌入)浅析