算法期末函數題

R6-1 可重復選擇的組合數問題

【考核知識點】可重復選擇的組合計數

【問題描述】

有n個不同元素(1<=n<20),每個元素可以選多次,一共需要選出k個元素出來(1<=k<20),問有多少種選取的方法數?

例如,n=3,k=2,可以想象成有3種顏色的球(紅、黃、藍),選出2個來,有如下組合。

(紅、紅)

(紅、黃)

(紅、藍)

(黃、黃)

(黃、藍)

(藍、藍)

組合數共計:6種

再例如,n=2,k=6,可以想象成有2種顏色的球(紅、黃),選出6個來,有如下組合。

(6*紅)

(1*黃、5*紅)

(2*黃、4*紅)

(3*黃、3*紅)

(4*黃、2*紅)

(5*黃、1*紅)

(6*黃)

組合數共計:7種

【輸入格式】

n和k。n和k的含義如前述。

【輸出格式】

從n種元素中,可重復選擇挑選k個的組合數。

【提示】

從n種元素中,可重復選擇挑選k個的組合數。假設第i?種元素選xi?個,則此問題轉化為求方程:

x1?+x2?+…+xn?=k?的非負整數解的個數,xi??可以取0。這個方程由于求解非負整數解(xi?可為0),不易分析,可以轉化為:yi?=xi?+1,則求解?y1?+y2?+…+yn?=k+n?的正整數解的個數(yi??不可為0,需要大于0)。

求解?y1?+y2?+…+yn?=k+n?的正整數解的個數,可以想象成這樣一個場景的問題:

有k+n個數字1,排成一排,則問題等價于把這些“1”分成n個部分,有多少種方法?這就相當于在k+n?1個“候選分隔線”(即1和1之間的空檔)中選出n?1個空檔的方法數。即C(k+n?1,n?1),也是C(k+n?1,k),因為C(k+n?1,n?1)=C(k+n?1,k)。

函數接口定義:

函數接口定義: long long Combination(int n, int k)

接口參數:?n?和?k?都是傳入的參數。?n?和k的值都不超過20,返回值為long long型,表示從n個中選擇k個的組合數(不講順序)。

測試程序樣例:

#include "stdio.h" #include <iostream> #include "stdlib.h" using namespace std; long long permutation(int n, int k); //計算A(n,k),n個中選k個的排列數 long long Combination(int n, int k); //計算C(n,k),n個中選k個的組合數 int main() { int n, k; cin >> n >> k; long long p; //其實,求解C(k+n-1,k)和C(k+n-1,n-1)是相同的,哪個好算算哪個 if(n-1>k) p=Combination(k+n-1,k); else p=Combination(k+n-1,n-1); cout<< p <<endl; return 0; } long long permutation(int n, int k) //計算A(n,k),n個中選k個的排列數 { long long p=1; for(int i=n; i>=n-k+1; i--) p *= i; return p; } /* 請在這里填寫答案 */

輸入樣例#1:

在這里給出一組輸入。例如:

3 2

輸出樣例#1:

在這里給出相應的輸出。例如:

6

輸入樣例#2:

在這里給出一組輸入。例如:

2 6

輸出樣例#2:

在這里給出相應的輸出。例如:

7

代碼長度限制

16 KB

時間限制

400 ms

內存限制

64 MB

C++ (g++)

long long Combination(int n, int k) {if (k > n) return 0; if (k == 0 || k == n) return 1; k = std::min(k, n - k); long long result = 1;for (int i = 1; i <= k; ++i) {result *= n - (k - i);result /= i;}return result;
}

R6-2 最大連續和

【考察知識點】前綴和、暴力法、分治法、動態規劃等,多種方法皆可。

【問題描述】

給一個長度為n的序列a1?,a2?,…,an?,?每個元素ai?(1<=i<=n),為可正可負可零的整數。

求一個連續子序列ai?,ai+1?,…,aj?,1<=i<=j<=n?,使得連續元素段的和ai?+ai+1?+…+aj?最大。

【輸入格式】

第一行n,表示序列的長度,n<100000。

第二行有n個數,為a1?a2?…an?。

【輸出格式】

最大的連續元素段之和,即?max{ai?+ai+1?+…+aj?},1<=i<=j<=n?。

【函數接口定義】

函數接口如下: int maxSum(int a[], int n);

【裁判測試程序】

