codevs 1733 聪明的打字员 (Bfs)】的更多相关文章

/* Bfs+Hash 跑的有点慢 但是codevs上时间限制10s 也ok */ #include<iostream> #include<cstdio> #include<cstring> #include<queue> #define maxn 10000010 using namespace std; int len; bool f[maxn]; string ls,rs; struct node { int step,place; string s;…
http://poj.org/problem?id=1184 用字符串s存下数字,并把光标位置做一个字符加到s末尾,用map做标记状态是否出现过,然后bfs即可. 不剪枝是过不了的,考虑的两种交换操作都不涉及到2,3,4,5位置,所以这几个位置只能通过up,down来改变. 如果这几个位置是和目标状态是不一样的,那肯定是用up,down操作是最优的,而不会执行left,right操作. 所以这几个位置只有在和目标状态一样时做left,right操作. #include <iostream> #…
题目链接:http://poj.org/problem?id=1184 分析:首先可以发现有6*10^6种状态,比较多,不过搜索的时候可以去除一些无用的状态, 可以发现一个点的值(2-5)如果想要改变那么光标必须在该点处, 所以当光标在2-5位置时候,必须要要把值变为与目标位置处一样才可以移动. 单搜: #include<stdio.h> #include<queue> #include<string.h> #include<algorithm> using…
codevs 3290华容道 3290 华容道 2013年NOIP全国联赛提高组 时间限制: 1 s  空间限制: 128000 KB 题目描述 Description 小 B 最近迷上了华容道,可是他总是要花很长的时间才能完成一次.于是,他想到用编程来完成华容道:给定一种局面,华容道是否根本就无法完成,如果能完成,最少需要多少时间.小 B 玩的华容道与经典的华容道游戏略有不同,游戏规则是这样的: 在一个 n*m 棋盘上有 n*m 个格子,其中有且只有一个格子是空白的,其余 n*m-1个格子上每…
1138 聪明的质监员 2011年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有n 个矿石,从1到n 逐一编号,每个矿石都有自己的重量wi 以及价值vi.检验矿产的流程是:见图 若这批矿产的检验结果与所给标准值S 相差太多,就需要再去检验另一批矿产.小T不想费时间去检验另一批矿产,所以他想通过调整参数W 的值,让检验结果尽可能的靠近标准值…
简直难到没朋友. 双向bfs + 剪枝. 剪枝策略: 对于2--5位置上的数,仅仅有当光标在相应位置时通过swap ,up.down来改变.那么当当前位置没有达到目标状态时,left和right无意义. 好了.仅仅剪掉这里就过掉了... 还有比較炫酷的方法实现枚举720种排列. .. 然后状压什么的... 功力不够全然看不懂. ... #include <algorithm> #include <iostream> #include <cstring> #include…
链接: http://poj.org/problem?id=1184 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=88230#problem/B   (密码:0817) 不同的代码风格,这种在搜时有多种选择的,写了函数感觉看着也方便些, 借鉴 搜索的时候可以去除一些无用的状态,可以发现一个点的值(2-5)如果想要改变那么光标必须在该点处,所以当光标在2-5位置时候,必须要要把值变为与目标位置处一样才可以移动. 代码: #includ…
二分+前缀和. #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #define maxn 200500 #define inf 0x7f7f7f7f7f7f7f7fll using namespace std; ; long long s1[maxn],s2[maxn]; long long check(long l…
poj1010--邮票问题 DFSpoj1011--Sticks dfs + 剪枝poj1020--拼蛋糕poj1054--The Troublesome Frogpoj1062--昂贵的聘礼poj1077--Eightpoj1084--Square Destroyerpoj1085--Triangle War(博弈,極大極小搜索+alpha_beta剪枝)poj1088--滑雪poj1129--Channel Allocation 着色问题 dfspoj1154--letters (dfs)p…
蠕虫游戏 模拟 [问题描述] 蠕虫是一个古老的电脑游戏,它有许多版本.但所有版本都有一个共同规则:操纵一条蠕虫在屏幕上转圈,并试着去避免撞到自己或障碍物. 这里我们将模拟一个简单的版本.游戏将在 50×50 的棋盘上进行,棋盘的左上角为(1,1),蠕虫在初始时是一串 20 个相连的方格.所谓连接是指方格在水平或垂直方向上相接.蠕虫开始时是水平地伸展开的,从(25,11)到(25,30).其中(25,30)是它的头.蠕虫只能向东(E),西(W),南(S),北(N)四个方向移动,但不能向自己移动,因…