当前位置: 首页 > news >正文

[蓝桥杯-610]分数

 题面

解答

这一题如果不知道数论结论的话,做这个题会有两种天壤之别的体验

此题包含以下两个数论知识

1.  2^0+2^1+2^2+...+2^(n-1)=2^n-1

2.  较大的数如果比较小的数的两倍大1或者小1,则两者互质

所以答案就是2^n-1/2^(n-1)

标程1

我的初次解答

#include <bits/stdc++.h>using namespace std;typedef long long int ll;
#define endl "\n"
#define maxLine 110
#define long long int ll;ll num=20;int main() {cout<<(ll)pow(2,20)-1<<"/"<<(ll)pow(2,19);return 0;
}

但是感觉好像有点慢

下午我么们来用快速幂优化一下 

标程2

使用快速幂优化

#include <bits/stdc++.h>using namespace std;typedef long long int ll;
#define endl "\n"
#define maxLine 110
#define long long int ll;// ll mul(ll a,ll b,ll mod)
// {
//     a %= mod;
//     b %= mod;
//     return (a*b-((ll)((long double)a/mod*b))*mod+mod)%mod;
// }
inline ll ksm(ll a,ll b ){ll res=1;while(b){if (b&1) res*=a;b>>=1;a*=a;}return res;
}
int main() {cout<<(ll)ksm(2,20)-1<<"/"<<(ll)ksm(2,19);return 0;
}

奇怪,优化后的代码空间和时间居然没有任何提升。。。 

http://www.lryc.cn/news/210240.html

相关文章:

  • Vue指令大全:深入探索Vue提供的强大指令功能
  • x210项目重新回顾之十七升级到linux4.19.114 +buildroot2018再讨论
  • shell_56.Linux永久重定向
  • CN考研真题知识点二轮归纳(1)
  • hadoop使用简介
  • WebSocketClient objects are not reuseable
  • 分享54个ASP.NET源码总有一个是你想要的
  • 闭包通俗解释,Demo(Go Java Python)
  • Linux部署Redis Cluster高可用集群(附带集群节点添加删除以及槽位分配操作详解)
  • 【PWN · heap | Off-By-One】Asis CTF 2016 b00ks
  • C++STL---Vector、List所要掌握的基本知识
  • 使用FastAPI部署Ultralytics YOLOv5模型
  • A. Doremy‘s Paint 3
  • 深度学习_1 介绍;安装环境
  • Python基础入门例程19-NP19 列表的长度(列表)
  • LeetCode 2558. 从数量最多的堆取走礼物
  • 【JVM】字节码文件的组成部分
  • STM32 TIM(四)编码器接口
  • 力扣第56题 合并区间 c++ 贪心
  • php 日期
  • 食物链解读
  • Day10配置文件日志多线程
  • leetcode:1154. 一年中的第几天(python3解法)
  • 竞赛 深度学习图像修复算法 - opencv python 机器视觉
  • flutter升级+生成drift文件
  • [AUTOSAR][诊断管理][ECU][$34] 下载请求
  • C 标准库 - <errno.h>和<float.h>详解
  • 对于如何学习的一点思考
  • Ensemble Methods集成学习大比拼:性能、应用场景和可视化对比总结
  • 【2024秋招】2023-9-16 贝壳后端开发二面