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;
}


目录
相关文章
蓝桥杯:2019 国赛 例题:求值
蓝桥杯:2019 国赛 例题:求值
84 0
宝藏例题(欧几里得算法+素数的三种境界………)
宝藏例题(欧几里得算法+素数的三种境界………)
宝藏例题(欧几里得算法+素数的三种境界………)
|
9月前
|
存储
每日一题啦(● ̄(エ) ̄●)(尼克切斯定理,等差数列)
每日一题啦(● ̄(エ) ̄●)(尼克切斯定理,等差数列)
40 0
|
Python
牛客刷题之数学基础-约数
牛客刷题之数学基础-约数
68 0
|
C语言 C++
【蓝桥杯刷题】坑爹的负进制转换
【蓝桥杯刷题】坑爹的负进制转换
88 0
|
Python
【基础入门题009】求五位的质回文数
【基础入门题009】求五位的质回文数
101 0
数学知识-约数
数学知识-约数
|
C++
【寒假每日一题】AcWing 4728. 乘方
目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解
162 0
蓝桥杯国赛 小数第n位(数论)
蓝桥杯国赛 小数第n位(数论)
蓝桥杯国赛 小数第n位(数论)
|
知识图谱 Python
Python初级实现几个简单的经典案例,斐波那契数列、九九乘法表、回文素数、百钱百鸡【第一课】
Python模拟斐波那契数列输出,编写程序,输出九九乘法表,Python实现百钱百鸡,求 2-1000内的所有回文素数,利用递归实现1+2+3+…100
224 1
Python初级实现几个简单的经典案例,斐波那契数列、九九乘法表、回文素数、百钱百鸡【第一课】