Codeforces Round #392 (Div. 2)F Geometrical Progression
来源:互联网 发布:金科天启大数据 编辑:程序博客网 时间:2024/06/08 16:32
题目大意:
找出所有长度为n,每一项都在l到r之间的等比数列的个数(q!=1)
解题思路:
其实除了几种特殊情况外,基本都是枚举分子分母互质的分数,考虑到只有两项的时候数量较大,所以单独判断
代码:
#include "iostream"#include "cstdio"#include "math.h"#include "algorithm"#include "string"#include "string.h"#include "vector"#include "map"#include "queue"using namespace std;long long n, l, r;long long pow(long long a, long long x) {long long ans = 1;while (x) {if (x & 1)ans *= a;a *= a;x /= 2;}return ans;}long long gcd(long long a, long long b){return (b>0) ? gcd(b, a%b) : a;}int main() {while (scanf("%lld %lld %lld", &n, &l, &r) != EOF) {if (n == 1) {printf("%lld\n", r - l + 1);}else if (n == 2) {printf("%lld\n", (r - l + 1)*(r - l));}else if (n > 25) {puts("0");}else {long long ans = 0;long long maxnum = pow(2, log(100000000*0.1)/log(2.0) / (n - 1));maxnum = min(maxnum, 3200LL);for (long long i = 1;i <= maxnum;i++) {for (long long j = i + 1;j <= maxnum;j++) {if (gcd(i, j) == 1) {long long a = pow(j, n - 1);long long b = pow(i, n - 1);if (l*a / b > r)continue;ans += (r*b / a) / b - (l - 1) / b;}}}printf("%lld\n", ans * 2);}}return 0;}
0 0
- Codeforces Round #392 (Div. 2)F Geometrical Progression
- Codeforces Round #392 (Div. 2) F. Geometrical Progression(数学)
- Codeforces Round #Pi (Div. 2) C. Geometric Progression dp
- Codeforces Round #Pi (Div. 2) C. Geometric Progression
- Codeforces Round #Pi (Div. 2) C. Geometric Progression (map)
- C. Geometric Progression- Codeforces Round #Pi (Div. 2)-
- Codeforces Round #Pi (Div. 2) —— C-Geometric Progression
- Codeforces Round #156 (Div. 2) C. Almost Arithmetical Progression
- Codeforces Round #224 (Div. 2) C. Arithmetic Progression【构造等差数列】
- Codeforces Round #224 (Div. 2)-C. Arithmetic Progression
- Codeforces Round #277.5 (Div. 2) F
- Codeforces Round #279 (Div. 2) F
- Codeforces Round #279 (Div. 2) F
- Codeforces Round #279 (Div. 2) B F
- Codeforces Round #277.5 (Div. 2)F题
- Codeforces Round #322 (Div. 2) F
- Codeforces Round #377 (Div. 2) F
- Codeforces Round #386 (Div. 2) F
- 串口接收浮点数
- Android Studio代码混淆配置
- 前端学PHP之数组函数
- Select2的Tags使用技巧
- android studio依赖失败解决方案
- Codeforces Round #392 (Div. 2)F Geometrical Progression
- 0150 dubbo-admin管理平台搭建
- ==和equals方法究竟有什么区别
- jquery easyui表单练习
- JavaScript定时器基础
- ruby on rails 新建模型,模型间设置关联,表单验证
- 用中括号[]解析变量的值
- 文章标题测试
- linux 查找命令详解