#include "stdio.h" #include <iostream> #include "stdlib.h" using namespace std; int maxSum(int a[], int n); int main() { int n, a[100000]; cin>>n; if(n>0) { for(int i=1;i<=n;i++) cin>>a[i]; } else return 1; int mxs=maxSum(a, n); cout<<mxs<<endl; return 0; } /* 請在這里填寫答案 */

【輸入樣例】

在這里給出一組輸入。例如:

10
-2 3 -3 2 4 8 6 1 -2 -4

【輸出樣例】

在這里給出相應的輸出。例如:

21

代碼長度限制

16 KB

時間限制

400 ms

內存限制

64 MB

#include <climits> int maxSum(int a[], int n) {int maxSoFar = INT_MIN; int maxEndingHere = 0;  for (int i = 0; i < n; i++) {maxEndingHere += a[i];if (maxSoFar < maxEndingHere)maxSoFar = maxEndingHere;if (maxEndingHere < 0)maxEndingHere = 0;}return maxSoFar;
}

?

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

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

相關文章

監控易V7.6.6.15升級詳解2:設備管理功能

隨著企業IT架構的日益復雜&#xff0c;對設備管理的需求也在不斷提升。為了滿足廣大用戶對于設備管理的高效、精準需求&#xff0c;我們榮幸地宣布監控易系統已完成了一次重要的版本升級。本次升級不僅優化了原有功能&#xff0c;還新增了一系列實用特性&#xff0c;旨在為用戶…

仿qq音樂播放微信小程序模板源碼

手機qq音樂應用小程序&#xff0c;在線音樂播放器微信小程序網頁模板。包含&#xff1a;音樂歌曲主頁、推薦、排行榜、搜索、音樂播放器、歌單詳情等。 仿qq音樂播放微信小程序模板源碼

【ubuntu自啟shell腳本】——在ubuntu中如何使用系統自帶的啟動應用程序設置開機自啟自己的本地shell腳本

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言一、設置開機自啟shell腳本1.使用 gnome-session-properties2.測試的shell例程代碼 總結 前言 在Ubuntu系統中設置開機自啟腳本是一種重要的自動化方法。開機自…

YOLO-World實時開集檢測論文閱讀

論文&#xff1a;《YOLO-World: Real-Time Open-Vocabulary Object Detection》 代碼&#xff1a;https://github.com/AILab-CVC/YOLO-World 1.Abstract 我們介紹了YOLO World&#xff0c;這是一種創新的方法&#xff0c;通過在大規模數據集上進行視覺語言建模和預訓練&#…

js之彈性布局使用方法

彈性布局&#xff08;Flexbox&#xff09;是一種現代化的 CSS 布局方法&#xff0c;它可以讓您更方便地創建響應式和動態布局。在本篇文檔中&#xff0c;我們將介紹彈性布局的基本概念以及如何在項目中使用它。 一、基本概念 容器&#xff08;Container&#xff09;&#xff…

WPF中邏輯樹和視覺樹

在WPF&#xff08;Windows Presentation Foundation&#xff09;中&#xff0c;“邏輯樹”&#xff08;Logical Tree&#xff09;和“可視樹”&#xff08;Visual Tree&#xff09;是兩個重要的概念&#xff0c;它們代表了不同的對象層次結構&#xff0c;用于描述應用程序的組織…

洛谷 [SNCPC2024] 寫都寫了,交一發吧 題解

分析 顯然&#xff0c;兩個相同的數去按位與的結果還是該數。 由于一個代碼可以提交多次&#xff0c;那么可以把得分最高的代碼提交兩次&#xff0c;這樣的得分就是這個代碼的得分&#xff0c;很明顯&#xff0c;這樣是最優的。 Code #include<iostream> using names…

STM32微控制器的SPI存儲解決方案:W25Q64 Flash存儲器深度應用

摘要 在嵌入式系統設計中&#xff0c;存儲解決方案對于數據的持久化至關重要。W25Q64 Flash存儲器以其高效的存儲能力和與SPI總線的兼容性&#xff0c;成為STM32微控制器項目中的優選。本文將深入探討STM32微控制器的SPI存儲解決方案&#xff0c;重點介紹W25Q64 Flash存儲器的…

vue3+antd 實現點擊按鈕彈出對話框

格式1&#xff1a;確認對話框 按鈕&#xff1a; 點擊按鈕之后&#xff1a; 完整代碼&#xff1a; <template><div><a-button click"showConfirm">Confirm</a-button></div> </template> <script setup> import {Mod…

如何查看程序是否在運行-Linux

