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

做网站论文新网站如何快速收录

做网站论文,新网站如何快速收录,树莓派做网站服务器怎样,建设工程合同标准版本这道题用的知识点是DFS剪枝。难的不在DFS上,而是在剪枝上如何选择。 思路:这道题我们看到是按照字典序排的,但是,我们注意到,看似是全排列的递归,实则不是。 我们前面也了解过,全排列的数字大…

这道题用的知识点是DFS+剪枝。难的不在DFS上,而是在剪枝上如何选择。

思路:这道题我们看到是按照字典序排的,但是,我们注意到,看似是全排列的递归,实则不是。

我们前面也了解过,全排列的数字大小是没有规则的,当然指数型也不可能,这并不涉及到选与不选的问题。而且,我们看到,这些数字有点像升序排列的,所以可能会是组合型递归。但是呢,我们又发现,它们的数字并不是严格单调的,而是有相同的数字在里面排序。这怎么办呢?

改进方法已经在代码里了,就是在进行下一次dfs的时候我们只需要写上i就行,而不是i+1,如果是i+1就会严格单调了。

只是这样写起来,会有数据点TLE。这是为什么呢?因为有些地方是需要剪枝的。那么这里我们怎么剪枝呢?如果你想说在求出来的和不是n的时候剪枝,那也是在全部数字枚举出来的时候才会判断的,仅仅是这样并不能完全剪枝。那该怎么办呢?这里,我们直接在循环里剪枝,也就是在枚举的过程中进行剪枝。怎么剪枝呢?举个例子:

当我们n=7,k=4时,这个时候假如我们已经列举到1,3了,现在正在第三个位置的dfs当中,这个时候按照我们的写法下一个数字肯定是3,最后一个数字也是3,这是对于自己编写的程序的理解。

我们看,如果这几个数字加起来是不是已经超过7了?也就是说,第四个位置我们根本不需要考虑了,前面已经=7了,后面再加就不行了,这里我们直接让循环不去dfs了,而是进行下一次循环。这就省了一次dfs函数的调用!那么,怎么实现这种想法呢?

我们在循环中改进循环条件就行,这和上几次的剪枝是不一样的,这里的剪枝涉及到的是对于在枚举过程中的剪枝,而不是对于全部枚举完之后的剪枝,这里是不同点。在上面的例子中,我们看到,其实知道了第三个数字我们也就知道了第四个数字了。所以,我们只需要循环到第二个位置后,判断后面两个位置的和与前面我们已经计算了的sum相加是不是<=n就行了,这就是优化的地方。

注意:这里的dfs有三个变量,第一个是位置,第二个是从哪个数开始枚举,第三个则是累加的数用来记录的。

#include<iostream>
#include<stdio.h>
#include<cstring>
#include<cstdlib>
#include<cmath> 
#include<vector>
#include<algorithm>
#include<stack>
#include<queue>
#include<sstream>
#include<map>
#include<limits.h>
#include<set>
#define MAX 100010
#define _for(i,a,b) for(int i=a;i<(b);i++)
#define ALL(x) x.begin(),x.end()
using namespace std;
typedef long long LL;
typedef pair<int,int> PII;
int arr[MAX];
LL n, m, counts, num;
void dfs(int  u,int st,int sum) {if (u > m) {if (sum<n || sum>n)return;else {counts++;}return;}for (int i = st; sum+(m-u+1)*i <= n; i++) {arr[u] = i;dfs(u + 1,i,sum+i);arr[u] = 0;}}
int main() {ios::sync_with_stdio(false);cin.tie(NULL); cout.tie(NULL);cin >> n >> m;dfs(1,1,0);cout << counts << endl;return 0;
}

http://www.rdtb.cn/news/20343.html

相关文章:

  • 邵阳营销型网站建设网络营销做得好的产品
  • 我谁知道在哪里可以找人帮忙做网站百度数据网站
  • wordpress通知站点bing成都官网seo服务
  • 晋江网站制作提交百度一下
  • 网站悬浮代码百度搜索风云榜官网
  • 做电子商务网站需要什么手续公司快速建站
  • 企业做网站一般要多少钱今日足球最新预测比分
  • 赣州做网站的公司有哪家链接
  • 服装网站建设任务表甘肃搜索引擎网络优化
  • 做代购可以在哪些网站上2023今日新闻头条
  • 接私活做网站设计不知怎么入门
  • 优惠卷网站怎么做推广快速排名提升
  • 自建导航站wordpress最新的网络营销的案例
  • 衢州网站建设出售网址检测
  • 龙岗网站(建设深圳信科)网站推广四个阶段
  • 推广普通话文字内容seo 怎么做到百度首页
  • 网站跟别的做的一样的外贸网站建设设计方案
  • 郑大远程教育动态网站建设百度认证怎么认证
  • 做韦恩图网站企业seo关键字优化
  • 云主机配置网站google推广工具
  • 济南网站建设公司推荐人员优化方案
  • wap网站生成营销案例分析
  • 网站设计范例盐城seo网站优化软件
  • 做动态二维码的网站网站新站整站排名
  • 微信营销策略有哪些长沙seo排名优化公司
  • 建立网站需要什么条件类似火脉的推广平台
  • gis做图网站百度seo优化推广
  • 哪里有零基础网站建设教学服务杭州网站优化服务
  • 网站的超链接怎么做推广员网站
  • 百度医院网站建设搜索引擎推广方式有哪些