原题传送门

普及组T1
在CSP2022之前牛客的模拟赛第一题都是雷打不动的字符串简单模拟,非常的敷衍和苍白。虽然普及组的第一题肯定是来送分的,但是我们不能轻视这一题。

17年18年提高组的第一题都是赚足了眼球,满是话题。17年第一题是一道数学题,把很多人卡死了;18年第一题是一道贪心,甚至是13年提高组的原题,但就是很多人花了很多时间才解决。就算解决了,也用了很多奇怪的算法和做法,这在考场上面就十分不值得。

现在提高组变成了四道题目,那么提高组的第一题的定位肯定没有六道题的时候的第一题简单了。可以发现这几年普及组的第一题的难度比之前要高上一点。我们可以注意一下。

对于今年普及组第一题也可以分析分析。很多人使用了快速幂和longlong,不是说不行,就是没必要。你可能会说我在钻牛角尖,但是这道题目用了快速幂和不用快速幂是两个不同的思路。后者更能体现算法思维。

首先发现输入的是正整数,那么就不用考虑负数和0的情况。然后发现指数最大可以到 1 0 9 10^9 109,就是说普通乘法会超时,所以会想到快速幂。

但是把 a b a^b ab算出来去和 1 0 9 10^9 109比较,是惯性思维,我们可以换一个角度去思考。

  • 若 a = 1 a=1 a=1,那么 a b = 1 a^b=1 ab=1,所以直接输出
  • 若 a > 1 a>1 a>1,那么 a b ≥ 2 b a^b\ge2^b ab≥2b,我们知道 m a x i n t = 2 31 − 1 maxint=2^{31}-1 maxint=231−1,所以若 b > 31 b>31 b>31,肯定输出-1
  • 特判 b > 31 b>31 b>31是为了解决超时的问题,接下来解决跟 1 0 9 10^9 109比较的问题: a b ≤ 1 0 9 − − > 1 ≤ 1 0 9 a b a^b\leq10^9-->1\leq\frac{10^9}{a^b} ab≤109−−>1≤ab109​,所以就让 1 0 9 10^9 109除掉 b 个 a b个a b个a跟1比就行了,不需要用到longlong

Code:

#include <bits/stdc++.h>
#define LL long long
using namespace std;inline int read(){int s = 0, w = 1;char c = getchar();for (; !isdigit(c); c = getchar()) if (c == '-') w = -1;for (; isdigit(c); c = getchar()) s = (s << 1) + (s << 3) + (c ^ 48);return s * w;
}int main(){int a = read(), b = read(), c = 1000000000;if (a == 1) puts("1");else if (b > 31) puts("-1"); else{for (int i = 1; i <= b; ++i) c /= a;if (c < 1) puts("-1"); else{int ans = 1;for (int i = 1; i <= b; ++i) ans *= a;cout << ans;}}return 0;
}

【题解】LuoGu8813: [CSP-J 2022] 乘方相关推荐

  1. [CSP-J 2022] 乘方 题解

    [CSP-J 2022] 乘方 题解 题目描述 小文同学刚刚接触了信息学竞赛,有一天她遇到了这样一个题:给定正整数 a a a 和 b b b,求 a b a^b ab 的值是多少. a b a^b ...

  2. 【题解】P8817 [CSP-S 2022] 假期计划(bfs,dfs)

    [题解]P8817 [CSP-S 2022] 假期计划 此题作为 CSP-S 的 T1,可以说是相当有难度了.感觉 T1 和 T2 换了个位置.(雾) 我作为场外 VP 选手赛时此题只得了 95pts ...

  3. CSP - J 2020 T1 优秀的拆分

    https://www.luogu.com.cn/problem/P7071 /* CSP - J 2020 T1 优秀的拆分 https://www.luogu.com.cn/problem/P70 ...

  4. P8813 [CSP-J 2022] 乘方

    题目传送门 [题目描述] [输入格式] 输入共一行,两个正整数 a,b [输出格式] [输入输出样例] 输入1 10 9 输出1 1000000000 输入2 23333 66666 输出2 -1 [ ...

  5. 2020 CSP - J初赛 题解

    目录 写在前面的话 题面 题解 答案合集 单项选择题 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 阅读程序题 一 16 17 18 19 20 21 二 22 23 24 ...

  6. week4——实验题解(csp模拟1)

    题目1: 咕咕东的奇遇 咕咕东是个贪玩的孩子,有一天,他从上古遗迹中得到了一个神奇的圆环.这个圆环由字母表组成首尾相接的环,环上有一个指针,最初指向字母a.咕咕东每次可以顺时针或者逆时针旋转一格.例如 ...

  7. C++题解:CSP迎国庆热身公益赛T2——猜数游戏(70分)

    题目描述 小 W ⼜在数学课上睡着了! 作为惩罚,授课的数学⽼师 Wall_Breaker 强制小 W 要玩⼀个猜数游戏. Wall_Breaker 会在⼀张纸上写下 N N N个值域在 [ 1 , ...

  8. CSP J/S SH 迷惑行为大赏

    w r 写 反 人 ... void solveBF(){for(int k=l;k<=r;k++){cnt=k%n;ans=max(ans,cnt);}cout<<ans; } i ...

  9. 郑州大学“战疫杯”大学生程序设计在线邀请赛(2)(C++题解+详细思路)2022年5月10日

    目录 1 公司的Logo 2 解封日期 3 语音设备是否正常? 1 公司的Logo 为了感谢河南省八六三软件有限公司对战疫杯ACM在线程序设计竞赛的大力支持,小Y决定为公司制作个logo. logo通 ...

最新文章

  1. hadoop系统 hdfs 命令行操作
  2. 干货|建议初创团队起初也要构建分布式应用
  3. 300亿美元,AMD为什么要买Xilinx?
  4. python第七章动手试一试_Python学习3
  5. 2021高考成绩查询时间 新闻,教育资讯:2021高考成绩一般公布时间 多久出成绩...
  6. PMcaff杂谈社第一期:红包那些事儿
  7. cf1039D 分块
  8. 【转载】大规模网站架构实战之体系结构
  9. 批处理启动myeclipse
  10. 【Java】使用MapReduce程序统计UV数量
  11. python数据字典排序_Python自动处理数据字典(Python是3.6版本)
  12. 全网最新抖音视频去水印解析PHP网页源码
  13. 【Dongle】【数据库系统原理】模式分解之无损分解
  14. 记一次jstack线程诊断
  15. GitHub使用教程、注册与安装
  16. 计算机专业英语积累(包括前端和后端常用的)~持续更新
  17. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java学籍管理系统7uw29
  18. Casbin 账号密码泄漏漏洞
  19. 2 个python美化表格数据输出结果的工具,摸鱼简直心安理得~
  20. 视频教程-项目2——在线无忧库存预警系统-Java

热门文章

  1. 问题 A: [入门OJ]买水果(初中生请多多指教)
  2. 设置导航栏背景色为透明色的最有效做法
  3. java的-json_Java中的JSON
  4. QRCode二维码扫描和生成
  5. 压力机的性能调优过程
  6. 【一月一本技术书】-【Go语言设计与实现】- 9月
  7. C语言的一个程序是怎么执行的
  8. win10远程连接报错:这可能是由于CredSSP加密数据库修正解决方法
  9. 黏包现象和解决黏包的方法
  10. 高并发系统设计40问 - 学习/实践