一个男女搭配的关系图,看可以凑成多少对,基本和最原始的一个二分图谜题一样了,就是 一个岛上可以凑成多少对夫妻的问题。
所以是典型的二分图问题。
使用匈牙利算法,写成两个函数,就非常清晰了。
本程序还带分配释放程序,当然oj一般不需要。但是好的程序一定要。
#include
#include
int K, M, N, a, b;
int *linker;
bool **gra, *use...
分类:
其他好文 时间:
2014-06-22 21:50:52
阅读次数:
164
HDU 11488 Hyper Prefix Sets (字符串-Trie树)
题目大意:
假设a表示公共前缀的长度,b表示含有这个前缀的字符串个数,问你a*b的最大值。
解题思路:
建立一棵Trie树,边建边查,直接更新 长度乘以个数的最大值...
分类:
其他好文 时间:
2014-06-22 21:12:34
阅读次数:
307
2013年南京邀请赛的铜牌题。。。做的很是伤心,另外有两个不太好想到的地方。。。。a 可以等于零,另外a到b的累加和比较大,大约在2^70左右。
打表查规律比较神奇,上图不说话。
打表的代码
#include
#include
#include
#include
#include
#include
#include
#include
#include
#pra...
分类:
其他好文 时间:
2014-06-22 21:12:01
阅读次数:
249
题意:在二维8*8的方格,给定4个初始点和4个最终点,问在8步内是否能从初始点走到最终点,
规则:每个点能上下左右移动,若4个方向已经有点则可以跳到下一个点。
双向广搜:同时对初始点和最终点广搜4步,对每一步记录状态,初始点为‘1’,最终点为‘2’,
若在限定时间内初始点的状态能到达‘2’,或最终点的状态能到达‘1’,则为YES!要记得排序。。
#include
#includ...
分类:
其他好文 时间:
2014-06-22 20:00:14
阅读次数:
175
选择出一组学生,这组学生里面不能彼此之间有过恋爱史的。
又是一个典型的二分图问题。
不过需要把所有学生看成一组*2,然后求最大匹配,然后除以2. 这样其实建图的时候,建成有向图也是可以的了。而且也是给出了两个方向的点了。
注意本题没有给出最大数是多少学生了,所以最好使用动态分配内存了。
而且本题的输入处理也特别点,要处理好,用好scanf这个函数。...
分类:
其他好文 时间:
2014-06-22 18:47:25
阅读次数:
161
HDU 1251 统计难题 (字符串-Trie树)
题目大意:
给定一些单词,然后接下来很多询问,每组一个字符串T,问你给定的单词中前缀为T的有多少个?
解题思路:
先按照给定的单词建一棵Trie树,记录值,然后每次查询即可。...
分类:
其他好文 时间:
2014-06-22 17:32:41
阅读次数:
203
本题就是考剪枝法了。
应该说是比较高级的应用了。因为要使用heuristic(经验)剪枝法。要总结出这个经验规律来,不容易。我说这是高级的应用也因为网上太多解题报告都没有分析好这题,给出的程序也很慢,仅仅能过掉,由此看来很多人没有做好这道题。
这里我需要更正一下网上流行的说法:奇偶剪枝法。
其实本题使用奇偶剪枝法并不能太大提高速度,只能说仅仅让使用奇偶剪枝过掉。所以网上说本题使用奇偶剪枝的,其实并不能提高速度。
原因:
奇偶剪枝只能剪枝一次,不能在递归的时候剪枝,因为只要初始化位置符合奇偶性,那么之后的任...
分类:
其他好文 时间:
2014-06-21 21:09:32
阅读次数:
178
这道题也有点新意,就是需要记录最小值段和最大值段,然后成段更新这个段,而不用没点去更新,达到提高速度的目的。
本题过的人很少,因为大部分都超时了,我严格按照线段树的方法去写,一开始居然也超时。
然后修补了两个地方就过了,具体修改的地方请参看程序。
知道最大值段和最小值段,然后修补一下就能过了。不是特别难的题目。
#include
#include
#include
using na...
分类:
其他好文 时间:
2014-06-21 20:14:04
阅读次数:
230