【P7071 [CSP-J2020] 優秀的拆分 - 洛谷 https://www.luogu.com.cn/problem/P7071】

題目

P7071 [CSP-J2020] 優秀的拆分 - 洛谷 https://www.luogu.com.cn/problem/P7071
1
2

代碼

#include <bits/stdc++.h>
using namespace std;
const int N=1e7+1;
int d;
vector<int> v;
bool k[N];
bool fen(int x){if(x==0)return 1;//能拆分完 for(int i=x;i>x/2;i--){//從大到小嘗試拆分,其實該區間只有一個數是2的冪//因為是2的冪,要么是x,要么就大于x/2。//折半,每次只有1個,時間復雜度O(logN) if(k[i]){//該加數得是2的冪 v.push_back(i);//放進容器 if(fen(x-i))return 1;//繼續遞歸判斷是否能拆分完else v.pop_back();//否則取消該加數}	}return 0;//不能拆分完 
}
int main(){//freopen("data.cpp","r",stdin);for(int i=2;i<=N;i*=2)k[i]=1;//得到1到10^7間所有的2的冪 cin>>d;if(fen(d))for(int i=0;i<v.size();i++)cout<<v[i]<<" ";//能拆分,輸出所有數 else cout<<"-1";return 0;
}

總結

  1. N=107數據量大,時間復雜度起碼得O(N)
  2. 用bool k[N]記住哪些數是2的冪有效提高效率。
  3. 只想著多分支遞歸拆分for(int i=x;i>x/2;i–),沒想到這個區間只可能有一個數是2的冪。如果x是,則不包括x/2。這樣每層折半,時間復雜度就是O(logN)。
  4. if(fen(i))如果最后能拆分到0就ok。

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

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

相關文章

從ioutil到os:Golang在線客服聊天系統文件讀取的遷移實踐

了解更多&#xff0c;搜索"程序員老狼"作為一名Golang開發者&#xff0c;我最近在維護一個客服系統時遇到了一個看似簡單卻值得深思的問題&#xff1a;如何將項目中遺留的ioutil.ReadFile調用遷移到現代的os.ReadFile。這看似只是一個簡單的函數替換&#xff0c;但背…

Python UI自動化測試Web frame及多窗口切換

這篇文章主要為大家介紹了Python UI自動化測試Web frame及多窗口切換&#xff0c;有需要的朋友可以借鑒參考下&#xff0c;希望能夠有所幫助&#xff0c;祝大家多多進步&#xff0c;早日升職加薪 一、什么是frame&frame切換&#xff1f; frame&#xff1a;HTML頁面中的一…

工業相機基本知識解讀:像元、幀率、數據接口等

工業相機&#xff08;Industrial Camera&#xff09;是一種專門為工業自動化和機器視覺應用而設計的成像設備&#xff0c;它不同于消費類相機&#xff08;如手機、單反&#xff09;&#xff0c;主要追求的是成像穩定性、長時間可靠性、實時性和精確性。它通常與鏡頭、光源、圖像…

RTC之神奇小鬧鐘

&#x1f3aa; RTC 是什么&#xff1f;—— 電子設備的“迷你生物鐘”想象一下&#xff1a;你晚上睡覺時&#xff0c;手機關機了。但當你第二天開機&#xff0c;它居然知道現在幾點&#xff01;這就是 RTC&#xff08;Real-Time Clock&#xff0c;實時時鐘&#xff09; 的功勞&…

判斷IP是否屬于某個網段

判斷IP是否屬于某個網段判斷一個IP是否是否屬于某個CIDR網段&#xff0c;核心是比較IP與網段的網絡位是否一致&#xff0c;步驟如下&#xff1a; 一、明確CIDR網段的兩個關鍵信息 假設要判斷的IP是 IPx&#xff0c;目標網段是 CIDR 網段地址/n&#xff08;例如 192.168.1.0/24…

Python day50

浙大疏錦行 python day50. 在預訓練模型&#xff08;resnet18&#xff09;中添加cbam注意力機制&#xff0c;需要修改模型的架構&#xff0c;同時應該考慮插入的cbam注意力機制模塊的位置&#xff1b; import torch import torch.nn as nn from torchvision import models# 自…

VPS海外節點性能監控全攻略:從基礎配置到高級優化

在全球化業務部署中&#xff0c;VPS海外節點的穩定運行直接影響用戶體驗。本文將深入解析如何構建高效的性能監控體系&#xff0c;涵蓋網絡延遲檢測、資源閾值設置、告警機制優化等核心環節&#xff0c;幫助運維人員實現跨國服務器的可視化管控。 VPS海外節點性能監控全攻略&am…

C語言初學者筆記【結構體】

文章目錄一、結構體的使用1. 結構體聲明2. 變量創建與初始化3. 特殊聲明與陷阱二、內存對齊1. 規則&#xff1a;2. 示例分析&#xff1a;3. 修改默認對齊數&#xff1a;三、結構體傳參四、結構體實現位段1. 定義2. 內存分配3. 應用場景4. 跨平臺問題&#xff1a;5. 注意事項&am…

