题目描述:

有n个格子,每个格子里有一个数,1,2,3,4…n

牛牛放出无穷只青蛙。

第一只青蛙的路线是:1->2->4->8->16->…

第二只青蛙的路线是:1->3->9->27->81->…

第三只青蛙的路线是:1->5->25->125…

第四只青蛙的路线是:1->7->49…

。。。。。。

用数学语言描述,第 i只青蛙的路线是首项为1,公比为p(i)的等比数列,其中p(i)代表第个素数。

当青蛙跳到一个格子上,如果这个格子上面有一个数,青蛙就会把这个数吃掉。

牛牛想知道,所有没有被吃掉的数的lcm(最小公倍数 ,Least common multiple)是多少?

由于这个lcm可能非常大,请输出它对109 + 7取模的值。

输入描述:

一个整数n

1 <= n <= 1.6 * 108

输出描述:

如果所有数都被吃掉了,请输出一个字符串"empty"

否则输出所有没有被吃掉的数的lcm,对模109 + 7

思路:

2可以划掉2k2^{k}2k,3可以划掉3k3^{k}3k,5可以划掉k^{k}k…
那么没有划掉的数字有它具有2个以上的质因子。
然而我们求lcm。
只需要求每个质因子的最大幂数的乘积就是结果。

所以对于每个质因子,我们只需要求出他的最高项就ok了。
对于2这个质因子,他所能达到的最大数就是:3∗2k<=n3*2^k<=n3∗2k<=n
对于其他质因子p,它所能达到的最大数就是:2∗pk<=n2 * p^k<=n2∗pk<=n

因为至少含有2个因子,所以p的最大值会小于等于n/2n/2n/2
至于选择素数可以直接线性筛。

详细:https://aspire-zero.github.io/2021/03/01/yi-qun-xiao-qing-wa-gu-beng-gu-beng-gu/

