牛客周赛 E-茜茜的计算器

2024-06-18 00:44
文章标签 牛客 周赛 计算器 茜茜

本文主要是介绍牛客周赛 E-茜茜的计算器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原题链接:E-茜茜的计算器​​​​​​

题目大意:在计算器上显示的0~9十个数字,如果这个计算器有n个位置,可以显示n个数字,问能显示多少种不同的对称数字。只能横轴和竖轴对称。

思路:容斥,最终的答案是横轴对称的数量+纵轴对称的数量-都对称的数量。可以横轴对称的数字有0 1 8 3,这四个数字可以在n个位置随意放置,一定是对称的,那么横轴对称的数量就是4^{n}。对于纵轴对称的数字,需要对n的奇偶性质进行讨论,如果奇数,那么中间的那一个位置,可以放0和8二种数字,而且因为是纵轴对称,那么只要确定了一边另一边也就确定了,所以奇数的数量就是2*2^{n/2},如果是偶数那么中间就没有0和8,那么数量就是2^{n/2}。对于都对称的数字,那么就是由0和8这二个数字组成的数,那么如果是n是奇数,那么数量就是2*2^{n/2},如果是偶数,那么数量就是2^{n/2}.

//冷静,冷静,冷静
//调不出来就重构
#include<bits/stdc++.h>
#define endl '\n'
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<ll,ll> pii;
const int N=1e6+10,mod=1e9+7;
ll ksm(ll a,ll b)
{ll ans=1;do{if(b&1)ans*=a;a*=a;b>>=1;ans%=mod;a%=mod;}while(b);return ans;
}
int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);ll n;cin>>n;ll ans=ksm(4,n);if(n&1){ans=ans+2*ksm(4,n/2)%mod;ans%=mod;ans=ans-2*ksm(2,n/2)%mod;ans%=mod;}else{ans=ans+ksm(4,n/2)%mod;ans%=mod;ans=ans-ksm(2,n/2)%mod;ans%=mod;}cout<<(ans%mod+mod)%mod;return 0;}

这篇关于牛客周赛 E-茜茜的计算器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1070832

相关文章

每日一题|牛客竞赛|四舍五入|字符串+贪心+模拟

每日一题|四舍五入 四舍五入 心有猛虎,细嗅蔷薇。你好朋友,这里是锅巴的C\C++学习笔记,常言道,不积跬步无以至千里,希望有朝一日我们积累的滴水可以击穿顽石。 四舍五入 题目: 牛牛发明了一种新的四舍五入应用于整数,对个位四舍五入,规则如下 12345->12350 12399->12400 输入描述: 输入一个整数n(0<=n<=109 ) 输出描述: 输出一个整数

LeetCode 第414场周赛个人题解

目录 Q1. 将日期转换为二进制表示 原题链接 思路分析 AC代码 Q2. 范围内整数的最大得分 原题链接 思路分析 AC代码 Q3. 到达数组末尾的最大得分 原题链接 思路分析 AC代码 Q4. 吃掉所有兵需要的最多移动次数 原题链接 思路分析 AC代码 Q1. 将日期转换为二进制表示 原题链接 Q1. 将日期转换为二进制表示 思路分析

牛客小白月赛100部分题解

比赛地址:牛客小白月赛100_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ A.ACM中的A题 #include<bits/stdc++.h>using namespace std;#define ll long long#define ull = unsigned long longvoid solve() {ll a,b,c;cin>>a>>b>

牛客小白月赛100(A,B,C,D,E,F三元环计数)

比赛链接 官方讲解 这场比较简单,ABC都很签到,D是个不太裸需要预处理的 B F S BFS BFS 搜索,E是调和级数暴力枚举,F是三元环计数。三元环考的比较少,没见过可能会偏难。 A ACM中的A题 思路: 就是枚举每个边变成原来的两倍,然后看看两短边之和是否大于第三边即可。 不能只给最短边乘 2 2 2,比如 1 4 8 这组数据,也不能只给第二短边乘 2 2 2,比

LeetCode --- 413周赛

题目列表 3274. 检查棋盘方格颜色是否相同 3275. 第 K 近障碍物查询 3276. 选择矩阵中单元格的最大得分 3277. 查询子数组最大异或值 一、检查棋盘方格颜色是否相同 题目给定两个字符串来表示两个方格的坐标,让我们判断这两个方格的颜色是否相同,这里我们要观察棋盘的颜色特征,我们就会发现奇数行的奇数列和偶数行的偶数列是黑色,其他都是白色,所以我们可以直接计算出每个方

笔试强训,[NOIP2002普及组]过河卒牛客.游游的水果大礼包牛客.买卖股票的最好时机(二)二叉树非递归前序遍历

目录 [NOIP2002普及组]过河卒 牛客.游游的水果大礼包 牛客.买卖股票的最好时机(二) 二叉树非递归前序遍历 [NOIP2002普及组]过河卒 题里面给的提示很有用,那个马的关系,后面就注意,dp需要作为long的类型。 import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息publ

每日OJ_牛客_求和(递归深搜)

目录 牛客_求和(递归深搜) 解析代码 牛客_求和(递归深搜) 求和_好未来笔试题_牛客网 解析代码         递归中每次累加一个新的数,如果累加和大于等于目标,结束递归。此时如果累加和正好等于目标,则打印组合。向上回退搜索其它组合。此题本身就是一个搜索的过程,找到所有的组合。 #include <iostream>#include <cmath>#in

QT学习之计算器

网格布局初尝试,快速构建计算器 项目结构: wident.h拖动建立界面,20个button,一个lineedit 布局好后整体网格布局调整,依次给每个案件输入文本,并改objectname方便后期辨识 为了在lineedit显示数字,转到槽,编辑点击事件,如显示“1” void Widget::on_pushButton1_clicked(){expression += "1";u

Arcgis字段计算器:随机生成规定范围内的数字

选择字段计算器在显示的字段计算器对话框内,解析程序选择Python,勾选上显示代码块, 半部分输入: import random; 可修改下半部分输入: random.randrange(3, 28) 表示生成3-28之间的随机数 字段计算器设置点击确定完成随机数的生成,生成的随机数如下图所示。

Vue初学-简易计算器

最近在学习Vue的指令,做了一个简易计算器,比较适合刚入门的人参考学习。用到的知识点有: 1.插值表达式 2.v-model,双向绑定+、-、*、/、**等操作符 3.v-show,控制操作数2是否显示,乘方时不显示操作数2 4.methods选项,定义了calculate ()方法,实现各种运算 5.watch选项,监听selected的值的变化。 下面是程序的执行效果: 如果选择的是**乘