自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

GODSPEED

这世界从来就只有强者的奋斗史,而没有弱者的墓志铭

  • 博客(12)
  • 资源 (1)
  • 收藏
  • 关注

原创 HDU 1560 DNA sequence(IDA*搜索)

题意:给出n个dna序列,现在要求一个最短的序列,使得给出的dna序列都是它的子序列。思路:IDA*搜索,一开始用的剪枝估价条件是计算剩余字符串的最大长度,但是总是超时。后来更改了剪枝条件,估价函数改成了计算剩余需要的每个字母的数量之和,这样修改后时间大幅减少,这也体现出了好的估价函数的剪枝对于IDA*算法的重要性。#include#include#include#include

2016-01-31 21:57:14 368

原创 CodeForces 618 D Hamiltonian Spanning Tree(树形DP)

题意:给出一个完全图,每条边的权值为y,现在从中选出一棵生成树,将这棵树上的所有边的权值改为x,现在问从任意一个结点出发,遍历所有节点且每个结点只经过一次的最短路长度是多少。思路:首先很明显分为xy两种情况。当x这一步可以用树形dp来做,每个结点u有三个状态:dp[u][0]表示结点u向儿子连0条边后子树u所能选取的最大的边的数量dp[u][1]表示结点u向儿子连1条边后子树u

2016-01-30 16:01:52 638 1

原创 CodeForces 620E New Year Tree(线段树)

题意:给出一棵树,每个节点有一个颜色,现在有两种操作,一种是将一棵子树所有节点置为一种颜色,另一种是求一棵子树内的结点颜色数量。思路:首先处理出每个节点的dfs序转化为线性区间上的问题。然后剩下就是一个裸的线段树问题,用每一个二进制位代表一种颜色,然后结点的权值表示当前区间有多少种颜色,区将合并只需要或运算即可。#include#include#include#include#in

2016-01-29 00:17:15 536

原创 POJ 2480 Longge's problem(数论)

题意:给出n,求sigma(gcd(n,i))。思路:对于n的一个约数g,和n的公约数为g的数的个数为phi(n/g),所以只需要求出sigma(phi(n/i)*i)即可。#include#include#include#include#include#include#include#include#include#include#include#include#

2016-01-28 00:47:45 406

原创 SPOJ LCMSUM (数论)

题意:对于 n,求出sigma (LCM (i , n))    n >=  i >=1。思路:首先可以得到LCM (i , n) = n*i / gcd(i, n).可以将n提取出来,也就是说现在要求sigma(i / gcd(i, n))可以发现gcd(i, n)是n的因子,数量不会太多,所以可以考虑枚举n的因子g。将分母相同的项分为一类,也就是说,对于n的一个因子g,现在要求

2016-01-27 21:19:03 426

原创 Ccodeforces 27E Number With The Given Amount Of Divisors(数论+搜索)

题意:求因子数恰好为n的最小的正整数,结果不超过1e18。思路:首先对于一个数分解质因数得到如下形式(p1^a1)*(p2^a2)*(p3^a3)...(pn^an)那么一个数的因子个数就是(a1+1)*(a2+1)*...*(an+1).我们尽可能得用较小的素数这样会使答案较小,由于n不超过1000,所以最多也用不到10个素数。所以可以想到用搜索来做,对于当前素数,分配给它一个指

2016-01-27 01:19:34 387

原创 八数码的几种做法的总结以及是否有解的判断

经典的八数码问题,这几天尝试了一些不同的做法,现在总结下。1.广搜+哈希这是最容易想到的一种做法,哈希的方法是康托展开,组合数学上有介绍。广搜+哈希2.双向广搜+哈希双向广搜的复杂度大约是单向的一半,所以效率上会有不错的提高。双向广搜+哈希3.A*+哈希+曼哈顿距离用到广搜,就可以想到能用经典的A*解决,用深度作为g(n),剩下的自然是启发函数了。对于八数码,启发函

2016-01-23 02:06:28 5093

原创 POJ 1077 Eight(八数码第八境界|IDA*+曼哈顿距离+判断是否有解)

题意:八数码。思路:IDA*+曼哈顿距离+判断是否有解。因为要用到IDA*搜索,所以我们搜索之前先判断一下是否有解。判断的方法是学习一个大神的: 判断八数码问题是否有解 IDA*比起BFS的好处是空间复杂度极低,同时因为有剪枝,比起BFS降低了盲目性;比起A*的好处是不用去维护一个堆。#include#include#include#include#include#i

2016-01-23 01:54:45 1567

原创 HDU 1043 Eight(八数码第七境界|A*+哈希+曼哈顿距离)

题意:八数码。思路:将上一篇博客的估计函数h更改为求当前状态到目标状态的曼哈顿距离,因为每次都是和空格交换,所以计算的时候不计算空格的曼哈顿距离就可以满足估计函数的两条性质:1.h(n)>h'(n),h'(n)为从当前节点到目标点的实际的最优代价值。2.每次扩展的节点的f值大于等于父节点的f值小。对于这道题的样例而言,两个估计函数效率差不多,简化版的优化函数(只计算两个状态相同位置

2016-01-21 21:50:12 1860

原创 HDU 1043 Eight(八数码第五境界|A*+哈希+简单估价函数+打表)

题意:八数码。思路:八数码第五境界,A*搜索。#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define eps 1e-6#define LL long long#define p

2016-01-21 21:07:12 1122

原创 POJ 1077 Eight(八数码第四境界|双向广搜+哈希)

题意:八数码。思路:这道题用的算法是双向广搜加哈希,因为HDU是多组样例,所以会超时,交的poj。#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define eps 1e-6#def

2016-01-21 18:46:00 1020

原创 HDU 1043 Eight(八数码第三境界|广搜+哈希+打表)

题意:八数码。思路:今天看了神牛写的一篇八数码总结,感觉以前搜索都白做了.....还是太弱,这道题自己想的话就想到了反向搜索+hash+打表。链接 http://www.cnblogs.com/goodness/archive/2010/05/04/1727141.html#include#include#include#include#include#include

2016-01-21 01:03:39 745 1

百鸡问题详解

c语言实验题中的百鸡问题对理解c语言很有帮助多看无害

2014-04-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除