ACM_搜索算法
Tovi-A
用勇气改变可以改变的事情,用胸怀接受不能改变的事情,用智慧分辨两者的不同。
展开
-
整数n的全排列
第一道用搜索码的、得纪念一下#include #include #include #include #include #include using namespace std;int n;int visit[10], a[10];void dfs(int pos) { if (pos == n) { //递归出口 for (int i = 0; i<n; i+原创 2015-10-06 13:21:52 · 653 阅读 · 0 评论 -
组合数
组合数时间限制:3000 ms | 内存限制:65535 KB难度:3描述找出从自然数1、2、... 、n(0<n<10)中任取r(0<r<=n)个数的所有组合。输入输入n、r。输出按特定顺序输出所有组合。特定顺序:每一个组合中的值从大到小排列,组合之间按逆字典序排列。样例输入5 3样例输出543542541532原创 2016-05-23 21:36:41 · 341 阅读 · 0 评论 -
NYoj_20吝啬的国度
吝啬的国度时间限制:1000 ms | 内存限制:65535 KB难度:3描述在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来。现在,Tom在第S号城市,他有张该国地图,他想知道如果自己要去参观第T号城市,必须经过的前一个城市是几号城市(假设你不走重复的路)。输入第一行输入一个整数M表示测试数据共有M(1每组测试数据原创 2016-05-22 09:35:03 · 352 阅读 · 0 评论 -
HDU1016(素数环)
Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 40069 Accepted Submission(s): 17675Problem Description A ring is compos原创 2016-04-22 17:14:07 · 344 阅读 · 0 评论 -
poj_2251
Dungeon MasterTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 24311 Accepted: 9425DescriptionYou are trapped in a 3D dungeon and need to find the quicke原创 2016-03-24 18:03:35 · 382 阅读 · 0 评论 -
DFS+打表
N皇后问题Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmit StatusDescription在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。 你的任务是原创 2016-03-22 21:51:10 · 418 阅读 · 0 评论 -
HDU1372搜索
Knight MovesTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 9320 Accepted Submission(s): 5495Problem DescriptionA friend of y原创 2016-03-21 18:37:03 · 378 阅读 · 0 评论 -
宽度优先搜索
宽度优先搜索也是搜索的手段之一。它与深度优先搜索类似,从某个状态出发探索所有可以到达的状态。 与深度优先搜索的不用之处在于搜索的顺序,宽度优先搜索总是先搜索距离初始状态近的状态。也就是说,它按照开始状态---只需1次转移就可以到达的所有状态---只需2次转移就可以到达的所有状态---。。。这样的顺序进行搜索。对于同一个状态,宽度优先搜索只经过一次,因此复杂度为O(状态数*转移的方式)。原创 2015-12-05 12:23:37 · 996 阅读 · 0 评论 -
深度优先搜索
深度优先搜索(DFS)是搜索的手段之一。它从某个状态开始,不断的转移状态直到无法转移,然后回退到前一步的状态,继续转移到其他状态,如此不断重复,直至找到最终的解。例如求解数独,首先在某个格子内填入适当的数字,然后再继续在下一个格子内填入数字,如此继续下去。如果发现某个格子无解了,就放弃前一个格子上选择的数字,改用其他可行的数字。根据深度优先搜索的特点,采用递归函数实现比较简单。部分和问题:给定原创 2015-12-02 16:59:27 · 481 阅读 · 0 评论 -
DFS入门__poj1979
Red and BlackTime Limit: 1000MS Memory Limit: 30000KTotal Submissions: 26944 Accepted: 14637DescriptionThere is a rectangular room, covered with square tiles. Eac原创 2015-11-17 18:32:02 · 425 阅读 · 0 评论 -
部分和问题
//-------------部分和问题-----------//给定整数a1,a2, ,,,an,判断是否可以从中选出若干数, 使他们的和恰好为k// 其中n范围为【1,20】//算法分析:从a1开始按顺序决定每个数加或不加,在全部n个数都决定后再判断他们的和是不是k即可、 #include #include #include #include #include using原创 2015-10-22 12:50:00 · 448 阅读 · 0 评论 -
求树的直径算法
/*树的直径是指树的最长简单路。求法: 两遍BFS :先任选一个起点BFS找到最长路的终点,再从终点进行BFS,则第二次BFS找到的最长路即为树的直径; 原理: 设起点为u,第一次BFS找到的终点v一定是树的直径的一个端点 证明: 1) 如果u 是直径上的点,则v显然是直径的终点(因为如果v不是的话,则必定存在另一个点w使得u到w的距离更长,原创 2016-11-04 13:25:12 · 11848 阅读 · 0 评论