P2575 高手过招(阶梯博弈)

题目链接

每一行都是一个子游戏,很容易想到SG,对每一个子游戏而言最终状态为1全部都在最后,这和标准的阶梯游戏将所有的石子(随便一个代号)全部放到地上一样,不过这里的地面是指最后连续为1的部分,那阶梯的段数是怎样的呢?当该位置为0,则该“阶梯”上的石子数为1,是新的一段,所以段数为上一个阶梯+1,当该位置为1时,它和它左边连续的1构成一个“阶梯”,它上面的石子数为连续的1的个数,同样段数为上一阶梯+1,这样就成功的把这题的情形转化为阶梯模型,则该行的SG值为所有奇数阶梯的异或和

ACCode

#include<iostream>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
typedef long long ll;
const ll inf =1e18;
const int N = 1e3+100;
int sg[N];
int vis[25];
vector<int> vec;
int main() {
	ios::sync_with_stdio(false);
	int t;
	cin >> t;
	while (t--) {
		memset(sg, 0, sizeof(sg));
		int n,ret=0; cin >> n;
		for (int k = 1; k <= n; k++) {
			int cnt,num=0; cin >> cnt;
			memset(vis, 0, sizeof(vis));
			for (int i = 1; i <= cnt; i++) {
				int temp; cin >> temp;
				vis[temp] = 1;
			}
			bool sign = true;
			int right = 20;
			while (vis[right])--right;
			right = min(right, 19);
			int t_ret = 0;
			for (right; right >= 1; right--) {
				if (vis[right]) num++;
				else {
					if (sign) t_ret ^= num;
					num = 0;
					sign = !sign;
				}
			}
			if (sign) t_ret ^= num;//注意可能最左端都为1,上面判断不到,我少了这卡了一下午233
			ret ^= t_ret;
		}
		
		if (ret == 0) {
			cout << "NO" << endl;
		}
		else {
			cout << "YES" << endl;
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《水果忍者》是一个著名的手机游戏,也是被广大玩家所喜爱的一款休闲游戏。而Cocos Creator是一款游戏开发引擎,可以帮助开发者更便捷地制作出游戏。 在Cocos Creator中制作《水果忍者》这款游戏,首先需要设计游戏界面和角色形象。通过Cocos Creator提供的丰富的图形和动画编辑工具,可以轻松地创建出绚丽的游戏场景和各种水果形象。此外,Cocos Creator还提供了碰撞检测系统,可以实现切割水果的效果,让玩家获得更真实的游戏体验。 接下来,开发者需要编写游戏逻辑和操作控制代码。通过Cocos Creator提供的JavaScript脚本编辑器,可以轻松地添加游戏中的各种动作和规则,比如切割水果的触发条件和得分规则等。同时,Cocos Creator还可以通过简单的拖拽和点击操作,实现玩家手势控制,让游戏更加直观和有趣。 再者,Cocos Creator提供了直接导出到多个平台的功能,可以将制作好的《水果忍者》游戏一键导出为Android、iOS等平台的应用程序,方便开发者进行发布和分发。 总而言之,Cocos Creator是一款功能强大的游戏开发引擎,可以帮助开发者制作出精美的《水果忍者》游戏。它提供了丰富的图形和动画编辑工具,碰撞检测系统以及方便的脚本编辑器等功能,让开发者能够快速而轻松地实现游戏的制作和发布。 ### 回答2: 《水果忍者》是一款由Cocos Creator引擎开发的经典休闲游戏。它是一款划水果的游戏,玩家需要通过滑动屏幕,用自己的手指来划破从屏幕上飞过的水果,同时要避免划到炸弹。游戏具有简单易懂的玩法和富有挑战性的关卡设计,让玩家可以轻松上手并享受游戏的乐趣。 在游戏中,玩家可以选择不同的游戏模式,包括经典模式、闯关模式和多人对战模式。经典模式是最基础的模式,玩家需要在有限的时间内尽可能地划破更多的水果,以获取高分。闯关模式则需要玩家在每一关中完成特定任务,如划破特定数量的水果或在时间限制内达到一定分数。多人对战模式允许玩家与其他玩家进行实时对战,争夺最高分数。 游戏中的水果种类多样,有苹果、香蕉、橙子等各种水果,它们会以不同的速度和方向飞过屏幕。而玩家需要在短暂的时间内准确定位并快速划过水果,在划过水果时还可以通过改变划破的路径和速度来获得额外的分数。炸弹则会偶尔出现,如果玩家划到炸弹,游戏将立即结束,失去当前的得分。 此外,游戏还提供了丰富的角色和道具,玩家可以通过解锁和购买来增强游戏体验。例如,玩家可以解锁不同的忍者角色,每个角色都有其独特的能力和特殊技能。道具方面,有各种增强能力的道具,如时间延长道具、分数加倍道具等,可以帮助玩家更高效地划破水果并获得更高的得分。 《水果忍者》以其简单而富有挑战性的游戏玩法,以及精美的画面和音效,成为了广受欢迎的休闲游戏之一。无论是在闲暇时光中放松身心,还是与朋友们一同竞技过招,都能带给玩家愉快的游戏体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值