蓝桥杯纸牌三角型

https://www.lanqiao.cn/problems/639/learning/
A,2,3,4,5,6,7,8,9 共 99 张纸牌排成一个正三角形(AA 按 11 计算)。要求每个边的和相等。 下图就是一种排法。

在这里插入图片描述

这样的排法可能会有很多。

如果考虑旋转、镜像后相同的算同一种,一共有多少种不同的排法呢?

请你计算并提交该数字。


这道题目用全排列还是可以想到的。但是问题是考虑选转镜像后相同的算一种是什么意思呢?

画图解释一下:
旋转三种图

在这里插入图片描述

镜像翻转三种图:
在这里插入图片描述
这六种情况是一样的。

注:虽然这六种情况的边长都是一样的,但是不可以把边长一样的作为相同的判定条件。

这两个三角形边长都是一样的,但是却无法镜像或者旋转得到。
在这里插入图片描述
那我们怎么把相同的三角形(就是那6种)排除成1种呢?

把答案 / 6即可。
可以这么想,上面6个为一组,所有答案里面有多少组那样的,即为答案。

代码:

#include <iostream>
#include <algorithm>

using namespace std;

int card[] = {1,2,3,4,5,6,7,8,9};
int ans;

bool isValid(int* card)
{
	int s1 = 0, s2 = 0, s3 = 0;
	for(int i = 0; i < 4; i++) s1 += card[i];
	for(int i = 3; i < 7; i++) s2 += card[i];
	s3 = card[6] + card[7] + card[8] + card[0];
	
	if(s1 == s2 && s2 == s3 && s1 == s3) return true;
	return false;
}

int main()
{
	do
	{
		if(isValid(card))
			ans++;
    }while(next_permutation(card, card + 9));
	
	cout << ans / 6;	
}

注:求边长的时候要注意下标的正确性。它并不是按顺序求和的。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Delphi纸牌游戏是一款很受欢迎的单人纸牌游戏。游戏规则简单,但是有一定的策略性和挑战性。 在游戏开始时,首先需要准备52张扑克牌,将其洗乱并平铺在桌面上形成一个牌堆。然后,从牌堆中依次取出3张牌,并将它们放置在桌面上,这些牌将成为游戏的基础牌堆。接下来,从剩余的牌堆中翻开一张牌,放在基础牌堆的上方,这张牌被称为"Delphi牌"。 游戏的目标是通过合理的策略,依次将基础牌堆的牌按照从小到大的顺序堆放到相应的区域。牌堆的堆放规则是:每张牌都必须比其上方的牌小或者比其下方的牌大。如果某张牌无法进行堆放,那么它将成为牌堆的底部。 游戏继续进行,每次可以从剩余牌堆中翻开一张牌放在Delphi牌上方,并根据翻开的牌与基础牌堆的牌的关系进行堆放。如果基础牌堆的所有牌都成功堆放到相应区域,那么游戏获胜。 Delphi纸牌游戏的挑战在于玩家需要合理利用剩余的牌堆和Delphi牌,通过观察和分析牌的分布情况,做出正确的选择,从而达到堆放牌的目标。 总的来说,Delphi纸牌游戏简单易学,但是需要一定的思考和决策,适合那些喜欢纸牌游戏的人挑战自己的智力和策略能力。 ### 回答2: Delphi纸牌游戏是一种经典的单人纸牌游戏,它是基于希腊神话的,所以得名Delphi。这个游戏需要一副标准的52张纸牌,并且需要在桌面上形成三个金字塔形状。 游戏的目标是将所有纸牌从金字塔中移除并且配对,直到没有剩余的纸牌可供选取。配对的规则是有点特别的,只有两个牌都是King或者两个牌的点数之和为13才能配对。例如,Ace(1点)可以和Queen(12点)进行配对,2可以和Jack(11点)进行配对,依此类推。 玩家需要在纸牌金字塔中的牌堆中选择可点击的纸牌,当一对纸牌配对成功时,这两张纸牌会被移除。而不能配对的纸牌则需要留在金字塔中。如果所有的纸牌配对成功并且被移除,则玩家获胜。然而,如果没有可供配对的纸牌且还有剩余纸牌,则游戏失败。 Delphi纸牌游戏需要玩家运用策略和记忆力。玩家需要选择性地将纸牌从金字塔中移除,以便留下更多匹配的机会。此外,在进行配对选择时,玩家必须考虑到纸牌是如何叠放的,因为仅最上面的纸牌是可以点击的。 Delphi纸牌游戏是一种简单却有趣的纸牌游戏,它可以让玩家在休闲时间放松身心,同时也可以锻炼他们的逻辑思维和记忆力。无论是独自挑战还是与朋友们一起竞争,Delphi纸牌游戏都能为玩家带来乐趣和挑战。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值