news 2026/8/20 10:27:11

茜茜的计算器【牛客tracker 每日一题】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
茜茜的计算器【牛客tracker 每日一题】

茜茜的计算器

时间限制:1 秒
空间限制:256 MB


网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!

题目描述

茜茜有一个计算器,这个计算器在显示数字的时候会把所有的前导0 00都显示出来。

在这个计算器上,0 ∼ 9 0 \sim 909分别被显示为下图中的七段数码管样式:

即,当这个计算器显示屏有10 1010位时,让它显示数字123456 123456123456则会显示为:

00000123456

茜茜发现,这个计算器有时候显示的数字是一个轴对称图形,如"80808"

"80808"的对称轴可以为横轴,也可以为纵轴。而有些数字可能只以横轴或纵轴中的一个为对称轴,但这样的仍然是轴对称图形。)

请问,如果这个计算器显示的数有n nn位时,它能显示的数字中有多少种不同的轴对称图形?


输入描述

读入一个正整数n nn

数据范围:1 ≤ n ≤ 10 9 1 \le n \le 10^91n109


输出描述

输出一个正整数,表示n nn位的计算器所能显示的数字中,有多少种不同的轴对称图形。

由于答案可能很大,输出答案对10 9 + 7 10^9 + 7109+7取模的结果。


示例

示例 1

输入:

2

输出:

18

说明:

18 1818种不同的轴对称图形,分别为:

00, 01, 03, 08, 10, 11, 13, 18, 25, 30, 31, 33, 38, 52, 80, 81, 83, 88,

数据范围与提示

解题思路

本题是组合计数 + 轴对称图形分类问题。需要统计所有n nn位数字串中,在七段数码管显示下构成轴对称图形(关于横轴或纵轴)的个数。由于两种对称轴的条件不同,可分别计数后用容斥合并,避免重复。

1. 数字的对称性分析

七段数码管中各个数字的对称性质如下(可由样例和图形推导):

2. 竖直对称图形计数

h = ⌊ n / 2 ⌋ h = \lfloor n/2 \rfloorh=n/2(位置对的数量)。

但这些竖直对称串中,有一部分全由0 008 88组成,它们同时也是横轴对称图形(因为0 , 8 0,80,8也在横轴对称数字集合中)。为避免重复计数,需要减去这部分。

因此,额外贡献的竖直对称(非横轴对称)图形数为:
extra = { ( 2 h − 1 ) × 2 h , n 为偶数 2 × ( 2 h − 1 ) × 2 h , n 为奇数 \text{extra} = \begin{cases} (2^h-1)\times 2^h, & n \text{ 为偶数} \\[4pt] 2\times(2^h-1)\times 2^h, & n \text{ 为奇数} \end{cases}extra={(2h1)×2h,2×(2h1)×2h,n为偶数n为奇数

3. 最终答案

总数为横轴对称图形数加上额外竖直对称图形数:
Ans = 4 n + extra ( m o d 10 9 + 7 ) \text{Ans} = 4^n + \text{extra} \pmod{10^9+7}Ans=4n+extra(mod109+7)
使用快速幂计算幂次,时间复杂度O ( log ⁡ n ) O(\log n)O(logn),可以轻松处理n ≤ 10 9 n \le 10^9n109

总结

通过分析七段数码管数字在横轴和竖轴翻转下的对称性,将问题分解为横轴对称和竖轴对称两类。横轴对称数量直接为4 n 4^n4n;竖轴对称需要考虑位置对的自对称与镜像对,并扣除与横轴对称重叠的部分。最终利用快速幂高效求解。

代码简要说明

  1. qpow(a,b):快速幂函数,用于计算a b m o d 10 9 + 7 a^b \bmod 10^9+7abmod109+7
  2. 计算主答案r = qpow(4,n)
  3. 额外贡献
    • h = n / 2
    • n为奇数:extra = 2 * (qpow(2,h)-1) * qpow(2,h) % mod
    • n为偶数:extra = (qpow(2,h)-1) * qpow(2,h) % mod
  4. 输出:输出(r + extra) % mod

代码内容

#include<bits/stdc++.h>usingnamespacestd;#defineendl'\n'typedeflonglongll;typedefunsignedlonglongull;typedefvector<vector<ll>>vvt;typedefpair<ll,ll>pll;constll N=1e3+10;constll INF=1e18;constll M=1e6+10;constll mod=1e9+7;llqpow(ll a,ll b){ll r=1;while(b){if(b&1)r=r*a%mod;b>>=1;a=a*a%mod;}returnr;}intmain(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);ll n;cin>>n;ll r=qpow(4,n)%mod;ll h=n/2;if(n&1){r=(r+2*(qpow(2,h)-1)*qpow(2,h)%mod)%mod;}else{r=(r+(qpow(2,h)-1)*qpow(2,h)%mod)%mod;}cout<<r<<endl;return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/20 10:18:13

PyTorch迁移学习实战:从环境配置到模型部署的全流程指南

这次我们来看一个 PyTorch 迁移学习的实战项目。迁移学习不是新概念&#xff0c;但很多人在实际应用时&#xff0c;总会遇到环境配置复杂、预训练模型加载失败、微调策略不明确、显存占用失控等问题。这篇文章的目标很直接&#xff1a;让你能快速在自己的数据集上&#xff0c;用…

作者头像 李华
网站建设 2026/8/20 10:18:05

网络问题排查实战:从IP、DNS到TCP、HTTP的全链路诊断指南

这类“网络基础全梳理”的文章&#xff0c;很多人一上来就列概念、背协议&#xff0c;看完还是不知道怎么解决“上不了网”、“连不上服务”这些实际问题。我更建议换个思路&#xff1a;把网络看成一次从你家电脑到目标服务器的“快递”过程。IP地址是门牌号&#xff0c;DNS是查…

作者头像 李华
网站建设 2026/8/20 10:16:27

2026年Kubernetes面试核心考点与实战解析

1. Kubernetes面试的核心考察维度 2026年的Kubernetes技术面试已经发生了显著变化&#xff0c;不再局限于简单的概念问答。根据我最近参与的几十场技术面试评审经验&#xff0c;现在的考察重点集中在四个真实场景维度&#xff1a; 故障排查能力 &#xff08;占比35%&#xff…

作者头像 李华