题目描述

  飞镖游戏虽好玩,但小老虎不忘考考同学的数学能力,为了好玩和不大难,小老虎想就用5个阿拉伯数吧。1、2、3、4、5数字组成一个N位的数(可以重复使用,也可以不用),有多少个数I,满足Imod3=1。

输入格式

  一行,为1个整数N。

输出格式

  一个数,即满足要求的数的个数mod100007。

输入样例

4

输出样例

208

数据规模

  对于30%的数据,N≤8;

  对于100%的数据,N≤1000000。

题解

  相信大家小学都学过。一个数$mod 3$等于这个数的各位数字之和$mod 3$。

  假设我们已经得到了一个$i$位的满足题目要求的数,这个时候,我们在$i+1$为添加$3$,一定还能满足题目要求。

  但是,如果不添加$3$呢?

  这里我们可以列举出来:

  (1)当第$i$位为$1$时,我们可以改成$[2,2],[2,5],[3,1],[3,4],[5,2],[5,5]$(这里$[x,y]$表示第$i$位改成$x$,第$i+1$位添上$y$,下同)。共$6$种情况。

  (2)当第$i$位为$2$时,我们可以改成$[1,1],[1,4],[3,2],[3,5],[4,1],[4,4]$。共$6$种情况。

  (3)当第$i$位为$3$时,我们可以改成$[1,2],[1,5],[2,1],[2,4],[4,2],[4,5],[5,1],[5,4]$。共$8$种情况。

  (4)当第$i$位为$4$时,我们可以改成$[2,2],[2,5],[3,1],[3,4],[5,2],[5,5]$。共$6$种情况。

  (5)当第$i$位为$5$时,我们可以改成$[1,1],[1,4],[3,2],[3,5],[4,1],[4,4]$。共$6$种情况。

  观察(1)(2)与(4)(5)其实是一样的,那我们将数量除以$2$即可。

  我们可以设$c[i][0]$为第$i$位为$3$的符合题目要求的数量,$c[i][1]$为第$i$位不为$3$的符合题目要求的数量。

  根据上面的方程可得,$c[i][0] = c[i - 1][0] + c[i - 1][1], c[i][1] = c[i - 1][0] \times 8 + c[i - 1][1] \times 3$。这里可以用滚动数组优化。

#include <iostream>
#define MOD 100007using namespace std;int n;
int prev[2], now[2]; //最高位为3或不为3的符合条件的情况int main()
{cin >> n;now[1] = 2;while(--n){prev[0] = now[0];prev[1] = now[1];now[0] = (prev[0] + prev[1]) % MOD;now[1] = (prev[0] * 8 + prev[1] * 3) % MOD;}cout << (now[0] + now[1]) % MOD;

参考程序

转载于:https://www.cnblogs.com/kcn999/p/10805421.html

【题解】老虎的数字游戏相关推荐

  1. 【2019CSP-J 普及组题解】数字游戏(number),公交换乘(transfer),纪念品(souvenir),加工领奖(work) CSP普及游记

    文章目录 T1:数字游戏 题目 CODE T2:公交换乘 题目 CODE T3:纪念品 题目 题解 CODE T4:加工领奖 题目 题解 CODE 关于普及组的想法&游记 T1:数字游戏 题目 ...

  2. [洛谷2674]瞿葩的数字游戏-多边形数 题解

    前言 原题题目<瞿葩的数字游戏>T2-多边形数. 因为博客园标题不能太长所以压缩了一下. 题解 这道题目我是按表格中的列来考虑的, 设读入的数字为\(x\),考虑上面的表格. 我们发现如果 ...

  3. 2019年CSP-J2第一题:数字游戏(number)题解

    题目来源 2019年CSP-J第二轮认证,第一题数字游戏. 题面链接:http://47.110.135.197/problem.php?id=5076. 题面 小 K 同学向小 P 同学发送了一个长 ...

  4. UVa340 Master-Mind Hints 猜数字游戏的提示 题解

    UVa340 Master-Mind Hints 猜数字游戏的提示 题目链接:UVa340 题目描述 输入格式 输出格式 题目翻译 你的任务是实现一个经典的"猜数字"游戏.给定答案 ...

  5. C++题解:数字游戏

    题目链接 题目描述 丁丁最近沉迷于一个数字游戏之中.这个游戏看似简单,但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易.游戏是这样的,在你面前有一圈整数(一共n个),你要按 ...

  6. Acwing 1084. 数字游戏 II

    Acwing 1084. 数字游戏 II 题意: 指定一个整数闭区间 [a.b],问这个区间内有多少个取模数. 取模数:这种数字必须满足各位数字之和 mod N 为 0. 题解: 数位dp 这里不细讲 ...

  7. Acwing 1082. 数字游戏

    Acwing 1082. 数字游戏 题意: 现在大家决定玩一个游戏,指定一个整数闭区间 [a,b],问这个区间内有多少个不降数. 题解: 利用数位dp的套路来做 我们还是利用前缀和来做 我们先求1~n ...

  8. 信息学奥赛一本通 1982:【19CSPJ普及组】数字游戏

    [题目链接] ybt 1982:[19CSPJ普及组]数字游戏 [题目考点] 1. 字符串处理 用字符数组,或用string类 2. 分离各位数字 [题解代码] 解法1:用字符数组,统计字符串中字符' ...

  9. 蓝桥杯算法训练 数字游戏 组合数和暴力两种解法

    试题 算法训练 数字游戏 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个1-N的排列a[i],每次将相邻两个数相加,得到新序列,再对新序列重复这样的操作,显然每次得到的序列 ...

最新文章

  1. Nodejs的模块系统以及require的机制
  2. Keil仿真出现Can not read register xx while CPU is running
  3. 如何正确认识C语言在当今编程领域的地位
  4. Unity——用UnityEditor拷贝FBX中的AnimationClip
  5. LINUX下tar.gz包的安装方法
  6. Linux逻辑运算优先级,linux中的逻辑运算和正则表达式
  7. ubuntu 16.04 安装samba
  8. C11 标准下的 C 语言编程
  9. 手机控制电脑 linux,手机控制电脑 Splashtop远程管理体验
  10. sourceTree回退代码
  11. 有用的“歪门邪道”-设计模式
  12. 盘点2018上半年最受欢迎的前端开发!
  13. 百度地图绘制运动轨迹技巧
  14. 王烁-《30天投资训练营.2020》01.投资六忌:读后感
  15. 华为harmonyos 2.0,连接无限可能 华为HarmonyOS 2.0 正式发布
  16. 51单片机开发入门(3)-IO口应用
  17. [ web 漏洞篇 ] 常见web漏洞总结之 RCE 远程代码 / 命令执行漏洞总结
  18. python模型转PMML
  19. Arthas的使用与进阶
  20. C++描述 LeetCode 485. 最大连续1的个数

热门文章

  1. 虚拟机桥接模式怎么都连不上网(桥接模式下不能连校园网)
  2. 基于遗传算法的多目标优化算法(附代码案例)
  3. 思岚科技发布最新中小型机器人开发平台Apollo
  4. RGB,YUV的来历及其相互转换
  5. es集群节点加入失败join validation on cluster state with a different cluster uuid...than local cluster uuid..
  6. thinkphp6 404找不到网页错误常见情况总结(持续更新)
  7. L3-python语言中的几种特征操作
  8. 专有钉钉 浙政钉 前端 对接流程(小程序)
  9. 旅游网站java项目模板_基于jsp的旅游网站sx-JavaEE实现旅游网站sx - java项目源码...
  10. 计算机网络专业函授,函授计算机专业都考什么课程