Codeforces Round #392(Div 2) 758F(数论)
题目大意
求从l到r的整数中长度为n的等比数列个数,公比可以为分数
首先n=1的时候,直接输出r-l+1即可
n=2的时候,就是C(n, 2)*2
考虑n>2的情况
不妨设公比为p/q(p和q互素->既约分数)
那么等比数列为
k k*p/q k*(p/q)^2 ..... k*(p/q)^(n-1)
因为都是整数,所以k一定可以表示为x*q^(n-1),化简数列得
x*q^(n-1) ........ x*p^(n-1)
也就是说,假如q < p, 那么最小值就是x*q^(n-1), 最大值就是x*p^(n-1)
接下来我们又发现当n>2的时候
p和q都必须小于等于sqrt(r) (因为p^2,q^2都小于等于r)
所以就直接从1到sqrt(r)枚举p和q即可,利用辗转相除判断互素,求出所有可行的x,这样复杂度就是rlog(r)
注意当n>30的时候,显然不存在任何等比数列,所以输出0即可(这样可以不用写快速幂,因为n很小)
#include <iostream>
#include <cstdio>
using namespace std;
typedef long long ll;
ll power(ll x, ll n)
{
ll ans = ;
for(int i = ; i <= n; i++) ans *= x;
return ans;
}
ll gcd(ll x, ll y) { return (x%y == ) ? y : gcd(y, x%y); }
ll n, l, r;
int main()
{
cin>>n>>l>>r;
if(n == ) cout<<r-l+;
else if(n == )
{
cout<<(r-l+)*(r-l);
}
else if(n > )
{
cout<<;
}
else
{
ll ans = ;
for(int i = ; i < r; i++)
{
int p = i, R = r/power(p, n-);
if(R == ) break;
for(int j = ; j < p; j++)
{
int q = j;
int L = (l-)/power(q, n-)+;
if(L > R) continue;
if(gcd(p, q) == ) { ans += (R-L+); }
}
}
cout<<ans*<<endl;
}
}
Codeforces Round #392(Div 2) 758F(数论)的更多相关文章
- Codeforces Round #382 Div. 2【数论】
C. Tennis Championship(递推,斐波那契) 题意:n个人比赛,淘汰制,要求进行比赛双方的胜场数之差小于等于1.问冠军最多能打多少场比赛.题解:因为n太大,感觉是个构造.写写小数据, ...
- Codeforces Round #538 (Div. 2) C 数论 + 求b进制后缀零
https://codeforces.com/contest/1114/problem/C 题意 给你一个数n(<=1e8),要你求出n!在b进制下的后缀零个数(b<=1e12) 题解 a ...
- Codeforces Round #392 (Div. 2) F. Geometrical Progression
原题地址:http://codeforces.com/contest/758/problem/F F. Geometrical Progression time limit per test 4 se ...
- Virtual Codeforces Round #392 (Div. 2)
下午闲来无事开了一场Virtual participation 2h就过了3道水题...又跪了..这只是Div. 2啊!!! 感觉这次直接就是跪在了读题上,T1,T2读题太慢,T3还把题读错了 要是让 ...
- Codeforces Round #554 (Div. 2) C 数论
https://codeforces.com/contest/1152/problem/C 题意 a和b,找到k,使得lcm(a+k,b+k)最小(a,b:1e9) 题解 设gcd=gcd(a+k,b ...
- Codeforces Round #392 (Div. 2) - C
题目链接:http://codeforces.com/contest/758/problem/C 题意:给定N*M矩阵的教室,每个位置都有一个学生,Sergei坐在[X,Y],然后老师会问K个问题,对 ...
- Codeforces Round #392 (Div. 2) - B
题目链接:http://codeforces.com/contest/758/problem/B 题意:给定n个点灯的情况,灯只有四种颜色RBGY,然后如果某个灯坏了则用'!'表示,现在要求将坏的灯( ...
- Codeforces Round #392 (Div. 2) - A
题目链接:http://codeforces.com/contest/758/problem/A 题意:给定N个城市的福利,国王现在想让每个城市的福利都一致.问最少需要花多少钱使得N个城市的福利值都一 ...
- Codeforces Round #392 (Div. 2)-758D. Ability To Convert(贪心,细节题)
D. Ability To Convert time limit per test 1 second Cmemory limit per test 256 megabytes input standa ...
随机推荐
- LINUX 启动图形界面和查看运行级别
runlevel 查看当前运行级别 cat /etc/inittab 可以查看7个运行级别 init 6 == reboot == shuttdown -r now 都是表示重启的命令 ...
- [NodeJs系列][译]理解NodeJs中的Event Loop、Timers以及process.nextTick()
译者注: 为什么要翻译?其实在翻译这篇文章前,笔者有Google了一下中文翻译,看的不是很明白,所以才有自己翻译的打算,当然能力有限,文中或有错漏,欢迎指正. 文末会有几个小问题,大家不妨一起思考一下 ...
- 【nginx下对服务器脚本php的支持】
安装php7 下载地址:https://secure.php.net/downloads.php这里下载的是:wget http://ar2.php.net/distributions/php ...
- Oracle错误记录
1 SQLPlus无法登陆oracle,PLSql可以登陆,报错ORA-12560 环境变量 右击计算机属性-->高级系统设置-->高级-->环境变量-->系统变量--> ...
- P2347 砝码称重
P2347 砝码称重 题目描述 设有1g.2g.3g.5g.10g.20g的砝码各若干枚(其总重<=1000), 输入输出格式 输入格式: 输入方式:a1 a2 a3 a4 a5 a6 (表示1 ...
- Entity Framework + WCF 远程调用出错
在使用Entity Framework中使用WCF,在程序中调用服务一直报错,我一直以为是WCF的哪个地方的配置有问题,找来找去,一直没有解决. 最后在网上找到一篇文章 ...
- How to find your web part
When we deploy a web part, we can find it on any pages through the follow steps: Firstly, ...
- 深入浅出 Webpack
深入浅出 Webpack 评价 Webpack 凭借强大的功能与良好的使用体验,已经成为目前最流行,社区最活跃的打包工具,是现代 Web 开发必须掌握的技能之一.作者结合自身的实战经验,介绍了 Web ...
- 基于阿里云服务器Linux系统部署JavaWeb项目
前段时间刚完成一个JavaWeb项目,想着怎么部署到服务器上,边学边做,花了点时间终于成功部署了,这里总结记录一下过程中所遇到的问题及解决方法.之所以选择阿里云,考虑到它是使用用户最多也是最广泛的云服 ...
- Qt 贪吃蛇小游戏
简单的实现了走和变大的样子,剩下的还在完善 贴代码 #include "mainwindow.h" #include "ui_mainwindow.h" #in ...