題解:洛谷 CF2091E Interesting Ratio

思路推導

我們先對 32 32 32 96 96 96 進行二進制拆分。

相同部分(用 α \alpha α 表示): 5 5 5 2 2 2

不同部分(用 β \beta β 表示): 1 1 1 3 3 3

gcd ? ( 32 , 96 ) \gcd(32,96) gcd(32,96) 就等于 α \alpha α,即 32 32 32

lcm ? ( 32 , 96 ) = α × β \operatorname{lcm}(32,96)=\alpha\times \beta lcm(32,96)=α×β,即 96 96 96

根據常識,兩個數字相乘不可能為質數,除非是 1 1 1 乘上一個質數

也就是說, b b b a a a 的倍數,且 b a \dfrac{b}{a} ab? 是一個質數。

歐拉篩或埃氏篩找出 [ 1 , 1 0 7 ] [1,10^7] [1,107] 范圍內的所有質數,隨后枚舉 1 1 1 n n n,記作 a a a

對于每一個 a a a,枚舉每個質數 x i x_i xi?,如果 x i × a > n x_i\times a>n xi?×a>n,那么退出本次循環,否則累加答案。

優化

可以發現,對于每個 a a a,可以直接推算出它對答案的貢獻。

二分查找,找出質數中第一個大于 ? n a ? \left\lfloor\dfrac{n}{a}\right\rfloor ?an?? 的位置 p p p,它對答案的貢獻為 p ? 1 p-1 p?1

實現

#include<bits/stdc++.h>
using namespace std;
#define int long long
int t,n,cnt,prime[10000005];
bool vis[10000005];
void ct(){vis[0]=vis[1]=true;for(int i=2;i<=10000000;i++){if(!vis[i]){prime[++cnt]=i;}for(int j=1;j<=cnt&&i*prime[j]<=10000000;j++){vis[i*prime[j]]=true;if(!(i%prime[j])){break;}}}
}
signed main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);ct();for(cin>>t;t;t--){cin>>n;int ans=0;for(int i=1;i<=n;i++){ans+=upper_bound(prime+1,prime+cnt+1,n/i)-prime-1;}cout<<ans<<'\n';}return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/903892.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/903892.shtml
英文地址,請注明出處:http://en.pswp.cn/news/903892.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux安裝配置PostgreSQL

環境&#xff1a;centos7、SpringBoot、PostgreSQL15 PostgreSQL: Linux downloads (Red Hat family) PostgreSQL安裝 1.安裝 PostgreSQL Yum 倉庫 RPM 包 sudo rpm -ivh https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noar…

docker安裝jenkins v2.504.1集群

1 概述 Jenkins是一款開源的、基于Java開發的持續集成&#xff08;CI&#xff09;與持續交付&#xff08;CD&#xff09;工具&#xff0c;旨在通過自動化構建、測試和部署流程&#xff0c;提升軟件開發效率與質量。 ? 1.1 核心功能與特點 持續集成與交付? Jenkins支持自動化…

5月2日日記

今天看了爸爸推薦的書&#xff0c;叫&#xff1a;“高效能人士的七個習慣” 現在剛看完50頁&#xff0c;感覺確實有點東西&#xff0c; 七個習慣分別是&#xff1a; 個人層面1積極主動 2要事第一 3以終為始 社交層面 4知彼解己5 統效綜合 6雙贏思維 7不斷更新 目前還沒有…

Aws S3上傳優化

上傳大約 3.4GB 的 JSON 文件&#xff0c;zip算法壓縮后約為 395MB&#xff0c;上傳至 S3 效率優化&#xff0c;有一些優化方案可以提高上傳速率。下面是幾種可能的優化方式&#xff0c;包括選擇壓縮算法、調整上傳方式、以及其他可能的方案。 方案 1. 選擇更好的壓縮算法 壓…

CAD(計算機輔助設計)基礎知識點整理

以下是CAD&#xff08;計算機輔助設計&#xff09;的基礎知識點整理&#xff0c;涵蓋核心概念、操作技巧和行業規范&#xff0c;適合新手學習和參考&#xff1a; 一、CAD基本概念 什么是CAD ? 利用計算機技術進行設計和繪圖的工具&#xff0c;廣泛應用于機械、建筑、電子等領…

重構之道:識別并替換不合適使用的箭頭函數

1、引言 JavaScript 自 ES6 引入了箭頭函數(Arrow Function)后,因其簡潔的語法和對 this 的詞法綁定機制,迅速成為開發者喜愛的寫法之一。然而,并不是所有場景都適合使用箭頭函數。 在實際開發中,我們常常會因為追求代碼簡潔而忽視其潛在問題,例如: this 指向錯誤不適…

[英語單詞] from under

最近在看RCU的資料&#xff0c;讀到下面的一句&#xff0c;感覺總是特別怪怪的&#xff0c;就是從單詞的組合角度&#xff0c;記錄一下。 Use rcu_read_lock() and rcu_read_unlock() to ensure that the structure does not get deleted out from under us。 意思是我們還在使…

Python 中 DAO 層使用泛型的探索

方法一&#xff1a; from types import UnionType from typing import TypeVar, Generic, TypeModelT TypeVar(ModelT)def _new_cls_with_grm_generic_args(cls, __item):new_cls type(f"{cls.__name__}[{__item.__name__}]", (cls,), {})new_cls._grm_generic_ar…

