E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Solitaire
UVA 10651 Pebble
Solitaire
(bfs + 哈希判重(记忆化搜索?))
Problem A Pebble
Solitaire
Input: standard input Output: standard output Time Limit
·
2015-11-13 09:07
AIR
uva 10651 - Pebble
Solitaire
(记忆化搜索)
题目链接:10651 - Pebble
Solitaire
题目大意:给出一个12格的棋盘,‘o'代表摆放棋子,’-‘代表没有棋子, 当满足’-oo'时, 最右边的棋子可以跳到最左边的位子,而中间的棋子则被消除
·
2015-11-13 00:07
AIR
UVa 10651 Pebble
Solitaire
(状态压缩DP)
题意: 类似于跳棋,当两颗石子左或者右有空位置时,移动。每次转移之后移去经过的石子。 思路: 有12个格子,所以状态最多有2^12=4096个。把每次搜索过的状态存在dp[]数组中,以后再次查询类似的直接返回即可。 #include <cstdio> #include <cstdlib> #include <cstring> #define
·
2015-11-12 17:12
AIR
UVA 10651 - Pebble
Solitaire
这道题是模仿别人的bfs,却也有所收获。把12个棋位的有无棋子整体看作一个状态,然后宽搜就可以了。 代码如下: #include<stdio.h>#include<string.h>#define MAXN 11000char b[20];int q[MAXN], hash[MAXN], d[MAXN];int N, n;void solve(){ int x,
·
2015-11-12 15:50
AIR
[集合DP] UVA 10651 Pebble
Solitaire
1 /* 2 UVA 10651 - Pebble
Solitaire
3 */ 4 # include <cstdio> 5 # inc
·
2015-11-11 07:39
AIR
HDU 1401
Solitaire
SolitaireTimeLimit:2000/1000ms(Java/Other) MemoryLimit:65536/32768K(Java/Other)TotalSubmission(s):12 AcceptedSubmission(s):1ProblemDescriptionSolitaireisagameplayedonachessboard8x8.Therowsandcolum
u013097262
·
2015-11-08 20:00
HDU 1401
Solitaire
题意: 在一个8×8的棋盘中,给定你4个棋子A,再给你4个棋子B,问你在8步之内能不能够从A位置移动到B位置; 规则:棋子能能上下左右移动,同时能跳过相邻的棋子到达相邻棋子的空地方; 这个题要用双向搜索;同时我用一个8维的数组hash来构造一个图;当hash标记为1时表示A到过该点,标记为2时表示B到过该点; 这里要注意就是A,B同时搜索时他们分别最多只能走4步
·
2015-11-08 10:01
AIR
hdu 1401
Solitaire
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K
·
2015-11-07 09:08
HDU
HDU_1401——分步双向BFS,八进制乘权值压缩,map存放hash
Problem Description
Solitaire
is a game played on a chessboard 8x8.
·
2015-11-01 13:48
hash
需要多元学科技能教育
需要多元学科技能教育 查理•芒格 哈佛法学院毕业50周年聚会,1998年4月24日 今天我打算玩一个小小的游戏,拿起苏格拉底的纸牌,它源于一本哲学畅销书《纸牌的秘密》(The
solitaire
·
2015-10-31 13:53
教育
UVA 10651 Pebble
Solitaire
UVA_10651 由于总状态很少,所以直接广搜即可。 #include<stdio.h>#include<string.h>#define MAXD 10010char b[20];int d[MAXD], q[MAXD], hash[MAXD], N;void init(){ int i, j; scanf(&qu
·
2015-10-31 09:10
AIR
HDU_1401——同步双向BFS,八进制位运算压缩,map存放hash
这个速度比分步快一点,内存占的稍微多一点 Problem Description
Solitaire
is a game played on a chessboard 8x8.
·
2015-10-31 09:44
hash
HDU_1401——分步双向BFS,八进制位运算压缩,map存放hash
Problem Description
Solitaire
is a game played on a chessboard 8x8.
·
2015-10-31 09:44
hash
uva 10651 Pebble
Solitaire
此题不会做,看别人做法瞬间明白了(晕)转载的连接原题:Pebblesolitaireisaninterestinggame.Thisisagamewhereyouaregivenaboardwithanarrangementofsmallcavities,initiallyallbutoneoccupiedbyapebbleeach.Theaimofthegameistoremoveasmanyp
·
2015-08-27 12:00
uva
HDU 1401
Solitaire
(双向搜索)
每一步有4*4=16个决策,单向搜索的话有16^8种状态,双向搜索只有32^4种状态,缩小了解空间。双向搜索用来解决起点和终点确定的搜索问题。方法就是从起点和终点轮流走,分别有各自的队列和标记数组。起点每到一个新的状态,就到终点的标记数组中查询,判断是否有交点。终点也是做一样的操作。注意:Hash时如果像我一样8进制压缩,每个数必须是0~7的,也就是输入的坐标要减1代码: #include #in
Baoli1008
·
2015-08-17 14:00
双向搜索
UVA 10651 Pebble
Solitaire
消黑棋的游戏,用字符串搜索做的。题目大概意思是说,每次给你一条字符串,有黑又白,如果存在两个黑棋相连,旁边一个白棋的情况,那么可以挑一个黑棋,同时消中间的黑棋。问这样下去最少剩下几个黑棋。用C++的字符串每次提取三个连续的字符,判断能否符合跳跃消去的条件,如果可以,跳跃并消去,然后接着继续搜索。#include #include #include #defineINF(1m; strings; i
lizhaowei213
·
2015-08-17 09:00
js+canvas实现纸牌游戏
废话不多说,先上地址https://github.com/dogzhang/
Solitaire
_Html.git运行截图最后如果完成了会有结束动画,我技术比较渣,难以玩到结束,就不上完成动画截图了。
717606641
·
2015-06-12 20:29
游戏制作
canvas
js
html5
纸牌
游戏
VA - 10651 Pebble
Solitaire
题目大意:给出一个12格的棋盘,‘o'代表摆放棋子,’-‘代表没有棋子,当满足’-oo'时,最右边的棋子可以跳到最左边的位子,而中间的棋子则被消除,‘o--',问对于一个给定了的棋盘,通过上述消除棋子的方法最后最少剩几个棋子在棋盘上。解题思路:递归搜索+记忆化,并且记忆化的值为所有测试数据公用的,也就是说在程序运行的开始初始化后,后面无需再进行清0。#include #include #incl
kl28978113
·
2015-03-16 20:00
UVA 10651 Pebble
Solitaire
(bfs+hash)
题目大意:给出一个12格的棋盘,'o'代表摆放棋子,'-'代表没有棋子,当满足'-oo'时,最右边的棋子可以跳到最左边的位子,而中间的棋子则被消除,'o--',问对于一个给定了的棋盘,通过上述消除棋子的方法最后最少剩几个棋子在棋盘上。解析:这题可以直接暴力解决,方法是bfs+hash判重,对于每种当前的状态,可以衍生出新的状态,把这些状态都push进队列中,用一个变量记录这些状态中点最少的。#in
HelloWorld10086
·
2015-01-06 19:00
uva
Pebble
Solitaire
10651
poj 1198 hdu 1401 搜索+剪枝
Solitaire
写到一半才发现可以用双向搜索4层来写,但已经不愿意改了,干脆暴搜+剪枝水过去算了。想到一个很水的剪枝,h函数为 当前点到终点4个点的最短距离加起来除以2,因为最多一步走2格,然后在HDU上T了,又发现再搜索过程中,这个估价函数应该是递减的(贪心),再加上这个剪枝就过了。#include #include #include #include #include #include #include #i
t1019256391
·
2014-10-04 22:00
Solitaire
记忆化搜索dp【还剩下几个】【倒1】【倒2】【倒3】CFJAVA中publicstaticclass前面好像不能再开类了,连注释掉的类也不可以,好像是个BUG???B.Solitairetimelimitpertest2secondsmemorylimitpertest256megabytesinputstandardinputoutputstandardoutputAboynamedVasyaw
u012797220
·
2014-09-06 00:00
poj 2090 Two-Stacks
Solitaire
这道题不是特别简单,我自己考虑了很久,未果。于是希望在网络上找到参考,但是网上参考不多题意:给一个数列,两个栈,要求数列从后往前依次入栈,问能否使出栈序列是不减的。(双栈排序)分析:利用二分图染色法。首先观察那些牌绝对不能压入同一个栈,若两个不能入同一栈则连一条边,然后根据二分图染色,看是否能构成二分图。如果不能直接输出impossible两张牌i,j不能入同一栈的充要条件是,i>j>k(i最先入
Scythe666
·
2014-08-05 10:00
uva10651 - Pebble
Solitaire
(记忆化搜索)
题目:uva10651-PebbleSolitaire(记忆化搜索)题目大意:12个坑,每个坑里面可以放卵石,也可以不放。然后如果出现00-或是-00这样的情况,就可以变成--0和0--。给定初始的状态问最总剩余的卵石个数。解题思路:这里只有12的位置,并且每个位置只有两种可能,所以可以用二进制数来表示所有的状态。判断卵石的情况每次都是3个3个判断,发现能够转换,就变换成另一个状态直到不能转换为止
u012997373
·
2014-08-02 11:00
POJ 1198
Solitaire
(双向广搜)
题目类型 双向广搜题目意思有一个8×8的棋盘 棋盘上有4个棋子现在给出一个初态和一个终态问能不能在8步内从初态转换到终态每一步可以移动一粒棋子棋子每一步只能向上下左右其中一个方向移一格当目标位置已经有棋子时可以跳一格即现在棋子在(3,3)但(3,2)已经有棋子了那么(3,3)可以跳到(3,1)那格去,同时要求(3,1)不能有棋子解题方法首先计算一下时间复杂度有4个棋子每个棋子的可能最大转移情况是4
Yunyouxi
·
2014-07-28 22:00
搜索
Cow
Solitaire
简单dp
前天次才做过一个是三角形的,就是求一个路径然后最值。这样很明显需要倒着推过去,用一个dp即可;然而这次想着偷个懒,就直接设置了Max,类贪心的解决,结果样例是过去了好多个,但就是wa,后来还是老老实实的写起了dp,AC AC代码:/* Accepted2827C++0.8K0'00.00"1360K */ #include #include usingnamespacestd; intN,t[5
u013652219
·
2014-07-26 20:00
dp倒推
HDU 1401
Solitaire
(双向广搜)
题意:在二维8*8的方格,给定4个初始点和4个最终点,问在8步内是否能从初始点走到最终点,规则:每个点能上下左右移动,若4个方向已经有点则可以跳到下一个点。双向广搜:同时对初始点和最终点广搜4步,对每一步记录状态,初始点为‘1’,最终点为‘2’,若在限定时间内初始点的状态能到达‘2’,或最终点的状态能到达‘1’,则为YES!要记得排序。。#include #include #include #in
u012861385
·
2014-06-20 16:00
HDU1401:
Solitaire
(BFS)
ProblemDescriptionSolitaireisagameplayedonachessboard8x8.Therowsandcolumnsofthechessboardarenumberedfrom1to8,fromthetoptothebottomandfromlefttorightrespectively.Therearefouridenticalpiecesontheboard.I
libin56842
·
2014-04-02 23:00
HDU
bfs
HDOJ 1401
Solitaire
山寨版的双向BFS。。。正着搜的结果存下来,反着收的结果在正着搜的结果里找。。。SolitaireTimeLimit:2000/1000MS(Java/Others) MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):2944 AcceptedSubmission(s):915ProblemDescriptionSolita
u012797220
·
2014-02-17 22:00
UVa 10651 Pebble
Solitaire
(DP&bitset)
10651-PebbleSolitaireTimelimit:3.000seconds http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=1592化为二进制进行状态转移,详见代码。完整代码:/*0.016s*/ #include us
synapse7
·
2013-11-24 12:00
C++
ACM
uva
UVa:10651 Pebble
Solitaire
虽然是动规但我却是用搜索过的。数据量比较小,每个位置就两个移动方向,因此是2^12,相当小。用二进制表示状态(第一次独立写着玩意,居然1Y了,好不容易),1表示'o',0表示'-'。val&x[i]用来判断该位是0或者1,val^x[i]用改变第i位的值用dfs写的,另外开一个数组判重,如果当前状态之前出现过那就没有必要再搜下去了。最后查找出现的所有状态,选里面1个数最少的那个就是答案。 #inc
kkkwjx
·
2013-11-12 13:00
搜索
UVA 10651 Pebble
Solitaire
鹅卵石摆放 记忆化搜索+DFS+记忆化搜索
题意:有12个坑,里面有些鹅卵石,游戏规则:如果有连续的两个鹅卵石,且旁边有个空坑,那可以把旁边的那个鹅卵石跳过空坑中间那个鹅卵石放到空坑里面,而中间那个鹅卵石就被去掉了。只有12个坑,状态为2^12,才4000多个,所以用stl或是位运算去储存都可以,然后DFS。我这里用的是位运算+记忆化搜索,好像没有记忆化也不会超时==PS:这就是传说中的状态压缩?代码:/* *Author:illuz *B
hcbbt
·
2013-11-08 09:00
dp
ACM
UVA 10651 Pebble
Solitaire
状态压缩dp
一开始还在纠结怎么表示一个状态,毕竟是一个串。后来搜了一下题解发现了这里用一个整数的前12位表示转态就好了,1~o,0~'-',每个状态用一个数来表示,然后dp写起来就比较方便了。代码:1#include 2#include 3#include 4#include 5#include 6#include 7#include 8#include 9#include 10#inclu
·
2013-09-18 22:00
AIR
uva 10651 - Pebble
Solitaire
(记忆化搜索)
题目链接:10651-PebbleSolitaire题目大意:给出一个12格的棋盘,‘o'代表摆放棋子,’-‘代表没有棋子,当满足’-oo'时,最右边的棋子可以跳到最左边的位子,而中间的棋子则被消除,‘o--',问对于一个给定了的棋盘,通过上述消除棋子的方法最后最少绳几个棋子在棋盘上。解题思路:递归搜索+记忆化,并且记忆化的值为所有测试数据公用的,也就是说在程序运行的开始初始化后,后面无需再进行
u011328934
·
2013-09-17 21:00
UVA 10651 Pebble
Solitaire
(bfs + 哈希判重(记忆化搜索?))
ProblemAPebbleSolitaireInput: standardinputOutput: standardoutputTimeLimit: 1second Pebblesolitaireisaninterestinggame.Thisisagamewhereyouaregivenaboardwithanarrangementofsmallcavities,initiallyallbut
u011217342
·
2013-09-03 23:00
HUNNU11352:Digit
Solitaire
Problemdescription Despitethegloriousfallcolorsinthemidwest,thereisagreatdealoftimetospendwhileonatrainfromSt. LouistoChicago.Onarecenttrip,wepassedsometimewiththefollowinggame.Westartwithapositivein
libin56842
·
2013-08-30 17:00
水
mcpc
hdu 1401
Solitaire
(char数组判重节约内存+伪dbfs)
SolitaireTimeLimit:2000/1000MS(Java/Others) MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):2611 AcceptedSubmission(s):850ProblemDescriptionSolitaireisagameplayedonachessboard8x8.Therows
u010228612
·
2013-08-03 17:00
UVa 10651 Pebble
Solitaire
记忆化搜索+位运算
/** *位运算+记忆化搜索: *这题就当做是熟悉熟悉位运算,练练简单的记忆化搜索的。 *要是熟悉了位运算,这题其实很容易的。 *依题意:一排有12个位置,这样用int去压缩也是很足够的。 *对于一个数的每个位,0表示空,1表示有。 *然后遍历的时候三个三个去分析,然后dfs记忆化搜一下就行了。 */ #include #include #include #include #include #d
xuruoxin
·
2013-07-31 10:00
hdu1401
Solitaire
(dbfs)
SolitaireTimeLimit:2000/1000MS(Java/Others) MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):2539 AcceptedSubmission(s):826ProblemDescriptionSolitaireisagameplayedonachessboard8x8.Therows
ophunter
·
2013-07-16 13:00
bfs
uva10651 - Pebble
Solitaire
(状态压缩)
状态压缩+记忆化搜索状态压缩对位运算要求的较多。对位运算不熟的话就复习一下吧。纯正的暴力然后用记忆化搜索剪枝。碰到合适的情况就转移。【向右或向左】求最后在棋盘上剩余最少的棋子数目。代码如下:#include #include #include usingnamespacestd; #defineN4500 intdp[N]; chars[25]; intdfs(inttotal) { int&an
shankeliupo
·
2013-06-20 20:00
UVa10651 Pebble
Solitaire
UVa10651PebbleSolitaire题意:n组测试数据,每个测试数据有12个字符构成。'o'表示当前位置有珠子,‘-’表示是空位,如果有两个珠子连在一起,且两个珠子的左右有空位,那么,就可以把一个珠子越过另一个珠子,占据空了的位置(左边或右边的空位都可以。很像跳棋)状态压缩DPload……
yew1eb
·
2013-05-18 17:00
UVa 10651 - Pebble
Solitaire
状态压缩 dp
ProblemAPebbleSolitaireInput: standardinputOutput: standardoutputTimeLimit: 1second Pebblesolitaireisaninterestinggame.Thisisagamewhereyouaregivenaboardwithanarrangementofsmallcavities,initiallyallbut
cyendra
·
2013-05-02 16:00
题解
dp
动态规划
状态压缩
UVa 10651 Pebble
Solitaire
(DFS)
题目:有一些格子,这些格子都是挨着的,并排摆放的,有的格子里面有石子,有的没有,当满足一下条件的时候,就会做一下的操作: 条件:用1表示有格子,0表示没有。如果连续的三个格子的状态是011,就把它给成100,相当于将最后边的1放到最左边,然后去掉中间的那个1;如果是110,就改成001,即将最左的1放大最右,然后去掉中间的那个。分析:还是搜索。这道题,一共只有12个格子,从数据上来
AClion
·
2013-04-10 21:00
Uva - 10651 - Pebble
Solitaire
题意:12个位置,有些有鹅卵石,有些是空的,2个连续的鹅卵石,如果其左边连着的那个是空的,那么第二个鹅卵石可移动到那个空的位置上,并移除第1个鹅卵石;如果其右边连着的那个是空的,那么第一个鹅卵石可移动到那个空的位置上,并移除第2个鹅卵石。问最后最少可以剩下多少个鹅卵石。题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&
SCNU_Jiechao
·
2013-03-16 16:00
记忆化搜索 uva-10651-Pebble
Solitaire
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1592 题目意思:给一串-和o组成的字符串,你可以把“-oo"变成”--o",可以把“oo-”变成“--o",问最后最少有多少个o. 解题思路:采用记忆化搜素的方法,用map标记是否访问过,用st
cc_again
·
2013-03-13 19:00
HDU 1401
Solitaire
(双向BFS)
题目链接:Clickhere~~题意:1个8x8的棋盘有4个棋子,棋子可以上下左右走(包括跳过相邻的一个)。给出初始状态与目标状态,问8步之内,能否到达。解题思路:一直听说有“双向BFS”这个词,今天终于学了。如果单纯从1个状态开始搜索的话,每步有16种状态需要扩展,复杂度为O(16^8),不可解。如果从2个状态同时搜,那么,每个状态只需要搜4步,复杂度为O(2*16^4),就可解了。其他都好说,
dgq8211
·
2013-03-07 15:00
吴昊品游戏核心算法 Round 9 —— 黑白棋AI系列之西洋跳棋(第二弹)(双向BFS+STL)(POJ 1198)
接上回,如图所示,这是黑白棋的一个变种,
Solitaire
也是一种在智能手机上普遍存在的一种游戏。
·
2013-02-27 21:00
round
吴昊品游戏核心算法 Round 6 —— 独立钻石跳棋游戏AI(BFS)
此人整日面对铁窗,实在无聊,就在当时欧洲流行的棋盘上,设计出一种能一个人玩的棋,这就是“
Solitaire
”(独立钻石)。此后,这个游戏便渐渐流行于世界各地。
·
2013-02-27 21:00
round
UVA 10651 Pebble
Solitaire
大意不再赘述。思路:我想用dfs爆过去,扫描一遍,如果两个相邻并且有空位置的话,对于A、B、C来说,假设A为空,B、C满,注意边界条件,那么当前操作只有两种选择,要么选B,要么选C,搜索树是一棵二叉树,然后加上回溯,剪枝等限制条件在极限条件下过不了,但是广搜可以过,不需要判重,只是找到最小的剩余棋子的个数即可。判DP的方法还再思考。#include #include #include #inclu
Wall_F
·
2013-01-04 22:00
codeforces Codeforces Round #130 (Div. 2) B 208B
Solitaire
记忆化搜索
题意:类似空挡接龙的游戏。设末尾堆编号为x,每一次可以与x-3或者x-1相和。两个头牌子可配的堆可以合成,求最后是否能够和成一堆。做法:暴力搜索不可行。所以DP,那么确定无后效性状态。每个堆相和时,只需考虑x-1,x-3堆的情况。于前面的情况无关。dp[sum][a][b][c]=dp[sum-1][sum-4][b][c]||dp[sum-1][c][a][b]。这里有tirck...#incl
cqlf__
·
2012-11-22 20:00
codeforces 130
solitaire
第一反应是搜索,但裸搜会超时,所以考虑记忆化搜索。f[x][a][b][c]表示当前处理到第x堆,倒数第一第二第三堆的原来序号(也就是覆盖后的序号)为a,b,c; 这里的a和x是一样的吗?不是的,只能说a现在的位置在第x个位置。 f[x][a][b][c]={ f[x-1][b][c][a] || f[x-1][a][c][x-3] }分别对应放在n-3的位置和n-1的位置的两种情况。#inclu
Balloons2012
·
2012-08-13 19:00
上一页
1
2
3
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他