当前位置: 首页 > news >正文

dom手表官方网站营销网址

dom手表官方网站,营销网址,建设模板网站,建立网站的公司题目 从 1∼ n n n 这 n n n 个整数中随机选出 m m m 个,输出所有可能的选择方案。 输入格式 两个整数 n , m , n,m, n,m, 在同一行用空格隔开。 输出格式 按照从小到大的顺序输出所有方案,每行 1 个。 首先,同一行内的数升序排列&a…

题目

从 1∼ n n n n n n 个整数中随机选出 m m m 个,输出所有可能的选择方案。

输入格式

两个整数 n , m , n,m, n,m, 在同一行用空格隔开。

输出格式

按照从小到大的顺序输出所有方案,每行 1 个。

首先,同一行内的数升序排列,相邻两个数用一个空格隔开。

其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面(例如 1 3 5 7 排在 1 3 6 8 前面)。

数据范围

n > 0 n>0 n>0,
0 ≤ m ≤ n 0≤m≤n 0mn,
n + ( n − m ) ≤ 25 n+(n−m)≤25 n+(nm)25

输入样例

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 

思考题:如果要求使用非递归方法,该怎么做呢?

思路

思路类似于AcWing92,但是多了一个个数限制。

另外,因为升序排列,所以可以枚举每个数,就可以形成一棵递归搜索树。可以枚举当前在哪层,以及当前以哪个数开始继续往下搜。

代码

#include <bits/stdc++.h>
#include <vector>
using namespace std;vector<int> chosen; //被选择的数void print_subset(int n, int m, int x) {//剪枝:无解的情况//选择超过了m个,或即使再选上剩余的所有数也不够m个,则无解//这条剪枝保证一旦进入无解的分支就会立刻返回if (chosen.size() > m || chosen.size() + (n - x + 1) < m) {return ;}if (x == n + 1) {for (int i = 0; i < chosen.size(); i++) {printf("%d ", chosen[i]);}printf("\n");return ;}//“选num” 分支chosen.emplace_back(x);//记录num已被选择print_subset(n, m, x + 1); 求解子问题chosen.pop_back(); ///回溯到上一问题之前,还原现场//“不选num” 分支print_subset(n, m, x + 1);}int main() {int n, m;scanf("%d%d", &n, &m);print_subset(n, m, 1);return 0;
}

因为剪枝,时间复杂度从 2 n 2^n 2n 降低为 C n m C_n^m Cnm

递归搜索树写法:

#include <cstdio>
using namespace std;const int N = 30;
int path[N]; //存储路径(选择的数)
int n, m;void dfs(int u, int start) { //u当前层数,start当前在哪个数 if (u > m) { //已经找到了m个数for (int i = 1; i <= m; i++) {printf("%d ", path[i]);}puts("");} else {for (int i = start;  i <= n; i++) {path[u] = i; //当前层选择的数是idfs(u + 1, i + 1);path[u] = 0; //恢复现场}}
}int main() {scanf("%d%d", &n, &m);dfs(1, 1);return 0;
}
http://www.ahscrl.com/news/12710.html

相关文章:

  • 做的比较好的企业网站互联网营销做什么
  • 微信怎么做链接网站免费网站友情链接
  • 商贸企业网站建设设计方案武汉网络广告推广服务
  • 网站描本链接怎么做顾问式营销
  • wordpress发广告seo交流群
  • 做网站博彩代理违法吗宁波微信推广平台哪个好
  • 基于jquery做的网站网络营销是什么工作
  • 有哪些做外贸网站专业做网络推广的公司
  • 网站设计网站机构免费推广网站大全
  • 龙华做网站哪家便宜营销方式有哪些
  • 网站定制开发合同推广赚佣金的软件排名
  • 湖北响应式网站建设华联股份股票
  • 新手做网站seo排名优化推广报价
  • 扬中市新闻网站怎样推广自己的商城
  • 瓷器网站怎么做seo推广公司哪家好
  • 学做旗袍衣服的网站百度关键词批量看排名工具
  • 网站建设做的好关键词优化策略有哪些
  • 响应式网站模板费用百度云手机登录入口
  • wordpress 作者归档苏州seo关键词排名
  • 本地唐山网站建设seo关键字优化
  • 十大免费ppt网站软件今日国内新闻头条
  • 网站建设重要新阿森纳英超积分
  • 自己做网站要不要钱谷歌浏览器网页版进入
  • 推荐o2o网站建设友妙招链接
  • 程序做网站好还是app好地推网app推广平台
  • 手机无法登录wordpress太原seo全网营销
  • 河南网站建设报价市场推广的方法和规划
  • 成都电子商务网站建设百度浏览器打开
  • 做自己移动端网站谷歌的推广是怎么样的推广
  • 郑州市建设委员会网站关键词林俊杰百度云