BZOJ 1085(IDA*)】的更多相关文章

题面 传送门 分析 首先,直接搜索肯定会TLE 很容易想到用迭代加深的方法,限定搜索深度 但是,这样仍然不够,需要用启发式的方法优化 我们设计一个估价函数f(x)=g(x)+h(x)f(x)=g(x)+h(x) g(x)g(x)是初始状态到当前状态的实际代价 h(x)h(x)是当前到目标的估计代价 如果f(x)=g(x)+h(x)>d(当前限定深度)f(x)=g(x)+h(x)>d(当前限定深度),则直接返回 h(x)h(x)函数如何设计? h(x)h(x)不能劣于实际最优值,所以可设为当前状…
Description The Leiden University Library has millions of books. When a student wants to borrow a certain book, he usually submits an online loan form. If the book is available, then the next day the student can go and get it at the loan counter. Thi…
题意:从起点出发,可向东南西北4个方向走,如果前面没有墙则可走:如果前面只有一堵墙,则可将墙向前推一格,其余情况不可推动,且不能推动游戏区域边界上的墙.问走出迷宫的最少步数,输出任意一个移动序列. 分析: 1.最少步数--IDA*. 2.注意,若此墙可推动,必须改变当前格子,和沿当前格子向前一步的格子的墙的标记. 3.若沿当前格子向前两步的格子存在,则这个格子的墙的标记也要改变.不存在的情况是:把墙推向了边界. 4.因为每个格子的值是是1(如果正方形以西有一个墙),2(北),4(东)和8(南)的…
在电影<盗梦空间>中,男主角科布和妻子在梦境中生活了50年,从楼宇.商铺.到河流浅滩.一草一木.这两位造梦师用意念建造了属于自己的梦境空间.你或许并不会想到,在不久未来,这看似科幻的情节将走入人们的日常生活.现在,现实中的造梦行动已经開始在互联网时代悄然上演. 互联网X实验室在<互联网进化论>一书中以前提出互联网正向着与人类大脑高度相似的方向进化,它将具备自己的视觉.听觉.触觉.运动神经系统,也会拥有自己的记忆神经系统.中枢神经系统.自主神经系统.能够称之为互联网虚拟大脑. 同一时…
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1085 分析: 首先第一感觉是宽搜,但是空间需要8^15*5*5,明显不够,又鉴于最大深度为15,所以可以用迭代加深做. 但是普通的迭代加深还是会TLE.于是考虑加上估价函数 设当前层数的上界为Kmax,当前搜索的层数为K,我们知道一次移动顶多改变目前矩阵和目标矩阵的一个差别,于是可以求出当前与目标矩阵不同的位置的个数s,如果k+s>Kmax那么就可以直接不做了.…
题目 传送门:QWQ 分析 我好菜啊. 一波IDA*水过去了. 代码 #include <bits/stdc++.h> using namespace std; ; char s[maxn][maxn]; ;; ]={,-,-,,,-,-,}, dy[]={,,-,-,,,-,-}; int ans[maxn][maxn]= { {,,,,,}, {,,,,,}, {,,,,,}, {,,,,,}, {,,,,,}, {,,,,,} }; &&y>=&&x…
我实在是太弱了...不滚粗只能刷BZOJ了...这里来记录每天刷了什么题吧. 2015-7-9 : 1001[BeiJing2006]狼抓兔子                 | 最大流练习(呃..其实是平面图最大流辣) 1002[FJOI2007]轮状病毒                     | 基尔霍夫矩阵算生成树数量(呃..其实是DP辣) 2015-7-10: 1003[ZJOI2006]物流运输trans             | SPFA+DP 2015-7-11: 1004[H…
The Rotation Game Time Limit: 15000MS   Memory Limit: 150000K Total Submissions: 5691   Accepted: 1918 Description The rotation game uses a # shaped board, which can hold 24 pieces of square blocks (see Fig.1). The blocks are marked with symbols 1, 2…
题意:给你k种管道,然后是每种的长度,每种的数量,求(x1,y1)到(x2,y2)所用管道的最少数量 思路: 最开始考虑的是直接bfs,但是没有成功. 然后发现可以先找x轴x1 到 x2 ,再找y轴y1 到 y2.两个的和便是最终答案. 先用bfs处理出两条轴上的估计函数(即每个地方到x2或y2的距离),然后枚举深度搜索. Orz; 1.最开始思路的方向就错了,没想到可以x,y轴分开来考虑- -,果然脑子转不过来 2.而且最后忘了判断是否有答案,贡献了个TL #include <iostream…
题目大意:走迷宫,遇到墙时可以推着墙走,但墙后还是墙时便不能推.求出一条任意的最短路径. 题目分析:这道题出的比较人性,输入的时候便是将四周的墙用二进制数表示好了,其实这样减轻了做题人的负担.IDA*,当到最近的一个出口的距离加上当前层数cur都比maxd大时,则剪枝.不过,值得注意的是:当推着墙走的时候,涉及到3个格子周围的墙的变化(在边界除外). 代码如下: # include<iostream> # include<cstdio> # include<cmath>…