摘要:
[题目来源]:POJ1840[关键字]:Hash[题目大意]:给出形如:a1*x1^3+a2*x2^3+a3*x3^3+a4*x4^3+a5*x5^3=0的方程求其一共有多少解。//===========================================================================================================[分析]:原始得朴素思想是枚举前4个值然后判断,如果是解就加一。但如此必超时无疑,所以可以将其拆成两部分,要想成立必有前一部分的值等于后一部分的值的的相反数。枚举实际上就是把一部分的值和后一部分的每一个值 阅读全文
摘要:
[题目来源]:POJ1466[关键字]:二分图最大独立集[题目大意]:给出份信息,说明某两者之间有关系,要求求出含元素最多的集合,使其两两间无关系,输出集合元素数量。//=====================================================================================================[分析]:乍一看如果正面建图将没有关系的两人连边则很不好求。但若反过来想,将所有有关系的人连边,求出一个最大的集合使其中任意两点之间无边相连=最大独立集=所有点数-最大匹配,匈牙利算法。[代码]:View Code 1 pro. 阅读全文
摘要:
[题目来源]:POJ2060[关键字]:二分图最小路径覆盖[题目大意]:给出一系列出租车客人的时间表,问最少需多少人才能满足每一位顾客。//=====================================================================================================[分析]:如果以每个顾客时间看成一个点,一个出租车在它从出发地出发到到达下一个顾客开始第所用时间满足约束条件,则就在这两个任务间连一条边。此时需要求的就是要覆盖所有的点所需的最小的路径数=最大独立集=所有点-最大匹配。[代码]:View Code 1 t.. 阅读全文
摘要:
[题目来源]:POJ3041[关键字]:二分图最小点覆盖[题目大意]:在一个坐标系中有k个障碍物,每次可以消除一整行或一整列上所有障碍物,问最少几次清除干净。//=====================================================================================================[分析]:利用行列法构造二分图:每个障碍物的x与y连一条边,此时每一条边就代表一个障碍物,而每一个点就代表一行或一列,所求即转化成了用最小的点覆盖所有的边=最小点覆盖=最大匹配。匈牙利算法求解。[代码]:View Code 1 var. 阅读全文
摘要:
[题目来源]:POJ3023[关键字]:二分图最小路径覆盖[题目大意]:在一个坐标图中有一些点需要覆盖,每在一个点上覆盖就可在覆盖它上下左右4个点中任一个,问最小放几个。//=====================================================================================================[分析]:利用黑白染色法把每一个点都和与之相邻的4个点连边,就构成了一个二分图。要求的就是有最小的点数覆盖全部边,即求最小路径覆盖=最大独立集=所有点-最大匹配由此可以求出最优解。实现方法——匈牙利算法即可。注意的是,这里的 阅读全文
摘要:
[题目来源]:POJ1094[关键字]:拓扑排序[题目大意]:给出n各字母和一系列不等式,判断是否能确定所有字母顺序输出在最早在第几个不等式处判断出或是否有矛盾最早在哪判断出,还是不能确定顺序。//=====================================================================================================[分析]:将每个不等式从小到大亮连一条边,就成了一个有向图,就是判断是否是一个无环图。每加入一个条件就进行拓扑排序,顺序确定就是完成唯一拓扑排序,矛盾就是有环,不确定就是拓扑序不唯一。注意的是,成立和 阅读全文
摘要:
[题目来源]:USACO 3.1.5[关键字]:字典树[题目大意]:求一个给定的字符串中,所有长度在a和b之间的所有子串的出现次数。并按要求输出最高的n个频率和在此频率下的所有子串。//=====================================================================================================[分析]:一开始毫无思路,就是暴力枚举,结果果断TLE。然后最近刚学了字典树,就用它来做,结果在N天后果断AC。其实很好想枚举每一个子串并加入字典树中,若果出现就吧出现次数加1,否则加入树中。知道枚举完所有。此题 阅读全文