Cesium 環境搭建

一、前提條件 1. **安裝 Node.js** - 訪問 [Node.js 官方網站](https://nodejs.org/)&#xff0c;下載并安裝適合你操作系統的版本。Node.js 用于運行本地開發服務器和安裝依賴。 2. **安裝 Vue CLI** - Vue CLI 是一個用于快速開發 Vue.js 項目的工具。在終端中運行以下…

DarkGS:論文解讀與全流程環境配置及數據集測試【基于Ubuntu20.04 】【2025最新實戰無坑版!!】

一、背景及意義 DarkGS是一個創新性的研究項目&#xff0c;旨在解決機器人在黑暗或低光照環境中探索的問題。傳統的3D重建和視覺定位系統在光照條件不佳時表現不佳&#xff0c;這嚴重限制了機器人在黑暗環境中的應用&#xff0c;如夜間救援、深海探索或洞穴勘測等場景。 這項工…

(八)RestAPI 毛子(Unit Testing/Integration)

文章目錄 項目地址一、Unit Testing1.1 創建X unit 測試項目1. 創建項目目錄2. 管理包1.2 創建CreateEntryDtoValidator測試1.3 創建CreateEntryDtoValidator測試二、Integration test2.1 創建Integration test環境1. 安裝所需要的包2.2 配置基礎設置1. 數據庫鏈接DevHabitWebA…

設計模式--橋接模式詳解

橋接模式&#xff08;bridge pattern&#xff09; 橋接模式時將抽象部分與它的實現部分分離&#xff0c;使他們可以獨立的變化。它是一種對象結構型模式&#xff0c;又稱為柄體&#xff08;Handle and Body&#xff09;模式或者接口&#xff08;interface&#xff09;模式&…

關于 live555延遲優化之緩存區優化“StreamParser::afterGettingBytes() warning: read”” 的解決方法

若該文為原創文章&#xff0c;轉載請注明原文出處 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/146354088 長沙紅胖子Qt&#xff08;長沙創微智科&#xff09;博文大全&#xff1a;開發技術集合&#xff08;包含Qt實用技術、樹莓派、三維、OpenCV…

Vite 動態導入靜態資源與自動依賴發現實戰解析

一、Vite 動態導入靜態資源的實現方案 在 Vite 中&#xff0c;動態加載圖片、JSON 等靜態資源是高頻需求&#xff0c;但動態路徑拼接可能導致構建失敗或資源未識別。以下結合示例代碼&#xff0c;分析三種實現方案&#xff1a; 1. 方案一&#xff1a;new URL 動態路徑轉換 通…

在matlab中使用UAV123官方toolkits測試自己的數據集

一、前言 最近需要將自己的跟蹤代碼在自己拍攝的數據集上進行測試&#xff0c;這里我選擇使用 UAV123 官方 toolkits 進行配置。首先需要搞清楚這部分代碼是如何運行的&#xff0c;精度圖和成功率圖是如何繪制出來的&#xff0c;然后再將自己的數據集加進去進行測試。 二、UA…

9.idea中創建springboot項目_jdk1.8

9. idea中創建springboot項目_jdk1.8 步驟 1&#xff1a;打開 IntelliJ IDEA 并創建新項目 啟動 IntelliJ IDEA。在歡迎界面&#xff0c;點擊 New Project&#xff08;或通過菜單欄 File > New > Project&#xff09;。 步驟 2&#xff1a;選擇 Maven 項目類型 在左側…

SpringAI實現AI應用-搭建知識庫

SpringAI實戰鏈接 1.SpringAl實現AI應用-快速搭建-CSDN博客 2.SpringAI實現AI應用-搭建知識庫-CSDN博客 概述 想要使用SpringAI搭建知識庫&#xff0c;就要使用SpringAI中的TikaDocumentReader&#xff0c;它屬于ETL&#xff08;提取、轉換、加載&#xff09;框架中的提取&…

內網服務器映射到公網上怎么做?網絡將內網服務轉換到公網上

如何將內網映射到公網&#xff1f;本地局域網的網絡下部署的內網服務地址轉換到公網上連接訪問是大家比較關注的問題&#xff0c;特別是在無公網IP使用的情況下&#xff0c;很多人不知道怎么做。 在沒有公網 IP 的情況下&#xff0c;要將內網映射到公網&#xff0c;以便外網能…

intellij idea最新版git開啟Local Changes

習慣了在idea的git插件里&#xff0c;查看項目已修改的文件&#xff0c;但是新版idea默認不展示了&#xff0c;用起來很難受。 參考網上教程開啟方法如下&#xff1a; 1. 確保安裝Git Modal Commit Interface插件并開啟該插件 2. 在Advanced Settings開啟Use Modal Commit In…

??智能制造中的預測性維護:基于深度學習的設備故障預測??

智能制造中的預測性維護:基于深度學習的設備故障預測 引言 在智能制造領域,設備突發故障可能導致巨大的經濟損失。傳統維護方式(如定期檢修或事后維修)往往效率低下且成本高昂。預測性維護(Predictive Maintenance, PdM)通過實時監測設備狀態并預測潛在故障,能夠顯著減…