首页 > 其他分享 >组合的输出

组合的输出

时间:2024-05-17 21:41:23浏览次数:22  
标签:输出 组合 int 元素 样例 include

题目传送锚点:https://www.luogu.com.cn/problem/P1157

题目描述

排列与组合是常用的数学方法,其中组合就是从 \(n\) 个元素中抽出 \(r\) 个元素(不分顺序且 \(r \le n\)),我们可以简单地将 \(n\) 个元素理解为自然数 \(1,2,\dots,n\),从中任取 \(r\) 个数。

现要求你输出所有组合。

例如 \(n=5,r=3\),所有组合为:

\(123,124,125,134,135,145,234,235,245,345\)。

输入格式

一行两个自然数 \(n,r(1<n<21,0 \le r \le n)\)。

输出格式

所有的组合,每一个组合占一行且其中的元素按由小到大的顺序排列,每个元素占三个字符的位置,所有的组合也按字典顺序。

注意哦!输出时,每个数字需要 \(3\) 个场宽。以 C++ 为例,你可以使用下列代码:

cout << setw(3) << x;

输出占 \(3\) 个场宽的数 \(x\)。注意你需要头文件 iomanip

样例 #1

样例输入 #1

5 3

样例输出 #1

1  2  3
  1  2  4
  1  2  5
  1  3  4
  1  3  5
  1  4  5
  2  3  4
  2  3  5
  2  4  5
  3  4  5

code

#include<iostream>
#include<vector>
#include<algorithm>
#include<cstdio>
using namespace std;
const int maxn = 30;
int n, r;
int nums[maxn];
void dfs(int x,int start) {//x代表遍历到第几位,start代表数字 
	if (x > r) {
		for (int i = 1; i <= r; i++) {
			 printf("%3d", nums[i]);
		}
		cout << endl;
		return;
	}
	//选这个数字
	for (int i = start; i <= n; i++) {
		nums[x] = i;
		dfs(x + 1, i + 1);
		nums[x] = 0;
	}

}
int main()
{
	cin >> n >> r;
	dfs(1,1);
	return 0;
}

标签:输出,组合,int,元素,样例,include
From: https://www.cnblogs.com/6Luffy6/p/18198757

相关文章

  • 通过HPA+CronHPA组合应对业务复杂弹性伸缩场景
    本文分享自华为云社区《通过HPA+CronHPA组合应对业务复杂弹性伸缩场景》,作者:云容器大未来。背景在k8s集群中,容器水平自动伸缩(HPA),可以根据容器资源的使用量,在设置好的副本范围内,自动扩缩容工作负载副本数(replicas)。HPA是基于指标阈值进行伸缩的,常见的指标有CPU和内存。也可......
  • 论文阅读:基于实体边界组合的关系抽取方法
    李昊,陈艳平,唐瑞雪,等.基于实体边界组合的关系抽取方法[J].计算机应用,2022,42(6):1796.主要工作提出了一种边界组合的关系抽取方法,跳过实体直接使用实体边界进行关系抽取;本文方法结合了Chen等提出的多通道深度神经网络模型思想以及特征组合的方法以减轻错误扩散对关......
  • 40. 组合总和 II(leetcode)
    https://leetcode.cn/problems/combination-sum-ii/description/classSolution{List<List<Integer>>res=newArrayList<>();LinkedList<Integer>path=newLinkedList<>();intsum=0;publicList<List&l......
  • 39. 组合总和(leetcode)
    https://leetcode.cn/problems/combination-sum/description/两种搜索思路一种是选或不选,搜索树是一颗二叉树另一种是选哪个数,是一个n叉树二叉classSolution{List<List<Integer>>res=newArrayList<>();inttarget;int[]nums;List<Integer>......
  • 地理数据可视化的神奇组合:Python和Geopandas
    本文分享自华为云社区《Python与Geopandas:地理数据可视化与分析指南》,作者:柠檬味拥抱。地理数据可视化在许多领域都是至关重要的,无论是研究地理空间分布、城市规划、环境保护还是商业决策。Python语言以其强大的数据处理和可视化库而闻名,而Geopandas作为其地理信息系统(GIS)领域的......
  • 【VsCode输出中文乱码问题】用vscode写c/c++时,终端输出结果为中文乱码如何解决?
    前言因为我平时在vscode写代码,在输出语句时,不会出现中文,所以之前一直没有遇到这个问题。但是今天,在练习的时候,涉及到了中文输出,所以遇到了这个中文乱码问题。我在运行代码时,发现代码页面上的中文正常显示,而终端输出的中文却是乱码其实,出现中文乱码是非常常见的事了,比如在浏览......
  • 实现bmp格式图片的2倍缩小功能,并输出新的目标bmp格式文件。最后利用800*480的开发板,展
    /***********************************************************************************************************实现bmp格式图片的2倍缩小功能,并输出新的目标bmp格式文件。最后利用800*480的开发*板,展示缩放后的bmp文件****Copyright(c)2023-202418975491291......
  • 鸿蒙HarmonyOS实战-ArkUI事件(组合手势)
    ......
  • "Bios"是计算机系统中的基本输入输出系统(Basic Input/Output System),负责在计算机启动
    "Bios"是计算机系统中的基本输入输出系统(BasicInput/OutputSystem),负责在计算机启动时初始化硬件设备、检测系统资源,并启动操作系统。Bios开发人员是负责设计、开发和维护计算机系统的Bios软件的专业人员。工作内容:软件设计和开发:Bios开发人员负责设计和编写Bios软件,包......
  • 4-30V 输入、1.2A 固定输出同步降压驱动器
    产品描述 AP3462是一款支持宽电压输入的同步降压电源管理芯片,输入电压4-30V范围内可实现1.2A的连续电流输出。AP3462具有优秀的恒压特性。AP3462采用电流模式的环路控制原理,实现了快速的动态响应。AP3462工作开关频率为220kHz,具有良好的EMI特性。AP3462内置有......