【CodeForces 208B】Solitaire

该博客讨论了CodeForces上的一道名为'Solitaire'的问题,它是一种类似于空挡接龙的游戏。题目描述了游戏规则,即每次操作可以从末尾堆选择与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],并提到存在一些技巧需要注意。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题意:类似空挡接龙的游戏。设末尾堆编号为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…

    #include <iostream>  
    #include<cstdio>  
    using namespace std;  
    bool dp[55][55][55][55],gra[55][5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

真·skysys

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值