基于XGBoost算法的數據回歸預測 極限梯度提升算法 XGBoost

一、作品詳細簡介 1.1附件文件夾程序代碼截圖 全部完整源代碼&#xff0c;請在個人首頁置頂文章查看&#xff1a; 學行庫小秘_CSDN博客?編輯https://blog.csdn.net/weixin_47760707?spm1000.2115.3001.5343 1.2各文件夾說明 1.2.1 main.m主函數文件 該MATLAB 代碼實現了…

數據安全系列4:常用的對稱算法淺析

常用的算法介紹 常用的算法JAVA實現 jce及其它開源包介紹、對比 傳送門 數據安全系列1&#xff1a;開篇 數據安全系列2&#xff1a;單向散列函數概念 數據安全系列3&#xff1a;密碼技術概述 時代有浪潮&#xff0c;就有退去的時候 在我的博客文章里面&#xff0c;其中…

云計算學習100天-第26天

地址重寫地址重寫語法——關于Nginx服務器的地址重寫&#xff0c;主要用到的配置參數是rewrite 語法格式&#xff1a; rewrite regex replacement flag rewrite 舊地址 新地址 [選項]地址重寫步驟&#xff1a;#修改配置文件(訪問a.html重定向到b.html) cd /usr/local/ngin…

【Python辦公】字符分割拼接工具(GUI工具)

目錄 專欄導讀 項目簡介 功能特性 ?? 核心功能 1. 字符分割功能 2. 字符拼接功能 ?? 界面特性 現代化設計 用戶體驗優化 技術實現 開發環境 核心代碼結構 關鍵技術點 使用指南 安裝步驟 完整代碼 字符分割操作 字符拼接操作 應用場景 數據處理 文本編輯 開發輔助 項目優勢 …

Windows 命令行:dir 命令

專欄導航 上一篇&#xff1a;Windows 命令行&#xff1a;Exit 命令 回到目錄 下一篇&#xff1a;MFC 第一章概述 本節前言 學習本節知識&#xff0c;需要你首先懂得如何打開一個命令行界面&#xff0c;也就是命令提示符界面。鏈接如下。 參考課節&#xff1a;Windows 命令…

軟考高級--系統架構設計師--案例分析真題解析

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄前言試題一 軟件架構設計一、2019年 案例分析二、2020年 案例分析三、2021年 案例分析四、2022年 案例分析試題二 軟件系統設計一、2019年 案例分析二、2020年 案例分…

css中的性能優化之content-visibility: auto

content-visibility: auto的核心機制是讓瀏覽器智能跳過屏幕外元素的渲染工作&#xff0c;包括布局和繪制&#xff0c;直到它們接近視口時才渲染。這與虛擬滾動等傳統方案相比優勢明顯&#xff0c;只需要一行CSS就能實現近似效果。值得注意的是必須配合contain-intrinsic-size屬…

通過uniapp將vite vue3項目打包為android系統的.apk包,并實現可自動升級功能

打包vue項目,注意vite.config.ts文件和路由文件設置 vite.config.ts,將base等配置改為./ import {fileURLToPath, URL } from node:urlimport {defineConfig } from vite import vue from @vitejs/plugin-vue import AutoImport from unplugin-auto-import/vite import Com…

經營幫租賃經營板塊:解鎖資產運營新生態,賦能企業增長新引擎

在商業浪潮奔涌向前的當下&#xff0c;企業資產運營與租賃管理的模式不斷迭代&#xff0c;“經營幫” 以其租賃經營板塊為支點&#xff0c;構建起涵蓋多元業務場景、適配不同需求的生態體系&#xff0c;成為眾多企業破局資產低效困局、挖掘增長新動能的關鍵助力。本文將深度拆解…

C語言---編譯的最小單位---令牌(Token)

文章目錄C語言中令牌幾類令牌是編譯器理解源代碼的最小功能單元&#xff0c;是編譯過程的第一步。C語言中令牌幾類 1、關鍵字&#xff1a; 具有固定含義的保留字&#xff0c;如 int, if, for, while, return 等。 2、標識符&#xff1a; 由程序員定義的名稱&#xff0c;用于變…

機器學習 | Python中進行特征重要性分析的9個常用方法

在Python中,特征重要性分析是機器學習模型解釋和特征選擇的關鍵步驟。以下是9種常用方法及其實現示例: 1. 基于樹的模型內置特征重要性 原理:樹模型(如隨機森林、XGBoost)根據特征分裂時的純度提升(基尼不純度/信息增益)計算重要性。 from sklearn.ensemble import Ra…

心路歷程-了解網絡相關知識

在做這個題材的時候&#xff0c;考慮的一個點就是&#xff1a;自己的最初的想法&#xff1b;可是技術是不斷更新的&#xff1b; 以前的材料會落后&#xff0c;但是萬變不能變其中&#xff1b;所以呈現出來的知識點也相對比較老舊&#xff0c;為什么呢&#xff1f; 因為最新的素…