题目

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; 因为最新的素…