1.命令 ps aux | grep RiboCode2_manythreads.py2.結果&#xff1a; 2020200 1063124 99.8 19.2 56105444 50796184 pts/0 Sl 18:40 114:36 python RiboCode2_manythreads.py -a ./RiboCode_annot -c config15d.txt -o ./ORFs_15d_final_result --gtf -t 15從輸出結果可以看出…

階段三:項目開發---大數據開發運行環境搭建:任務4:安裝配置Spark集群

任務描述 知識點&#xff1a;安裝配置Spark 重 點&#xff1a; 安裝配置Spark 難 點&#xff1a;無 內 容&#xff1a; Apache Spark 是專為大規模數據處理而設計的快速通用的計算引擎。Spark是UC Berkeley AMP lab (加州大學伯克利分校的AMP實驗室)所開源的類Hadoop …

Bean的管理

1.主動獲取Bean spring項目在需要時&#xff0c;會自動從IOC容器中獲取需要的Bean 我們也可以自己主動的得到Bean對象 &#xff08;1&#xff09;獲取bean對象&#xff0c;首先獲取SpringIOC對象 private ApplicationContext applicationContext //IOC容器對象 (2 )方法…

昇思25天學習打卡營第13天 | ShuffleNet圖像分類

ShuffleNet網絡介紹 ShuffleNetV1是曠視科技提出的一種計算高效的CNN模型&#xff0c;和MobileNet, SqueezeNet等一樣主要應用在移動端&#xff0c;所以模型的設計目標就是利用有限的計算資源來達到最好的模型精度。ShuffleNetV1的設計核心是引入了兩種操作&#xff1a;Pointw…

ExcelVBA運用Excel的【條件格式】(二)

ExcelVBA運用Excel的【條件格式】&#xff08;二&#xff09;前面知識點回顧1. 訪問 FormatConditions 集合 Range.FormatConditions2. 添加條件格式 FormatConditions.Add 方法語法表達式。添加 (類型、 運算符、 Expression1、 Expression2)3. 修改或刪除條件格式4. …

如何在Spring Boot中實現動態多語言支持

如何在Spring Boot中實現動態多語言支持 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 一、引言 隨著全球化市場的發展&#xff0c;多語言支持已經成為現代…

密碼技術中分組模式解析

目錄 1. 概述 2. ECB模式 2.1 概述 2.2 ECB模式的加密 2.3 ECB模式的解密 2.4 優點 2.5 缺點 3. CBC模式【推薦】 3.1 概述 3.2 CBC模式的加密 3.3 CBC模式的解密 3.4 優點 3.5 缺點 4. CFB模式 4.1 概述 4.2 CFB模式的加密 4.3 CFB模式的解密 4.4 優點 4.…

智慧地產視覺監控系統開源了,系統采用多種優化技術,提高系統的響應速度和資源利用率

智慧地產視覺監控平臺是一款功能強大且簡單易用的實時算法視頻監控系統。它的愿景是最底層打通各大芯片廠商相互間的壁壘&#xff0c;省去繁瑣重復的適配流程&#xff0c;實現芯片、算法、應用的全流程組合&#xff0c;從而大大減少企業級應用約95%的開發成本。用戶只需在界面上…

Python打開Excel文檔并讀取數據

Python 版本 目前 Python 3 版本為主流版本&#xff0c;這里測試的版本是&#xff1a;Python 3.10.5。 常用庫說明 Python 操作 Excel 的常用庫有&#xff1a;xlrd、xlwt、xlutils、openpyxl、pandas。這里主要說明下 Excel 文檔 .xls 格式和 .xlsx 格式的文檔打開和讀取。 …

Drools開源業務規則引擎(二)- Drools規則語言(DRL)

文章目錄 1.DRL文件的組成&#xff1a;2.package3.import4.function5.query6.declare7.global8.rule8.1.規則屬性8.2.LHS8.2.1.語法格式8.2.2.運算符優先級8.2.3.特殊的運算符1.matches, not matches2.contains, not contains3.memberOf, not memberOf4.in, notin5.soundslike6…

Powershell 獲取電腦保存的所有wifi密碼

一. 知識點 netsh wlan show profiles 用于顯示計算機上已保存的無線網絡配置文件 Measure-Object 用于統計數量 [PSCustomObject]{ } 用于創建Powershell對象 [math]::Round 四舍五入 Write-Progress 顯示進度條 二. 代碼 只能獲取中文Windows操作系統的wifi密碼如果想獲取…