數字轉換(c++)

【題目描述】

如果一個數?xx?的約數和?yy?(不包括他本身)比他本身小,那么?xx?可以變成?yy?,yy?也可以變成?xx?。例如?44?可以變為?33?,11?可以變為?77?。限定所有數字變換在不超過?nn?的正整數范圍內進行,求不斷進行數字變換且不出現重復數字的最多變換步數。

【輸入】

輸入一個正整數?nn?。

【輸出】

輸出不斷進行數字變換且不出現重復數字的最多變換步數。

【輸入樣例】

7

【輸出樣例】

3

【提示】

樣例說明

一種方案為?4→3→1→74→3→1→7?。

數據范圍與提示:

對于?100100?的數據,1≤n≤500001≤n≤50000?。

#include<bits/stdc++.h>
using namespace std;
const int N = 50010, M = 2 * N;
int h[N], e[N], ne[M], idx;
int sum[N];
bool st[N]; //記錄樹根
int n;
int ans;
void add(int a, int b) {e[idx] = b;ne[idx] = h[a];h[a] = idx++;
}//a,b間加邊(a單加b邊)
int dfs(int u) {int d1 = 0, d2 = 0;//最長 次長 for (int i = h[u]; i != -1; i = ne[i]) {//枚舉所有u的下一個節點 int j = e[i];//下一個節點 int d = dfs(j) + 1;//找到各種的最長值 if (d >= d1) d2 = d1, d1 = d;else if (d > d2) d2 = d;//改變最大次大 }ans = max(ans, d1 + d2);//最大答案 return d1;//返回最長值 
}
int main() {cin >> n;memset(h, -1, sizeof h);for (int i = 1; i <= n; i++) {for (int j = 2; j <= n / i; j++) {sum[j * i] += i;}}//求每個數的約數和 for (int i = 2; i <= n; i++) {if (i > sum[i]) {add(sum[i], i);//y->xst[i] = true;//x可以作為根 }//約數和比自身小}for (int i = 1; i <= n; i++) {if (!st[i]) {//i不能作為根 dfs(i);}}cout << ans << endl;return 0;
}

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

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

相關文章

如何同步fork的更新

當你fork了一個代碼倉庫后&#xff0c;要將其與原始源碼保持同步&#xff0c;可以按照以下步驟進行操作&#xff1a; 1. 添加原始倉庫作為遠程源 在本地命令行中&#xff0c;進入到你fork后的代碼倉庫目錄&#xff0c;然后使用以下命令添加原始倉庫&#xff08;通常稱為upstr…

CentOS系統下安裝tesseract-ocr5.x版本

CentOS系統下安裝tesseract-ocr5.x版本 安裝依賴包&#xff1a; yum update -y yum install autoconf automake libtool libjpeg-devel libpng-devel libtiff-devel zlib-devel yum install automake libtool bzip2 -y手動編譯安裝GCC&#xff08;因系統默認安裝的GCC版本比較…

MyBatis打印SQL日志的配置

配置MyBatis打印日志的步驟如下&#xff0c;支持多種日志框架&#xff08;如Logback、Log4j2等&#xff09;&#xff1a; 一、選擇日志框架并添加依賴&#xff08;以常見組合為例&#xff09; 1. Logback&#xff08;推薦&#xff09; <!-- Maven 依賴 --> <depende…

SpringCould微服務架構之Docker(3)

1&#xff09;什么是鏡像和容器&#xff1f; 2&#xff09;DockerHub&#xff1a; 3&#xff09;docker的架構如下&#xff1a;

智慧高速,安全護航:視頻監控平臺助力高速公路高效運營

隨著我國高速公路里程的不斷增長&#xff0c;交通安全和運營效率面臨著前所未有的挑戰。傳統的監控方式已難以滿足現代化高速公路管理的需求&#xff0c;而監控視頻平臺的出現&#xff0c;則為高速公路的安全運營提供了強有力的技術支撐。高速公路視頻監控聯網解決方案 高速公路…

vue對文件進行加密,后臺解密后保存

為什么要做加密解密&#xff1f;主要是避免第三方檢測系統&#xff08;WAF&#xff09;檢測出文件有問題&#xff0c;但是文件是用戶上傳的&#xff0c;我們控制不了這些文件&#xff0c;所以主要是通過對用戶上傳文件進行加密&#xff0c;后臺解密后存儲。 前端&#xff1a; …

AI 在測試中的應用:從自動化到智能化的未來

閱讀原文 在上一篇中&#xff0c;我們探討了測試左移與右移如何構建質量保障的全流程閉環。現在&#xff0c;我們將目光投向更前沿的領域——AI在測試中的應用。這不僅是技術的演進&#xff0c;更是測試理念的革命&#xff1a;從"自動化執行"到"智能決策"…

Python:計算機二級:簡單應用

