CF468A 24 Game 找规律

Posted zhwer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CF468A 24 Game 找规律相关的知识,希望对你有一定的参考价值。

(翻译版本来自 Luogu by lonelysir )

题目描述

小X一直很喜欢一个纸牌游戏:“24点”,但最近他发现这个游戏太简单了,所以他发明了一个新游戏。

你有一个整数序列,包括n个整数:1,2,3,...,n。步骤很简单,你可以从其中拿出两个数,我们假设它们是a和b,将这两个数从序列中删除,并将a+b、a-b或a×b放入这个序列。

经过n?1次操作后,序列中只会剩下一个数,你能把这个数变成是24吗?

输入格式

一行,包括一个数n。 输出格式

如果可以经过操作计算出24,那么在第一行输出"YES",否则输出"NO"。

在可以的前提下,接下来的 (n?1) 行中,每行输出一个计算操作,形如 ("a~~op~~b~~=~~c"),a和b表示你选择的数,而(~op~),则是你使用的计算符号(加、减或乘)。算式中 (abs(c)) 不会超过 (|10^8|)

输出格式

请注意输出的每个算式的字符与数字之间必须有空格。

如果你有多种解决的办法,输出任意一个即可

输入输出样例

输入 #1
1
输出 #1
NO
输入 #2
8
输出 #2
YES
8 * 7 = 56
6 * 5 = 30
3 - 4 = -1
1 - 2 = -1
30 - -1 = 31
56 - 31 = 25
25 + -1 = 24

——————————————————————————————————————————
想着练习一下暴搜搜到的题目,没想到是个规律题233
如果枚举每一种情况的话复杂度就上天了,于是我们开始挖掘题目的特殊性质。
注意到给出的(~N~)个整数,分别是(~1、2、3……N~)
而每连续的四个整数往往可以仅通过加减法组成(~)
例如,有四个连续整数:(~8,9,10,11~)
(~10~+~9~-~8~-~11~=~0~)
于是只要从数列的末尾开始四个四个地消除((0)对答案没有贡献),直到剩余 (4~-~7) 个数
通过人脑的运算我们可以打表出(N=4、5、6、7)时的答案,然后汇总按照题目规范输出即可
PS:当(~N=1、2、3~)时无解,输出"(~NO~)"
辛苦写SPJ的人了

代码如下:

以上是关于CF468A 24 Game 找规律的主要内容,如果未能解决你的问题,请参考以下文章

找规律CodeForce #258 Problem A——Game With Sticks

POJ 2505 A multiplication game(找规律博弈/贪心)

Shell Game-枚举,找规律

POJ 1740 A New Stone Game 又是博弈论配对找规律orz 博弈论 规律

HDU 1564 Play a game(博弈找规律)

HDU 4388 Stone Game II {博弈||找规律}