题目大意:男生和女生若存在浪漫关系,则不能分在同一组,要求找出最大的分组,使得两两之间都不存在浪漫关系。这个题一开始直接用dfs加上剪枝,但无奈TLE。。后来学习了二分图、寻找最大匹配、匈牙利算法等相关知识,终于ac。二分图:即顶点集可以分割为两个互不相交的子集,且子集内的顶点互不相邻。最大匹配:二...
分类:
其他好文 时间:
2015-10-06 14:07:51
阅读次数:
189
解题思路:简单宽搜,关键是剪枝。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 const int maxn = 100005; 7 int vis[maxn]; //标记这个点是否走过 8 int n, k...
分类:
其他好文 时间:
2015-10-04 14:45:07
阅读次数:
163
一.题目描述二.题目分析这道题属于深度优先搜索的范畴,通过分别计算二叉树的左右子树是否的和是否等于sum-root->val来进行深度优先搜索,只有到达也结点搜索才结束,因此,递归的退出条件就是到达叶结点,同时,也要考虑输入是空指针的情况,这种情况返回false值。同时,由于只要判断是否存在,而不用找到每一个这样的路径,因此,只要左子树满足条件时,就可以直接返回,不需要处理右子树,这样就可以进行剪枝...
分类:
其他好文 时间:
2015-09-30 01:03:02
阅读次数:
199
1. 1、问题的引入 2、一个实例 3、基本概念 4、ID3 5、C4.5 6、CART 7、随机森林 2. 我们应该设计什么的算法,使得计算机对贷款申请人员的申请信息自动进行分类,以决定能否贷款? 一个女孩的母亲要给这个女孩介绍男朋友,于是有了下面的对话: 女儿:多大年纪了? 母亲:26。 女儿:...
分类:
编程语言 时间:
2015-09-29 23:20:37
阅读次数:
2173
题目大意:走迷宫,遇到墙时可以推着墙走,但墙后还是墙时便不能推。求出一条任意的最短路径。题目分析:这道题出的比较人性,输入的时候便是将四周的墙用二进制数表示好了,其实这样减轻了做题人的负担。IDA*,当到最近的一个出口的距离加上当前层数cur都比maxd大时,则剪枝。不过,值得注意的是:当推着墙走的...
分类:
其他好文 时间:
2015-09-29 16:36:31
阅读次数:
217
通道题意:给出1字母树,询问一字符串是否出现在该树中思路:直接搜索剪枝,有人点分治?写了几发都T了。。有人会了教我?代码:#include #include #include using namespace std;struct Edge { int v, nxt; Edge () { ...
分类:
其他好文 时间:
2015-09-26 22:36:32
阅读次数:
255
题目大意:用n根长度未必相等的木棒匹配出最多数量的等长木棒。题目分析:枚举所有可能的等长木棒的长度,通过DFS的方式逐根匹配,在此过程中要剪枝。先将木棒长度按从大到小排序,也就是说匹配每一根等长木棒时总是优先挑选长的。剪枝方案如下:1. 若第i-1根木棒在当前方案的匹配中没有用到并且length[i...
分类:
其他好文 时间:
2015-09-25 12:50:30
阅读次数:
106
题目大意:求一个使带宽最小的排列和最小带宽。带宽是指一个字母到其相邻字母的距离最大值。题目分析:在递归生成全排列的过程中剪枝,剪枝方案还是两个。一、当前解不如最优解优时,减去;二、预测的理想解不必最优解优时,减去。将与当前最后一个位置上的字母相邻的字母全部接过来,便得理想解。代码如下:# inclu...
分类:
其他好文 时间:
2015-09-23 10:30:41
阅读次数:
173
dfs一遍,维护当前连续遇到的喵的数量,然后剪枝,每个统计孩子数量判断是不是叶子结点。#includeusing namespace std;const int maxn = 2e5+5;int a[maxn];int head[maxn],nxt[maxnm) return; int ch ...
分类:
其他好文 时间:
2015-09-23 10:22:28
阅读次数:
176
题目大意:给出一个方格矩阵,矩阵中有数字0~9,任选一个格子为起点,将走过的数字连起来构成一个数,找出最大的那个数,每个格子只能走一次。题目分析:DFS。剪枝方案:在当前的处境下,找出所有还能到达的点的个数,若当前数字的长度加上个数仍小于目前最优答案的长度,则剪去;若长度相等,则将所有还能到达的数字...
分类:
其他好文 时间:
2015-09-21 21:11:36
阅读次数:
246