遞歸實現指數型枚舉


title: 遞歸實現指數型枚舉
date: 2023-12-10 19:29:20
tags: 遞歸
catgories: 算法進階指南

—> 傳送門

題目大意

從 1 ~ n n n n n n 個整數隨機選取任意多個,輸出所有可能的選擇方案

思路

這等價于每個整數可以選或者不選,所有的方案總數共有 2 n 2 ^ n 2n 種。我們用遞歸來進行求解。在每一次的遞歸當中分別嘗試 或者 不選 兩條分支,將尚未確定的整數數量減少 1 1 1,從而轉化為一個規模更小的同類問題

時間復雜度

2 n 2 ^ n 2n

#include<bits/stdc++.h>
using namespace std;typedef long long LL;const int N = 1e5 + 10;pair<string,int> a[N];
int n;
vector<int> vec;
void calc(int x)
{if(x == n + 1){for(auto v : vec) cout << v << ' ';cout << endl;return;}calc(x + 1);//不選vec.push_back(x);calc(x + 1);//選vec.pop_back();//還原現場
}
int main()
{cin >> n;calc(1);return 0;
} 

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

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

相關文章

Spring Boot的日志

打印日志 打印日志的步驟: ? 在程序中得到日志對象. ? 使用日志對象輸出要打印的內容 在程序中得到日志對象 在程序中獲取日志對象需要使用日志工廠LoggerFactory,代碼如下: package com.example.demo;import org.slf4j.Logger; import org.slf4j.LoggerFactory;public c…

STM32——繼電器

繼電器工作原理 單片機供電 VCC GND 接單片機&#xff0c; VCC 需要接 3.3V &#xff0c; 5V 不行&#xff01; 最大負載電路交流 250V/10A &#xff0c;直流 30V/10A 引腳 IN 接收到 低電平 時&#xff0c;開關閉合。

Go Fyne 入門

Fyne是一個用于創建原生應用程序的UI工具包&#xff0c;它簡單易用&#xff0c;并且支持跨平臺。以下是一個簡單的Fyne教程&#xff0c;幫助你入門&#xff1a; 1. 安裝Fyne 首先&#xff0c;確保你已經安裝了Go語言。然后&#xff0c;在終端中運行以下命令來安裝Fyne&#x…

android-xml語法

xml解析器 Android的XML文件語法是由Android系統中的解析器解析的。具體來說&#xff0c;Android使用了一個名為"Android Asset Packaging Tool (AAPT)"的工具來解析和處理XML文件。AAPT負責將XML文件編譯為二進制格式&#xff0c;并在構建過程中將其打包到Android應…

第2節:Vue3 模板語法

Vue3 的模板語法主要包括以下幾個部分&#xff1a; 插值表達式&#xff1a;使用雙大括號 {{ }} 包裹變量&#xff0c;可以直接在模板中顯示變量的值。 <div>{{ message }}</div>指令&#xff1a;以 v- 開頭&#xff0c;后面跟一個自定義的名字&#xff0c;用于操…

從Centos-7升級到Centos-Stream-8

如果在正式環境升級&#xff0c;請做好數據備份以及重要配置備份&#xff01;因為升級會造一部分應用被卸載。 注意&#xff1a;升級前請備份好數據&#xff0c;升級可能會導致ssh的root用戶無法登陸、網卡名稱發生改變、引導丟失無法開機等問題。 1.安裝epel源 yum -y install…

【Spring教程20】Spring框架實戰:AOP(面對切面編程)知識總結

歡迎大家回到《Java教程之Spring30天快速入門》&#xff0c;本教程所有示例均基于Maven實現&#xff0c;如果您對Maven還很陌生&#xff0c;請移步本人的博文《如何在windows11下安裝Maven并配置以及 IDEA配置Maven環境》&#xff0c;本文的上一篇為《利用 AOP通知獲取數據代碼…

軟件測試(接口測試業務場景測試)

軟件測試 手動測試 測試用例8大要素 編號用例名稱&#xff08;標題&#xff09;模塊優先級預制條件測試數據操作步驟預期結果 接口測試&#xff08;模擬http請求&#xff09; 接口用例設計 防止漏測方便分配工具&#xff0c;評估工作量和時間接口測試測試點 功能 單接口業…

華為OD機試真題-字符串變換最小字符串-2023年OD統一考試(C卷)

題目描述: 給定一個字符串s,最多只能進行一次變換,返回變換后能得到的最小字符串(按照字典序進行比較)。變換規則:交換字符串中任意兩個不同位置的字符。 輸入描述:一串小寫字母組成的字符串s 輸出描述:按照要求進行變換得到的最小字符串 補充說明:s是都是小寫字符組成…

