首页 > 其他分享 >42点

42点

时间:2024-04-09 16:55:31浏览次数:10  
标签:ch return int sum 42 DFS numList

0.题目介绍

【题目描述】
请你设计一个程序对该问题进行解答。
众所周知在扑克牌中,有一个老掉牙的游戏叫做 24 点,选取 4 张牌进行加减乘除,看是否能得出 24 这个答案。
现在小蓝同学发明了一个新游戏,他从扑克牌中依次抽出6张牌,注意不是一次抽出,进行计算,看是否能够组成 42 点,满足输出 YES,反之输出 NO。
最先抽出来的牌作为第一个操作数,抽出牌做第二个操作数,运算结果再当作第一个操作数,继续进行操作。
注:除不尽的情况保留整数,而且扑克牌的四张 10都丢了,不会出现 10。
请设计一个程序对该问题进行解答。

【输入描述】
输出仅一行包含 6 个字符。
保证字符 ∈ 3 4 5 6 7 8 9 10 J Q K A 2。

【输出描述】
若给出到字符能够组成 42点 , 满足输出 YES,反之输出 NO。

1.题解

1.1 DFS暴力回溯

思路

由于一共就六张牌,可以使用DFS直接暴力回溯

代码

#include<bits/stdc++.h>
using namespace std;
bool flag = false;
int numList[6];

int getNum(char ch) {
	if(ch == 'A') return 1;
	else if (ch == 'K') return 13;
	else if (ch == 'Q') return 12;
	else if (ch == 'J') return 11;
	else return ch - '0';
}

void DFS(int x, int sum) {
	if(x == 6) {
		if(sum == 42) {
			flag = true;
		}
		return;
	}

	DFS(x + 1, sum + numList[x]);
	DFS(x + 1, sum - numList[x]);
	DFS(x + 1, sum * numList[x]);
	DFS(x + 1, sum / numList[x]);
}
int main() {
	for (int i = 0; i < 6; i++) {
		char ch;
		cin >> ch;
		numList[i] = getNum(ch);
	}

	DFS(0, 0);
	if(flag) cout << "YES";
	else cout << "NO";
	return 0;
}

标签:ch,return,int,sum,42,DFS,numList
From: https://www.cnblogs.com/trmbh12/p/18124313

相关文章

  • Day5.一刷数据结构算法(C语言版) 242有效的字母异位词; 349两个数组的交集; 202快乐数; 1
        现在我们开始学习哈希表.        经过本次学习我认识到c++的便利,但是我使用的是c,那些功能c又用不了,导致代码长度一下子拉长了...        一刷的时候我还是先用c吧,等二刷的时候试试c++.        进入正题:        什么时候......
  • 2-42. 场景切换淡入淡出和动态 UI 显示
    添加Canvas添加FadePanel通过修改CanvasGroup的Alpha就能隐藏或者显示FadePanel在FadePanel下面添加文字和动画动画图片如下图所示切换场景时淡入淡出修改Settings修改Player解决摄像机抖动问题修改Bounds范围项目相关代码代码仓库:https:/......
  • Java/Mysql数据库+django学生就业管理系统 24237(免费领源码)计算机毕业设计项目推荐上
    学生就业管理系统摘 要随着社会的快速发展和人们生活水平的不断提高,旅游已逐渐成为人们生活的重要组成部分,用户能够获取旅游信息的渠道也随信息技术的广泛应用而增加。大量未经过滤的信息在展示给用户的同时,也淹没了用户真正感兴趣的信息。为了方便用户快速定位自己感兴趣......
  • P2542 [AHOI2005] 航线规划
    P2542[AHOI2005]航线规划trick+树剖首先删边操作困难,考虑倒序处理。发现题目中的关键性质:无论航线如何被破坏,任意时刻任意两个星球都能够相互到达。在整个数据中,任意两个星球之间最多只可能存在一条直接的航线。这说明无论何时图都是连通的,那么我们完全可以建一棵树,再考虑加......
  • MANA 420决策管理研究
    最终研究报告:概述决策管理研究MANA420–2024年冬季–C部分本项目的目的是让学生进行研究并撰写技术报告关于管理层可访问和感兴趣的研究结果,以及行政从业者。学生将利用先前课程课业中培养的技能(a)根据过去的文献建立一个框架,并撰写假设,(b)使用统计包,(c)解释其数据分析的结果,以及(d)......
  • LeetCode-142. 环形链表 II【哈希表 链表 双指针】
    LeetCode-142.环形链表II【哈希表链表双指针】题目描述:解题思路一:快慢指针判断是否有环见解题思路二:set()解题思路三:0题目描述:给定一个链表的头节点head,返回链表开始入环的第一个节点。如果链表无环,则返回null。如果链表中有某个节点,可以通过连续跟踪next......
  • 题解 CF1942F【Farmer John's Favorite Function】
    萌萌F题,上大分。首先,如下定义\(g(i)\):\(g(1)=\lfloor\sqrt{a_1}\rfloor\);对于所有\(i>1\),\(g(i)=\lfloor\sqrt{g(i-1)+a_i}\rfloor\)。也就是将\(f(i)\)的每一步运算后都向下取整。注意到\(\lfloorf(i)\rfloor=g(i)\)恒成立,于是我们只需要转而求每次修改后\(g(n......
  • CF1942F Farmer John's Favorite Function
    题意简述定义\(f_i=\sqrt{f_{i-1}+a_i},f_0=0\)。有\(q\)次操作,每次操作单点修改一个\(a_i\)的值,每次修改后求\(\lfloorf_n\rfloor\)的值。\(n,q\le2\times10^5,0\lea_i\le10^{18}\)。分析发现这个\(f_i\)不是整数非常不利于我们做题,考虑将它变成整数。令新的......
  • CodeForces 1942E Farm Game
    洛谷传送门CF传送门不妨假设先手的牛在后手的牛左边,右边是对称的。直接给出结论:先手必败当且仅当全部\(b_i-a_i\)为奇数。证明考虑归纳,首先\(\foralli\in[1,n],b_i-a_i=1\)是必败态,因为先手只能往左退,最后后手会把先手逼到最左边使得它无法动弹。然后若存在......
  • CodeForces 1942F Farmer John's Favorite Function
    洛谷传送门CF传送门考虑一些复杂度带根号的做法。考虑分块,对于一个块,我们需要处理出一个数经过这个块会变成哪个数。以下假设块长\(\ge10\)(最后一个块块长可能\(<10\),暴力处理即可)。观察这个递推式\(f_i=\left\lfloor\sqrt{f_{i-1}+a_i}\right\rfloor\),发现对于一......