首页 > 其他分享 >jerry99的序列 --binary search, math

jerry99的序列 --binary search, math

时间:2022-09-06 13:55:48浏览次数:91  
标签:prime binary search -- mid int factor tmp LOCAL

 

 


#include <bits/stdc++.h> using namespace std; using i64 = long long; const int N = 1e5 + 10; const int M = N - 10; int tot, vis[N], prime[N]; //#define LOCAL void sieve () { for (int i = 2; i <= M; ++i) { if (!vis[i]) prime[tot++] = i; for (int j = 0; j < tot; ++j) { if (1LL * prime[j] * i > M) break; vis[i * prime[j]] = 1; if (i % prime[j] == 0) break; } } } bool check(int mid, vector<pair<int, int>> &factor) { for (auto it : factor) { int prime = it.first; int cnt = it.second; i64 tmp = 1, res = 0; while (tmp <= mid) { tmp *= prime; res += mid / tmp; } #ifdef LOCAL cout << "res: " << res << "\n"; #endif if (res < cnt) return true; } return false; } int n, m; void solve() { if (n == 1) { cout << m << "\n"; return ; } int l = 1, r = m + 1; vector<pair<int, int>> factor; int tmp = n; for (int i = 0; i < tot && prime[i] * prime[i] <= tmp; ++i) { if (tmp % prime[i] == 0) { int cnt = 0; while (tmp % prime[i] == 0) { cnt++; tmp /= prime[i]; } factor.emplace_back(prime[i], cnt); } } if (tmp > 1) { factor.emplace_back(tmp, 1); } #ifdef LOCAL for (auto [x, y] : factor) { cout << x << ' ' << y << "\n"; } #endif while (l < r) { int mid = l + r >> 1; if (check(mid, factor)) { l = mid + 1; } else { r = mid; } } #ifdef LOCAL cout << "l: " << l << "\n"; #endif cout << m - l + 1 << "\n"; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int t; cin >> t; sieve(); for (; t--;) { cin >> n >> m; solve(); } return 0; }

 

标签:prime,binary,search,--,mid,int,factor,tmp,LOCAL
From: https://www.cnblogs.com/zrzsblog/p/16661510.html

相关文章

  • html+css
    第一章<html><!--解释器--><!DOCTYPEhtml><head> <!--字符集--> <metahttp-equiv="content-type"content="text/html;charset=utf-8"/> <!--刷新跳转--> <meta......
  • 保持健康,适当吃糖,避免糖上瘾——无法戒糖的真正原因:糖比香烟更容易上癮,是不会醉的酒精
    看了一个视频:https://www.bilibili.com/video/BV1L64y1z7e6/?vd_source=f1d0f27367a99104c397918f0cf362b7       ====================================......
  • mysql8 数据库迁移部署的一个常见文件备忘。。
      1、sql_mode=only_full_group_bysql_mode=only_full_group_by Causedby:java.sql.SQLSyntaxErrorException:Expression#1ofSELECTlistisnotinGROU......
  • js之三级联动省市县
    1<!DOCTYPEhtml>2<htmllang="en">34<head>5<metacharset="UTF-8">6<metahttp-equiv="X-UA-Compatible"content="IE=edge">7......
  • SQL 查询数据横向展示结果
    实现效果初始查询结果目标查询结果语句--casewhenSELECTYEAR,MAX(CASEMONTHWHEN'1'THENAMOUNTEND)AS"1",MAX(CASEMONTHWHEN'2'THENAMOUNTEND)......
  • 服务端挂了,客户端的 TCP 连接还在吗?
    作者:小林coding计算机八股文网站:https://xiaolincoding.com大家好,我是小林。如果「服务端挂掉」指的是「服务端进程崩溃」,服务端的进程在发生崩溃的时候,内核会发送FI......
  • docker-compose
    docker-compose简介dockercpmpose是给容器做单机编排的Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。docker-compose将所管理的容......
  • [第二章 web进阶]XSS闯关-1
    定义:跨站脚本(Cross_SiteScripting,简称为XSS或跨站脚本或跨站脚本攻击)是一种针对网站应用程序的安全漏洞攻击技术,是代码注入的一种。它允许恶意用户将代码注入网页,其他......
  • Git 之 revert
    转自:Git之revertrevert可以撤销指定的提交内容,撤销后会生成一个新的commit。1、两种commit:当讨论revert时,需要分两种情况,因为commit分为两种:一种是常规的c......
  • mysql 主从备份原理
    mysql主从备份原理1.1用途及条件mysql主从复制用途实时灾备,用于故障切换读写分离,提供查询服务备份,避免影响业务主从部署必要条件:主库开启binlog日志(设置log-bi......