E-牛牛小数点_牛客练习赛89(数学)

简介: 笔记

E-牛牛小数点_牛客练习赛89 (nowcoder.com)


题目描述

牛牛想和点点交朋友, 于是点点给了牛牛一个问题0.png


数据范围

1 ⩽ T ⩽ 100 , 1 ⩽ l ⩽ r ⩽ 1 0 15


思路

130.png


证明


140.png150.png


代码

#include<bits/stdc++.h>
#include<unordered_map>
#define int long long
#define INF 0x3f3f3f3f
#define INFL 0x3f3f3f3f3f3f3f3f
#define mod 1000000007
#define MOD 998244353
#define rep(i, st, ed) for (int (i) = (st); (i) <= (ed);++(i))
#define pre(i, ed, st) for (int (i) = (ed); (i) >= (st);--(i))
#define debug(x,y) cerr << (x) << " == " << (y) << endl;
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
typedef pair<int, int> PII;
template<typename T> inline T gcd(T a, T b) { return b ? gcd(b, a % b) : a; }
template<typename T> inline T lowbit(T x) { return x & -x; }
//template<typename T> T qmi(T a, T b = mod - 2, T p = mod) { T res = 1; b %= (p - 1 == 0 ? p : p - 1); while (b) { if (b & 1) { res = (LL)res * a % p; }b >>= 1; a = (LL)a * a % p; }return res % mod; }
const int N = 1e5 + 10;
int qmi(int a, int b) {
  int res = 1;
  while (b) {
    if (b & 1)res = (res * a);
    b >>= 1;
    a = (a * a);
  }
  return res;
}
int cal(int r) {
  int res = 0;
  int t2 = log(r) / log(2ll);
  for (int i = 0; i <= t2; ++i) {
    for (int j = 0; qmi(5ll, j) * qmi(2ll, i) <= r; ++j) {
      //debug("i", i);
      //debug("j", j);
      int x = r / (qmi(2ll, i) * qmi(5ll, j));
      x = ((x - x / 2ll - x / 5ll + x / 10ll - 1ll) + MOD) % MOD;
      res = (res + (max(i, j) + 1ll) * x % MOD) % MOD;
    }
  }
  return res % MOD;
}
void solve() {
  int l, r; scanf("%lld%lld", &l, &r);
  cout << (cal(r) - cal(l - 1) + MOD) % MOD << endl;
}
signed main() {
  int _; cin >> _;
  while (_--)
    solve();
  return 0;
}


目录
相关文章
蓝桥杯:最大公约数 2020省赛 例题:既约分数
蓝桥杯:最大公约数 2020省赛 例题:既约分数
67 0
|
6月前
|
机器学习/深度学习
【Acwing积累】第一周(完全数、只出现一次的字符)
【Acwing积累】第一周(完全数、只出现一次的字符)
|
7月前
每日一题(珠玑妙算,两数之和)
每日一题(珠玑妙算,两数之和)
63 1
宝藏例题(欧几里得算法+素数的三种境界………)
宝藏例题(欧几里得算法+素数的三种境界………)
宝藏例题(欧几里得算法+素数的三种境界………)
|
7月前
|
存储
每日一题啦(● ̄(エ) ̄●)(尼克切斯定理,等差数列)
每日一题啦(● ̄(エ) ̄●)(尼克切斯定理,等差数列)
31 0
|
7月前
考研高数之无穷级数题型二:求和函数(题目讲解)
考研高数之无穷级数题型二:求和函数(题目讲解)
124 0
|
C语言 C++
【蓝桥杯刷题】坑爹的负进制转换
【蓝桥杯刷题】坑爹的负进制转换
76 0
【蓝桥杯基础题】2017年省赛—九宫幻方
【蓝桥杯基础题】2017年省赛—九宫幻方
【蓝桥杯基础题】2017年省赛—九宫幻方
|
人工智能 算法 测试技术
【寒假每日一题】AcWing 4644. 求和(补)
目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解
83 0
|
C++
【寒假每日一题】AcWing 4728. 乘方
目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解
148 0