题意:给你一些木棒,问这些木棒首尾相连能不能连成一个正方形。dfs+剪枝(卧槽一说剪枝瞬间高大上了思路:首先看一看能不能被4整除,不能的话当然是NO;如果能的话,从头进行递归;递归过程中,如果能够连成一条边,则继续往下递归,如果不能的话,立刻停止递归,消除标记。AC代码:#include #incl...
分类:
其他好文 时间:
2015-10-23 18:29:57
阅读次数:
119
题目大意:给出一个方格矩阵,矩阵中有数字0~9,任选一个格子为起点,将走过的数字连起来构成一个数,找出最大的那个数,每个格子只能走一次。题目分析:DFS。剪枝方案:在当前的处境下,找出所有还能到达的点的个数,若当前数字的长度加上个数仍小于目前最优答案的长度,则剪去;若长度相等,则将所有还能到达的数字...
分类:
其他好文 时间:
2015-10-12 22:20:59
阅读次数:
294
题目大意:用n根长度未必相等的木棒匹配出最多数量的等长木棒。题目分析:枚举所有可能的等长木棒的长度,通过DFS的方式逐根匹配,在此过程中要剪枝。先将木棒长度按从大到小排序,也就是说匹配每一根等长木棒时总是优先挑选长的。剪枝方案如下:1. 若第i-1根木棒在当前方案的匹配中没有用到并且length[i...
分类:
其他好文 时间:
2015-09-25 12:50:30
阅读次数:
106
题目大意:给出一个方格矩阵,矩阵中有数字0~9,任选一个格子为起点,将走过的数字连起来构成一个数,找出最大的那个数,每个格子只能走一次。题目分析:DFS。剪枝方案:在当前的处境下,找出所有还能到达的点的个数,若当前数字的长度加上个数仍小于目前最优答案的长度,则剪去;若长度相等,则将所有还能到达的数字...
分类:
其他好文 时间:
2015-09-21 21:11:36
阅读次数:
246
dfs+剪枝。AC代码例如以下:///dfs+剪枝 62MS 300K#include#include#include#includeusing namespace std;int n,m;int a[50];int vis[50];bool cmp(int a,int b){ return...
分类:
其他好文 时间:
2015-09-17 19:00:39
阅读次数:
130
思路:首先将输入的各边长累加求和 即四边形周长sum, 后除4 即边长side,这样 通过DFS 搜索这些sticks能否组合成4根长度均为side 进而确定yes no。在此 就涉及到搜索顺序了-最优性剪枝: 不难理解 先搜索的小棒子 越长,组合构成side的方式就越少,搜索到结果的时间就越短。S...
分类:
其他好文 时间:
2015-09-14 20:51:56
阅读次数:
145
题意:告诉格子规格,颜色个数,以及每个颜色能涂得格子数目,问是否能够实现相邻两个格子的颜色数目不相同。分析:因为数据很小,格子最多是5 * 5大小的,因此可以dfs。TLE了一次之后开始剪枝,31ms过。剪枝看代码。 1 #include 2 #include 3 #include 4 #in...
分类:
其他好文 时间:
2015-08-31 21:37:38
阅读次数:
166
SticksTime Limit: 1000MSMemory Limit: 10000KTotal Submissions: 129606Accepted: 30388DescriptionGeorge took sticks of the same length and cut them rand...
分类:
其他好文 时间:
2015-08-29 16:51:02
阅读次数:
105
题目大意:求将一个r*c的按钮矩阵由全部为关变成全部为开的最少按扭次数,每按一次开关能作用到的范围不定。题目分析:开关问题。打眼一看就是BFS+位压缩,但是写出来之后TLE。用DFS不断更新最优解。最坏有2^25种情况,加两个剪枝: 一、每一个开关最多只能影响三行,当第now_r-2行仍然有开关关....
分类:
其他好文 时间:
2015-08-29 15:15:30
阅读次数:
181
素数环时间限制:1000 ms | 内存限制:65535 KB 难度:2描述 有一个整数n,把从1到n的数字无重复的排列成环,且使每相邻两个数(包括首尾)的和都为素数,称为素数环。为了简便起见,我们规定每个素数环都从1开始。例如,下图就是6的一个素数环。输入 有多组测试数据,每组输入一个n(0#in...
分类:
其他好文 时间:
2015-08-28 12:36:53
阅读次数:
134