【题解】老虎的数字游戏
题目描述
飞镖游戏虽好玩,但小老虎不忘考考同学的数学能力,为了好玩和不大难,小老虎想就用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
【题解】老虎的数字游戏相关推荐
- 【2019CSP-J 普及组题解】数字游戏(number),公交换乘(transfer),纪念品(souvenir),加工领奖(work) CSP普及游记
文章目录 T1:数字游戏 题目 CODE T2:公交换乘 题目 CODE T3:纪念品 题目 题解 CODE T4:加工领奖 题目 题解 CODE 关于普及组的想法&游记 T1:数字游戏 题目 ...
- [洛谷2674]瞿葩的数字游戏-多边形数 题解
前言 原题题目<瞿葩的数字游戏>T2-多边形数. 因为博客园标题不能太长所以压缩了一下. 题解 这道题目我是按表格中的列来考虑的, 设读入的数字为\(x\),考虑上面的表格. 我们发现如果 ...
- 2019年CSP-J2第一题:数字游戏(number)题解
题目来源 2019年CSP-J第二轮认证,第一题数字游戏. 题面链接:http://47.110.135.197/problem.php?id=5076. 题面 小 K 同学向小 P 同学发送了一个长 ...
- UVa340 Master-Mind Hints 猜数字游戏的提示 题解
UVa340 Master-Mind Hints 猜数字游戏的提示 题目链接:UVa340 题目描述 输入格式 输出格式 题目翻译 你的任务是实现一个经典的"猜数字"游戏.给定答案 ...
- C++题解:数字游戏
题目链接 题目描述 丁丁最近沉迷于一个数字游戏之中.这个游戏看似简单,但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易.游戏是这样的,在你面前有一圈整数(一共n个),你要按 ...
- Acwing 1084. 数字游戏 II
Acwing 1084. 数字游戏 II 题意: 指定一个整数闭区间 [a.b],问这个区间内有多少个取模数. 取模数:这种数字必须满足各位数字之和 mod N 为 0. 题解: 数位dp 这里不细讲 ...
- Acwing 1082. 数字游戏
Acwing 1082. 数字游戏 题意: 现在大家决定玩一个游戏,指定一个整数闭区间 [a,b],问这个区间内有多少个不降数. 题解: 利用数位dp的套路来做 我们还是利用前缀和来做 我们先求1~n ...
- 信息学奥赛一本通 1982:【19CSPJ普及组】数字游戏
[题目链接] ybt 1982:[19CSPJ普及组]数字游戏 [题目考点] 1. 字符串处理 用字符数组,或用string类 2. 分离各位数字 [题解代码] 解法1:用字符数组,统计字符串中字符' ...
- 蓝桥杯算法训练 数字游戏 组合数和暴力两种解法
试题 算法训练 数字游戏 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个1-N的排列a[i],每次将相邻两个数相加,得到新序列,再对新序列重复这样的操作,显然每次得到的序列 ...
最新文章
- 行情跌宕起伏,或许你可以买这个代币?
- 今晚中科院刘永鑫报告:宏基因组数据分析的机遇与挑战
- sql 只取一条记录_后端程序员必备:书写高质量SQL的30条建议
- horizon服务主要模块_OpenStack组件——Horizon Web界面管理服务
- 早上起来CSDN的PC端主页积分变成了0
- VisualStudio\Spy++查窗口句柄,监控窗口消息
- K8S报error: You must be logged in to the server错误
- 希腊神话传说中的诸神
- 网易2019实习生招聘笔试-牛牛的闹钟
- 什么是云原生架构?云原生和应用上云不是一码事!
- 新书推荐:《AI 3.0》
- 工程建设项目管理信息系统
- 南卫理公会大学计算机科学,南卫理公会大学计算机科学硕士专业申请材料及课程设置...
- [黑马程序员C++笔记]P99-P104类和对象-封装
- 刹车防抱死系统(ABS)
- ROS_Kinetic_01 在 Ubuntu 16.04 安装ROS Kinetic 全教程附资料和镜像 2018.10.20更新
- 好玩的接口 之 Java 解密微信小程序获取手机号
- 微信小程序-audio功能实现
- 图形化文本编辑器_使用图形转换器从知识图生成文本
- 如何制作nc文件(小插曲)
热门文章
- 激光雷达学习笔记-------Ubuntu 18.04 + 思岚科技 A1M8+ ROS 上手使用及基于hector_slam 建图
- 短信java_Java发送手机短信(附代码和解析,亲测有效,简便易操作)
- python基本符号怎么打_Python入门篇基础语法
- 区块链研究实验室|比较两个革命性的网络:闪电网络和互联网世界
- Python识别图像中的文字、数字等
- python调用word_Python调用win32com.client.Dispatch('Word.Application')报错汗血宝马
- 时间复杂度(算法的渐进时间复杂度)
- 解决WIN 7 不能任意修改无线网卡MAC地址的问题
- 2011-12-24
- 利用ffmpeg将mp4视频转换成多张jpg图片