利用DFS拆分数系列;Depth First Search
来源:互联网 发布:fission for mac 编辑:程序博客网 时间:2024/06/14 18:41
利用DFS的递归回溯的性质进行数的拆分:
分拆自然数:
样例输入
5
- 样例输出
5=1+1+1+1+15=1+1+1+25=1+1+35=1+2+25=1+45=2+3
#include <iostream>#include <cstring>#include <cstdlib>#include <stdio.h>#include <algorithm>#include <vector>#include <queue>#include <set>#include <map>#include <string>#include <math.h>#include <stdlib.h>#include <iomanip>#include <list>#include <queue>#include <stack>using namespace std;int number[100];void number_split(int n,int reminder,int depth,int last){if(reminder==0){if(depth!=2){printf("%d=",n);for(int j=1;j<depth;j++){printf("%d%c",number[j],j==depth-1?'\n':'+');} }}for(int i=last;i<=reminder;i++){number[depth]=i;number_split(n,reminder-i,depth+1,i);}}int main(){int n;while(cin>>n){number_split(n,n,1,1);}return 0;}
poj2245 Lotto
dfs里面,last表示的是a[ ]里面用到的最后的数的下标,depth表示的是ans[ ]的长度,也是下标;
//#include <bits/stdc++.h>#include<iostream>#include<cstdio>using namespace std;const int maxn=100000+10;int ans[maxn/100];int a[maxn/100];void dfs(int n,int last,int depth)//last记录的是最后的那个数a[]的下标,depth记录的是ans[]下标数组的{ if(depth == 7) { for(int i=1; i<=6; i++) { if(i<6) cout<<ans[i]<<" "; else cout<<ans[i]<<endl; } return ; } for(int i=last+1;i<= n; i++) { ans[depth] = a[i]; dfs(n,i,depth+1); }}int main(){ int n; while(~scanf("%d",&n) && n) { for(int i = 1;i <= n;i++) scanf("%d",&a[i]); dfs(n,0,1); cout<<endl; } return 0;}
0 0
- 利用DFS拆分数系列;Depth First Search
- DFS(Depth-First-Search)
- Depth First Search (DFS)入门
- Tree-DFS(Depth-First-Search)
- Depth-First-Search(DFS伪代码)
- 经典dfs(depth-first search)
- Depth First Search (DFS) | Iterative & Recursive Implementation
- 深度优先搜索(Depth-First-Search,DFS)
- 【算法总结系列-6】深度优先搜索-Depth First Search,DFS
- 深度优先搜索Depth-first search (DFS) for undirected graphs
- DFS --- Depth First Search 深度优先搜索算法
- 深度优先搜索DFS(depth first search),拓扑排序
- 图的深度优先搜索(Depth First Search,DFS)
- 5.3.2 深度优先搜索(Depth-First-Search,DFS)
- DFS-深度优先搜索(Depth First Search)—1
- [数据结构]深度优先搜索算法(Depth-First-Search,DFS)
- TensorFlow中的深度优先搜索(Depth-first search, DFS)
- DFS——深度优先算法(Depth First Search)
- Java解析Json数据的两种方式
- hd 2066 一个人的旅行 (dijkstra)
- js 验证60s发短信
- hdu 5821 Ball(2016 Multi-University Training Contest 8——贪心+排序)
- svg 与svg动画
- 利用DFS拆分数系列;Depth First Search
- clone 远程分支 Cannot update paths and switch to branch 'dev' at the same time. Did you intend to checko
- 使用SQL语句操作SQLite数据库
- jenkins.plugins.publish_over.BapPublisherException
- 7.Zeng_Cache(1) --- 简介
- 文档工具
- java编程面试——风口的猪-中国牛市
- Android UI ProgressBar与Timer计时器
- mysql-Innodb事务隔离级别-repeatable read详解