(翻译版本来自 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的人了

代码如下:

#include <bits/stdc++.h>
using namespace std;
int n;
int main() {
scanf("%d",&n);
if (n==1 || n==2 || n==3) { printf("NO"); return 0; }
printf("YES\n");
while (n>=8) {
//n n-1 n-2 n-3
printf("%d - %d = 1\n",n,n-1);
printf("%d - %d = -1\n",n-3,n-2);
printf("1 + -1 = 0\n");
printf("%d + 0 = %d\n",n-4,n-4);
n-=4;
}
if (n==4) {
printf("1 * 2 = 2\n");
printf("2 * 3 = 6\n");
printf("4 * 6 = 24");
}
else if (n==5) {
printf("3 + 4 = 7\n");
printf("7 + 5 = 12\n");
printf("12 * 2 = 24\n");
printf("24 * 1 = 24");
}
else if (n==6) {
printf("6 - 3 = 3\n");
printf("3 + 4 = 7\n");
printf("7 + 5 = 12\n");
printf("12 * 2 = 24\n");
printf("24 * 1 = 24");
}
else if (n==7) {
printf("7 - 6 = 1\n");
printf("3 + 4 = 7\n");
printf("7 + 5 = 12\n");
printf("12 * 2 = 24\n");
printf("24 * 1 = 24\n");
printf("24 * 1 = 24");
}
return 0;
}

其实好像分奇偶性讨论会更简单

CF468A | 24 Game 找规律+打表的更多相关文章

  1. HDU 4731 找规律,打表

    http://acm.hust.edu.cn/vjudge/contest/126262#problem/D 分为3种情况,n=1,n=2,n>=3 其中需要注意的是n=2的情况,通过打表找规律 ...

  2. UVA 10706 Number Sequence (找规律 + 打表 + 查找)

    Problem B Number Sequence Input: standard input Output: standard output Time Limit: 1 second A singl ...

  3. ACM-ICPC 2018 南京赛区网络预赛 - J. Sum (找规律+打表)

    题意:\(f(i):i\)能拆分成两个数的乘积,且要求这两个数中各自都没有出现超过1次的质因子.每次给出n,求\(\sum_{i=1}^{n}f(i)\) 分析:\(1 \le n \le 2e7\) ...

  4. hdu 3032 Nim or not Nim? (sg函数打表找规律)

    题意:有N堆石子,每堆有s[i]个,Alice和Bob两人轮流取石子,可以从一堆中取任意多的石子,也可以把一堆石子分成两小堆 Alice先取,问谁能获胜 思路:首先观察这道题的数据范围  1 ≤ N ...

  5. 计蒜客 39279.Swap-打表找规律 (The 2019 ACM-ICPC China Shannxi Provincial Programming Contest L.) 2019ICPC西安邀请赛现场赛重现赛

    Swap There is a sequence of numbers of length nn, and each number in the sequence is different. Ther ...

  6. E - Fibonacci Again(找规律)

    逐渐发现找规律的美妙之处啦,真不错,用普通方法解决很久或者很麻烦的问题,找到规律就很方便,算法最主要还是思想 Description There are another kind of Fibonac ...

  7. Codeforces Beta Round #24 D. Broken robot (打表找规律)

    题目链接: 点击我打开链接 题目大意: 给你 \(n,j\),再给出 \(m[0]\) 的坐标和\(a[0]-a[n-1]\) 的坐标. 让你输出 \(m[j]\) 的坐标,其中 \(m[i]\) 和 ...

  8. 打表找规律C - Insertion Sort Gym - 101955C

    题目链接:https://cn.vjudge.net/contest/273377#problem/C 给你 n,m,k. 这个题的意思是给你n个数,在对前m项的基础上排序的情况下,问你满足递增子序列 ...

  9. hdu 3032 Nim or not Nim? (SG函数博弈+打表找规律)

    Nim or not Nim? Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Sub ...

随机推荐

  1. Go语言实现:【剑指offer】丑数

    该题目来源于牛客网<剑指offer>专题. 把只包含质因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含质因子7.习惯上我们把1当做是第一个丑 ...

  2. dubbo 分布式服务框架 介绍

    Dubbo是阿里巴巴内部的SOA服务化治理方案的核心框架,每天为2000+ 个服务提供3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点.Dubbo自2011年开源后, ...

  3. 【转载】linux操作系统与应用程序的main函数

    来源:https://blog.csdn.net/h542723151/article/details/52154871 这几天一直在纠结: main函数是程序的入口,一个程序启动后,经过bootlo ...

  4. CoreLocation在iOS8上用法的变化

    1.在使用CoreLocation前需要调用如下函数[iOS8专用]: iOS8对定位进行了一些修改,其中包括定位授权的方法,CLLocationManager增加了下面的两个方法: (1)始终允许访 ...

  5. javascript中onclick(this)用法介绍

    this指触发事件的对象 代码如下: <input id="myinput" type="text" value="javascript中onc ...

  6. 如何用Java8 Stream API找到心仪的女朋友

    传统的的Java 集合操作是有些啰嗦的,当我们需要对结合元素进行过滤,排序等操作的时候,通常需要写好几行代码以及定义临时变量. 而Java8 Stream API 可以极大简化这一操作,代码行数少,且 ...

  7. Webpack实战(七):简单搞懂PostCSS的用法及与一些插件的用法

    不知不觉地春节要来临了,今天已经是放假的第二天,想想回老家之后所有的时间就不是自己的了,要陪孩子玩,走亲戚等等,我还是趁着在郑州的这两天,把几天后春节要发布的文章给提前整整.在此,提前祝大家春节快乐! ...

  8. iOS 中事件的响应链和传递链

    iOS事件链有两条:事件的响应链:Hit-Testing事件的传递链 响应链:由离用户最近的view向系统传递.initial view –> super view –> ….. –> ...

  9. Java之GUI编程

    GUI编程 组建 窗口 弹窗 面板 文本框 列表框 按钮 图片 监听事件 鼠标 键盘事件 破解工具 1.简介 GUI的核心技术:Swing AWT 为什么不流行? 界面不美观. 需要jre环境.(没必 ...

  10. 实战kudu集成impala

    推荐阅读: 论主数据的重要性(正确理解元数据.数据元) CDC+ETL实现数据集成方案 Java实现impala操作kudu 实战kudu集成impala impala基本介绍 ​        im ...