算法期末函数题

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.mzph.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密码如果想获取…