文章目錄 簡單應用第一題第二題第三題第四題題型共同特點核心知識點講解解題通用方法步驟 操作的難點1.數據的統計2.數據的篩選1. **條件判斷篩選**2. **結合文件操作篩選**3. **多條件組合篩選** 類似題目其它一題 簡單應用 第一題 題目 在考生文件夾下的PY202.py文件中&…

SQL Server 2022常見問題解答

以下是SQL Server 2022的常見問題解答,按主題分類整理: 一、安裝與升級 SQL Server 2022的系統要求是什么? 支持的操作系統:Windows Server 2016及以上、Linux(Ubuntu 20.04/22.04, RHEL 8/9等)。內存:至少4GB(建議8GB+)。磁盤空間:6GB以上,具體取決于安裝組件。如何…

力扣hot100_二分查找

二分查找 hot100_34.在排序數組中查找元素的第一個和最后一個位置 給你一個按照非遞減順序排列的整數數組 nums&#xff0c;和一個目標值 target。請你找出給定目標值在數組中的開始位置和結束位置。 如果數組中不存在目標值 target&#xff0c;返回 [-1, -1]。 你必須設計…

PostgreSQL詳解

第一章&#xff1a;環境部署與基礎操作 1.1 多平臺安裝詳解 Windows環境 圖形化安裝 下載EnterpriseDB安裝包&#xff08;含pgAdmin&#xff09; 關鍵配置項說明&#xff1a; # postgresql.conf優化項 max_connections 200 shared_buffers 4GB work_mem 32MB 服務管理命…

conda install 慢

針對 Solving environment: failed with initial frozen solve. Retrying with flexible solve 錯誤&#xff0c;以下是綜合解決方案&#xff1a; 一、核心解決方法? ?更新 Conda 至最新版本? 舊版本 Conda 的依賴解析算法可能存在缺陷&#xff0c;執行以下命令升級&#…

# 使用自定義Shell腳本hello快速配置Linux用戶賬戶

使用自定義Shell腳本快速配置Linux用戶賬戶 在學校實驗室管理Linux服務器&#xff0c;或者公司小團隊管理服務器時&#xff0c;大家需要一個能隔離自己服務&#xff0c;但是自己又需要對服務器的完整權限的情形。創建和配置用戶賬戶是一項常見但繁瑣的任務。特別是當你需要頻繁…

Unity Animation的其中一種運用方式

Animation是Unity的舊的動畫系統&#xff0c;先說目的&#xff0c;其使用是為了在UI中播放動效&#xff0c;并且在動效播放結束后接自定義事件而設計的 設計的關鍵點在于&#xff0c;這個腳本不是通過Animation直接播放動畫片段&#xff0c;而是通過修改AnimationState的nor…

matplotlib——南丁格爾玫瑰

南丁格爾玫瑰圖&#xff08;Nightingale Rose Chart&#xff09;&#xff0c;是一種特殊形式的柱狀圖&#xff0c;它以南丁格爾&#xff08;Florence Nightingale&#xff09;命名&#xff0c;她在1858年首次使用這種圖表來展示戰爭期間士兵死亡原因的數據。 它將數據繪制在極坐…

TensorFlow面試題及參考答案

目錄 什么是 TensorFlow 的計算圖?詳細描述 TensorFlow 計算圖的組成結構(節點、邊、會話) 它與動態圖(Eager Execution)的區別是什么?TensorFlow 靜態計算圖與動態圖(Eager Execution)的區別及適用場景是什么? 解釋張量(Tensor)的概念及其在 TensorFlow 中的作用…

6.go語言函數

Go語言中的函數是組織代碼的最小單元&#xff0c;用于封裝一段代碼&#xff0c;完成特定的功能。函數的使用可以減少代碼冗余&#xff0c;提高代碼的可讀性和可維護性。 函數的基本定義和語法 在Go語言中&#xff0c;定義一個函數的基本語法如下&#xff1a; func functionN…

SpringCould微服務架構之Docker(4)

Docker ce是社區版。 安裝docker之前&#xff0c;先安裝yum-util 。 安裝docker之前&#xff0c;一定要先關閉防火墻。

Keepalived 實現高可用方案

Keepalived簡介 ?Keepalived? 是一個基于 ?VRRP&#xff08;Virtual Router Redundancy Protocol&#xff09;協議?的高可用性解決方案&#xff0c;主要用于實現?服務故障自動切換&#xff08;Failover&#xff09;和負載均衡?。通過管理虛擬 IP&#xff08;VIP&#xf…

WPS JS宏編程教程(從基礎到進階)--第二部分:WPS對象模型與核心操作

第二部分&#xff1a;WPS對象模型與核心操作 WPS對象的屬性、方法、集合 工作簿對象常用表達方式工作表對象常用表達方式單元格對象常用表達方式 單元格操作實戰 單元格復制與重定位單元格偏移與尺寸調整 顏色設置專題 索引顏色與RGB顏色按條件動態設置單元格顏色 第二部分&…