代码:
#include<bits/stdc++.h>
#include<iostream>
#include<queue>
#include<sstream>
#include<algorithm>
#include<vector>
#include<cmath>
#include<map>
#include<set>
#define inf 0x3f3f3f3f
#include<cstring>
#include<cstdio>
#define  ll long long
#define PI acos(-1)
#define mset(s, _) memset(s, _, sizeof(s))
//#define lo
using namespace std;
void coutx(double q, int x)
{//cout.setf(ios::fixed);//cout.unsetf(ios::fixed);cout << fixed << setprecision(x) << q << endl;return ;
}
inline ll ksc(ll x, ll y, ll mod)//快速乘
{return ( x * y - (ll) ( (long double) x / mod*y )*mod + mod ) % mod;
}
ll gcd(ll a,ll b)
{return b==0?a:gcd(b,a%b);
}
ll lcm(ll a,ll b)
{return a/gcd(a,b)*b;
}
const int mod1 = 1e9 + 7;
const int N = 8e7+7;
bool isprime[N];
ll vis[N];
int sieve(int n)//线性筛
{int cnt = 0;isprime[0] = isprime[1] = true;for(int i = 2; i <= n; i ++){if(!isprime[i])      vis[ ++ cnt] = i;for(int j = 1; j <= cnt && i * vis[j] <= n; j ++){isprime[i * vis[j]] = 1;if(i % vis[j] == 0)break;}  }return cnt;
}
int log(int n, int m)//求log
{ll res = 0;ll t = 1;while(t <= m){t *= n;res ++;}return res - 1;
}
ll poww(ll a, ll b)//快速幂
{ll ans = 1;while(b){if(b & 1) ans = ksc(ans, a, mod1) % mod1;a = ksc(a, a, mod1) % mod1;a %= mod1;b >>= 1;ans %= mod1;}return ans % mod1;}
int main()
{#ifdef lofreopen("data.in","r",stdin);freopen("data.out","w",stdout);#endifsrand((unsigned int)time(0));ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int n, cnt;ll ans;cin >> n;if(n <= 5){cout << "empty";return 0;}cnt = sieve(n / 2);ans = poww(2, log(2, n / 3));for(int i = 2; i <= cnt; i ++){ans = (ans % mod1) * poww(vis[i], log(vis[i], n / 2));ans %= mod1;}cout << ans % mod1;return 0;}

一群小青蛙呱蹦呱蹦呱相关推荐

  1. 2021牛客寒假算法基础集训营1 J 一群小青蛙呱蹦呱蹦呱

    今天的比赛没打( 睡午觉去了,今天太累了 晚上来看看题 2021牛客寒假算法基础集训营1 J 一群小青蛙呱蹦呱蹦呱 题目传送门 板子题( 我们知道由唯一分解定理得,若 n=p1α1×p2α2×p3α3 ...

  2. 51实现微信蹦一蹦外挂demo

    51实现微信蹦一蹦外挂demo 思路是测量实际距离后,输入距离,舵机实现模拟按键. #include <reg51.h> #include <intrins.h>typedef ...

  3. 【青蛙旅行】想给呱儿子买外挂?小心有诈!

    几天之间,全国人们就从"吃鸡"变成了"养蛙",被这款"佛系游戏"俘获的玩家们纷纷变身絮絮叨叨"老母亲",朋友圈一夜间被旅 ...

  4. ​每天十分钟| Get实用在线英语启蒙教育APP—叽里呱啦

    作为家有幼儿宝宝的老母亲,曾经也被"陪娃上课,陪娃写作业"的恐惧深深地支配过.尤其是在给宝宝辅导英语启蒙的过程中,为娘切身地感受到: 兴趣是英语启蒙的原动力,所以在启蒙过程中,家长 ...

  5. 「镁客·请讲」呱虎百科许荣雨:我们的目标是做最好的VR MR营销平台

    呱虎百科就像是一张白纸,任何人都可以无门槛地用这个平台来创建VR MR内容. 第一次听到"许悍匪"名字的时候,当时刚完成一个采访,采访对象热切地推荐了这个略霸气的微信名片. 打开& ...

  6. 【叽里呱啦G客沙龙】5月18日,来叽里呱啦和技术大牛一起Geek分享!

    叽里呱啦G客沙龙是由叽里呱啦举办的线下技术交流活动,每期活动会邀请技术专家分享特定领域的成果和实践,同时还会通过OpenSpace开放式分组讨论或圆桌论坛,对话题进行分享讨论.活动目的旨在为技术人员提 ...

  7. eclipse中链接不上SVN资源库,一连就蹦。

    这个问题可算是纠结了半天....还导致IDE重新安装,一直蹦一直蹦,测试了很多回. 首先问题:如果能够在WINDOWS下链接的话,也就在eclipse外面连接服务器资源库有问题,那极大可能是服务器没开 ...

  8. 蹦起来!Python 用物理引擎Pymunk写一个解压小游戏

    用鼠标创建小球,一个蹦来蹦去的解压小游戏-- 本次需要的外置包:pygame,pymunk,cmd运行该命令安装: pip install pygame pip install pymunk 首先,导 ...

  9. 旅行青蛙南の旅旅行券_旅行时查找WiFi

    旅行青蛙南の旅旅行券 When you're travelling, you probably bring your laptop, so you can do some work and keep ...

最新文章

  1. 记录一次http请求失败的问题分析
  2. 取得Repeater内部控件命令名与命令参数
  3. 北大清华“合并开班”:AI大牛朱松纯带队,面向元培和自动化系招生
  4. 创建squashfs.img文件挂载失败
  5. 软考-信息系统项目管理师-项目集管理
  6. linux下的ssh端口号修改,如何在 Linux 中更改 SSH 端口
  7. 软件工程课的分数系统,和打分方法
  8. 编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言概念辨析
  9. Amazon Web Service 雲端運算平台攻略 【2】
  10. 实战案例丨使用云连接CC和数据复制服务DRS实现跨区域RDS迁移和数据同步
  11. 移动时代软件测试团队该往哪里去?
  12. 注意!腾讯语音助手也已抵达战场(内部不止这一个)
  13. python队列中替换某元素_如何打印队列中的元素(Python)
  14. You (root) are not allowed to access to (crontab) because of pam configuration
  15. MongoDB下载与安装
  16. 均值滤波器类型_[数字图像处理]图像去噪初步(1)--均值滤波器
  17. 同步或者重构Activiti Identify用户数据的多种方案比较
  18. WePhone手机软件已下架 疑因资金问题导致无法使用
  19. deepin系统引导_【转】deepin系统启动流程
  20. 快讯:预装Ubuntu 11.10小电脑南非开卖

热门文章

  1. Oracle 的 表空间(Tablespace)、用户(User)、模式(Schema)详细解释
  2. 华唯鑫能油的推荐每日一练|你知道的液体燃料有哪些?
  3. Mybatis新增数据后,报ERROR: Field * doesn‘t have a default value
  4. 【知识】太阳能板行业生产加工步骤(超详细)
  5. AirPods 无法连接到iPhone、iPad或Mac的解决办法
  6. Invalid bound statement (not found): com.ycy.system.mapper.UserMapper.selectByPrimaryKey
  7. 【C++】计算一个正整数的阶乘
  8. 转: angularjs学习总结(~~很详细的教程)
  9. 【工控基础】1. SCADA系统介绍
  10. Delphi指针样式控件代码