一臺是阿里云,一臺是騰訊云,一臺是華為云,一臺是百度云等多種公有云混合安裝K8S集群

1. 修改主機名稱和添加hosts #永久修改主機名 hostnamectl set-hostname master && bash #在master01上操作&#xff0c;阿里云服務器 hostnamectl set-hostname worker1 && bash #在node01上操作&#xff0c;阿里騰訊云服務器 hostnamectl set-ho…

利用Microsoft Visual Studio Installer Projects打包安裝包

利用Microsoft Visual Studio Installer Projects打包安裝包 具體步驟步驟1&#xff1a;安裝擴展步驟2&#xff1a;創建 Setup 項目步驟3&#xff1a;設置屬性步驟4&#xff1a;添加輸出步驟5&#xff1a;添加文件步驟6&#xff1a;添加桌面快捷方式步驟7&#xff1a;添加菜單快…

【Table/SQL Api】Flink Table/SQL Api表轉流讀取MySQL

引入依賴 jdbc依賴 flink-connector-jdbc mysql-jdbc-driver 操作mysql數據庫 <!-- Flink-Connector-Jdbc --><dependency><groupId>org.apache.flink</groupId><artifactId>flink-connector-jdbc_${scala.binary.version}</artifactId>…

Ubuntu上安裝 Git

在 Ubuntu 上安裝 Git 可以通過包管理器 apt 進行。以下是在 Ubuntu 上安裝 Git 的步驟&#xff1a; 打開終端。你可以按 Ctrl Alt T 組合鍵來打開終端。 運行以下命令以確保你的系統的軟件包列表是最新的&#xff1a; sudo apt update 安裝 Git&#xff1a; sudo apt inst…

RT-DERT改進策略:AKConv即插即用,輕松漲點

摘要 提出了一種算法&#xff0c;用于生成任意尺寸卷積核的初始采樣坐標。與常規卷積核相比&#xff0c;提出的AKConv實現了不規則卷積核的函數來提取特征&#xff0c;為各種變化目標提供具有任意采樣形狀和尺寸的卷積核&#xff0c;彌補了常規卷積的不足。在COCO2017和VisDro…

Anaconda文件目錄(打開默認路徑)更改

Anaconda 文件默認目錄更改 每次打開 Anaconda 都在C盤怎么辦&#xff0c;如何改為D盤或是其他盤符位置&#xff1f; 可以進行下述操作。 1. 單次修改路徑 單次修改路徑&#xff1a;在 exe 文件(Anaconda Prompt (Anaconda_py))中寫入下面代碼&#xff1a; jupyter notebook …

STM32 標準外設SPL庫、硬件抽象層HAL庫、低層LL庫區別?

1、STM32 之一 HAL庫、標準外設庫、LL庫_ZCShou的博客-CSDN博客_ll庫&#xff08;仔細閱讀&#xff09; 2、STM32標準外設庫、 HAL庫、LL庫 - King先生 - 博客園 3、STM32 之 HAL庫_戈 揚的博客&#xff08;仔細閱讀&#xff09; 4、STM32 LL 為什么比 HAL 高效&#xff1…

MAC下加載動態庫

MAC引用動態庫時報錯&#xff1a; 查看一個可執行文件或者動態庫引用的第三方庫路徑&#xff1a;otool -L xxx.dylib 第一行是動態庫的安裝名稱&#xff08;INSTALL Name&#xff09;。當另一個客戶端鏈接到這個 dylib 時&#xff0c;dylib 的安裝 ID 會被復制到客戶端中作為…

selenium庫的使用

來都來了給我點個贊收藏一下再走唄&#x1f339;&#x1f339;&#x1f339;&#x1f339;&#x1f339; 目錄 一、下載需要用到的python庫selenium 二、selenium的基本使用 1.在python代碼引入庫 2.打開瀏覽器 3.元素定位 1&#xff09;通過id定位 2&#xff09;通過標…

一文掌握Ascend C孿生調試

1 What&#xff0c;什么是孿生調試 Ascend C提供孿生調試方法&#xff0c;即CPU域模擬NPU域的行為&#xff0c;相同的算子代碼可以在CPU域調試精度&#xff0c;NPU域調試性能。孿生調試的整體方案如下&#xff1a;開發者通過調用Ascend C類庫編寫Ascend C算子kernel側源碼&am…

Spring boot 發送郵箱

一、簡介 Spring 提供了非常好用的 JavaMailSender 接口實現郵件發送。在 SpringBoot 的 Starter 模塊中也為此提供了自動化配置。下面通過實例看看如何在 SpringBoot 中使用 JavaMailSender 發送郵件。 org.springframework.mail 是Spring Framework對郵件支持的基礎包&#x…