技术标签: 算法
排列与组合是常用的数学方法,其中组合就是从nn个元素中抽出rr个元素(不分顺序且r≤n),我们可以简单地将nn个元素理解为自然数1,2,…,n,从中任取r个数。
现要求你输出所有组合。
例如n=5,r=3,所有组合为:
123,124,125,134,135,145,234,235,245,345
一行两个自然数n,r(1<n<21,0≤r≤n)。
所有的组合,每一个组合占一行且其中的元素按由小到大的顺序排列,每个元素占三个字符的位置,所有的组合也按字典顺序。
**注意哦!输出时,每个数字需要3个场宽,pascal可以这样:
write(ans:3);
输入
5 3
输出
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
使用next_permutation()全排列的情况是:
0 0 0 1 1
0 0 1 0 1
0 0 1 1 0
0 1 0 0 1
0 1 0 1 0
0 1 1 0 0
1 0 0 0 1
1 0 0 1 0
1 0 1 0 0
1 1 0 0 0
#include<bits/stdc++.h>
using namespace std;
int a[30];
int main()
{
int m,n;
scanf("%d %d",&m,&n);
for(int i=n+1;i<=m;i++)
{
a[i]=1;//取得几位让几位为0,因为从小到大,所以让前几位先为0
}
do{
for(int i=1;i<=m;i++)
{
//每个元素占用3个字符的位置
if(a[i]==0) printf("%3d",i); //因为stl不会出现排序一样的排列方式,放心取,而且保证从小到大
}
cout<<endl;
}while(next_permutation(a+1,a+m+1));
return 0;
}
文章浏览阅读520次。之前一直不知道feature scaling加速收敛的原因在哪?最近看李宏毅老师的视频,在大概明白了一些,以下就是介绍feature scaling的意义:可以看到,当X1和X2的尺度不同,那么他们对最终损失造成的影响也是不相同的,如左图所示,你可以想象成一个三维的地形,或者一个崎岖的山路,而右图由于输入尺度相同,当然也是个三维的地形,但层次分明。当你想到达最低点时,左图需要根据梯度下降指引下降的方向,可能到达不同点,他所指引的方向并不指向最低点;而相反,右图中,他的梯度下降由于周围地形很相近,所以一直_feature scaling作用
文章浏览阅读699次。推箱子的最短路径-数据结构与C语言综合训练报告信息工程学院数据结构与C语言综合训练报告(2012~2013学年第 二学期)报告题目:____推箱子的最短路径_ __姓 名:_ __ ____专 业: 软件工程年级班级:___2012级2班___指导教师:完成日期: 2013年7月21号一、综合训练目的和要求本综合训练是计算机科学与技术、信息管理与信息系统、软件工程、电子商务..._c语言推箱子实验报告
文章浏览阅读131次。1.戏耍idea切换主题:设置背景:导入导出配置(file->manage IDE Settings)折行显示文件路径与按钮(view->appearance)_屏蔽.iml .idea等不需要的文件类型
文章浏览阅读3.3k次。在Ti的AM335X系列Cortext-A8芯片中,CAN模块采用D_CAN结构,实质即两路CAN接口。在此分享一下对基于AM335X的Linux CAN驱动源码的理解。下面来分析它的驱动源码及其工作方式。在Linux内核源码中,CAN设备驱动文件如下:drivers/net/can/d_can/d_can_platform.cdrivers/net
文章浏览阅读2.1k次。准备引擎开发环境下载代码Unreal Engine代码库在Github上,要下载Github上的源代码,需要具有Github账号和虚幻引擎的订阅账号,并且将二者相关联。步骤如下。登陆www.github.com使用虚幻引擎订阅账号登陆unrealengine.com点击CONNECTIONS菜单-> ACCOUNTS->GITHUB一路按照提示操作,最终会收到一个Github的通知邮件,邀请参加EpicGames Organization。点击链接,就可以看到源
文章浏览阅读410次。在我们平时开发的项目中,定时任务基本属于必不可少的功能,那大家都是怎么做的呢?但我知道的大多都是静态定时任务实现。基于注解来创建定时任务非常简单,只需几行代码便可完成。实现如下:[Java]纯文本查看复制代码? 01 02 03 04 05 06 07 08 09 10 11 ..._spring定时任务本地日志只有一条插入语句,但是数据库有多条
文章浏览阅读7.4k次,点赞2次,收藏9次。本文记录docker拉取使用java环境的相关过程。拉取java镜像1,互联网环境下搜索javadocker search java2,下载java1.8镜像docker pull docker.io/lwieske/java-83,查看拉取的镜像docker images4,保存镜像成tar归档文件,可用于复制到无法联网的服务器等(没有需求可以忽略该步骤)#docker save 镜像的名称 -o 保存成tar文件的路径名 docker save do_docker中拉取java8的镜像
文章浏览阅读1.3k次。公司最近做一个交易所项目,里面涉及一个需求就是将html模板,在填充数据后转换为pdf,这样防止数据更改,下面是具体实现1 pom文件 <dependency> <groupId>com.itextpdf</groupId> <artifactId>html2pdf</ar..._endposition 和 lineseparator
文章浏览阅读2.3k次。生信分析--入门实践一条龙的CWL中文教程。关于下载安装所有中文教程,开始学习吧_生信分析入门教程csdn
文章浏览阅读177次。前言JavaScript不区分类和实例的概念,而是通过原型(prototype)来实现面向对象编程。Object.create()方法可以传入一个原型对象,并创建一个基于该原型的新对象,但是新对象什么属性都没有,因此,我们可以编写一个函数来创建xiaoming:// 原型对象:var Student = { name: 'Robot', height: 1.2, run: function () { console.log(this.name + ' is r_编写一个函数来创建xiaoming:
文章浏览阅读39次。前端相关基础知识webpackwebpack1.1 什么是webpack1.2 webpack安装安装webpackvue脚手架webpack1.1 什么是webpackwebpack 是一个现代 JavaScript 应用程序的模块打包器(module bundler),分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Sass,TypeScript等),并将其转换和打包为合适的格式供浏览器使用。1.2 webpack安装注意:请先安装node环境we
文章浏览阅读1.1k次,点赞2次,收藏2次。在使用Kryo序列化之前需要将被序列化的类通过register()方法注册到其中去。在register的过程中,实则是要根据要序列化的类生成对应的Registration,Registration中记录了类的唯一id与对应的序列化类,在Kryo中,默认的序列化对象是FieldSerializer,没有特别指明的,都将以FieldSerializer来进行序列化。public Regist..._python kryo 实现