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

试题 算法训练 数的潜能

资源限制

内存限制:256.0MB   C/C++时间限制:1.0s   Java时间限制:3.0s   Python时间限制:5.0s

问题描述

  将一个数N分为多个正整数之和,即N=a1+a2+a3+…+ak,定义M=a1*a2*a3*…*ak为N的潜能。
  给定N,求它的潜能M。
  由于M可能过大,只需求M对5218取模的余数。

输入格式

  输入共一行,为一个正整数N。

输出格式

  输出共一行,为N的潜能M对5218取模的余数。

样例输入

10

样例输出

36

数据规模和约定

  1<=N<10^18

这是一道总结规律题,其实就是要看怎么组合才能使积最大,参考网友博客:http://t.csdnimg.cn/R75oA 

代码如下,不过要注意一下,直接算指数幂可能会超时,得优化指数幂的计算,将幂逐一分半来算,比如2的8次方分成两个2的4次方相乘,这样只需要计算一个2的4次方便可,这样就可以减少很多计算量。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll power(ll bottom,ll count){if(count==0)return 1;else if(count==1)return bottom;else if(count%2==0){ll temp=power(bottom,count/2);return temp%5218*temp%5218;}else{ll temp=power(bottom,count/2);return temp%5218*temp*bottom%5218;}
}
int main(){ll n;cin>>n;ll count3=0,count2=0;if(n<=3){cout<<n;return 0;}if(n%3==0)count3=n/3;else if(n%3==1){count3=n/3-1;count2=2;}else{count3=n/3;count2=1;}ll sum=power(3,count3);cout<<count3<<" "<<sum<<endl;sum*=pow(2,count2);cout<<sum%5218<<endl;}

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

相关文章:

  • OpenAI Triton 入门教程
  • 【flask+python】利用魔术方法,更优雅的封装model类
  • Qt程序设计-报警灯自定义控件实例
  • Linux之定时任务02
  • PHP堆栈+errLog定位
  • 【大数据】Flink SQL 语法篇(七):Lookup Join、Array Expansion、Table Function
  • 【云原生】Spring Cloud Gateway的底层原理与实践方法探究
  • springboot 实现本地文件存储
  • Python进阶学习:Pandas--查看DataFrame中每一列的数据类型
  • Groovy - 大数据共享搜索配置
  • 第三节:Vben Admin登录对接后端login接口
  • 关于CSS 优先级布局应用的教程
  • vue2+elementui上传照片(el-upload 超简单)
  • 目标检测新SOTA:YOLOv9问世,新架构让传统卷积重焕生机(附代码)
  • Javascript:输入输出
  • Windows系统安装TortoiseSVN并结合内网穿透实现远程访问本地服务器——“cpolar内网穿透”
  • HarmonyOS 开发之———应用程序入口—UIAbility的使用
  • 推荐几款优秀免费开源的导航网站
  • input输入框过滤非金额内容保留一个小数点和2位小数
  • 推荐系统经典模型YouTubeDNN代码
  • 学习加密(三)spring boot 使用RSA非对称加密,前后端传递参数加解密
  • 面向对象编程入门:掌握C++类的基础(2/3):深入理解C++中的类成员函数
  • javaWeb学习04
  • Day07:基础入门-抓包技术全局协议封包监听网卡模式APP小程序PC应用
  • 通过elementUI学习vue
  • 音视频数字化(数字与模拟-电视)
  • CSS复合选择器(二)
  • Postgresql中VACUUM操作原理和应用
  • 5.1 Ajax数据爬取之初介绍
  • react-组件进阶