(翻译版本来自 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. Spring监听器---ApplicationListener

    说到事件监听,想到的肯定是观察者模式.但是这儿主要说下spring中的监听是怎么样的流程. 这就不得不说到spring容器的refresh方法,容器启动过程中,listener相关的主要是这个三个方法 ...

  2. C#开源组件DocX处理Word文档基本操作(一)

    C#中处理Word文档,是大部分程序猿绕不过的一道门.小公司或一般人员会选择使用开源组件.目前网络上出现的帖子,大部分是NPOI与DocX,其它的也有.不啰嗦了,将要使用DocX的基本方法贴出来,供参 ...

  3. pytorch之 RNN classifier

    import torch from torch import nn import torchvision.datasets as dsets import torchvision.transforms ...

  4. 使用docker搭建FastDFS

    拉取镜像(使用docker-componse可以忽略) [root@localhost ~]# docker pull phinexdaz/fdfs_tracker [root@localhost ~ ...

  5. 杭电-------2052Picture(C语言)

    #include<stdio.h> int main() { int width, height; int i, j; while (~scanf("%d %d", & ...

  6. K8S ? K3S !

    K8S ? K3S ! K3S 踩坑开始 歪比歪比(奇怪的服务器) 服务器选择我熟悉的 Centos K3S内置 Containerd 但是!作为一个服务器使用自然是要用常见的一点的容器 Docker ...

  7. Jenkins 插件使用国内镜像源-解决插件下载慢的问题

    问题 我们在Jenkins里面经常会遇到安装插件很慢,这是由于我们使用的是更新中心镜像默认为国外的源.现在我们可以进行设置为国内镜像源,来解决安装插件慢的问题. 解决办法 安装插件localizati ...

  8. CSS选择器有哪几种?举例轻松理解CSS选择器

    CSS选择器汇总(清爽版) 1.元素选择器 标签名{ } 2.id选择器 #id属性值{ } 3.类选择器 ·class属性值{ } 4.选择器分组(并集选择器) 作用:通过它可以同时选中多个选择器对 ...

  9. .net core 轻量级容器 ServiceProvider 源码分析

    首先看 ServiceCollection 的定义 //定义 public class ServiceCollection : IServiceCollection { private readonl ...

  10. 推荐一款疫情期间适合在家办公的远程工具,仅需IP和密码轻松实现远程管理

    这段时间,受疫情影响,很多企业都开启了居家办公模式.但疫情突发,大多数人的办公资料没有拷贝打包,对于居家办公的人,尤其是运维人员来说,很难完成顺利完成工作. 像向日葵.teamviewer之类的远程软 ...