2022-01-13 20:52:15

thumb_up 0


模拟大题

模拟赛没人的碰题,不简单

前言:为了表达,一下将类似于“(((3+5)+2)+7)”的东西称作“形式化”

思路: 在枚举全排列时做关于运算操作,两两合并,枚举四种运算答案与形式

难点:

(1)怎样保存在搜索时的“形式化”答案

(2)两两合并后的回溯问题

(3)字典序问题

解决:

(1)在合并时顺便处理“形式化”的答案

(2)不妨将前后化成一样的赋值方法,类似于:

    1.令a[1]为第一个数,那么易得两两合并与原四个数个数的和为7,因为4个数两两合并会产生4+4-1=7个数2.答案在a[7]3.因为是直接赋值所以不用回溯

(3)取库里的min,字符串大小比较标准就是字典序

形式化可以与a[7]的思路一样

0.代码:

#include<bits/stdc++.h>using namespace std;int a[10];
string ans,s[10];
bool v[10],g[10];
//s——形式化答案
void dfs(int k){if(k==7){if(a[7]==24){if(ans == "") ans = s[7];//7是答案ans=min(ans,s[7]);}return;}for(int i=1;i<=k;i++)//到k是因为每次操作会多一个数{if(!v[i]){v[i]=true;for(int j=1;j<=k;j++){if(i==j)  continue;//合并i,j两个数值if(!v[j]){//基本全排列判重v[j]=true;//标记a[k+1]=a[i]+a[j]//数值处理;s[k+1]="("+s[i]+"+"+s[j]+")";//形式化处理dfs(k+1);a[k+1]=a[i]-a[j];s[k+1]="("+s[i]+"-"+s[j]+")";dfs(k+1);a[k+1]=a[i]*a[j];s[k+1]="("+s[i]+"*"+s[j]+")";dfs(k+1);//同上if(a[j] != 0)//被除数不为0if(a[i]%a[j]==0){//能整除s[k+1]="("+s[i]+"/"+s[j]+")";a[k+1]=a[i]/a[j];dfs(k+1);}v[j]=false;//回溯}}v[i]=false;}}
}
int main()
{for(int i=1;i<=4;i++)  cin >> a[i];for(int i=1;i<=4;i++)  s[i]+=char(a[i]+48);//形式化s[1-4]先与a[1-4]相同dfs(4);//先是枚举(1~4的合并)cout << ans;return 0;
}

luogu P1834 速算游戏 题解相关推荐

  1. 【暴力枚举】速算游戏 fun.pas/c/cpp

    速算游戏 fun.pas/c/cpp 源程序名 fun.pas|c|cpp 输入文件名 fun.in 输出文件名 fun.out 时间限制 1s/testcase 空间限制 32MB 问题描述 jyx ...

  2. 速算24点java_24点速算游戏 Java 代码

    import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.H ...

  3. 改进后的速算小游戏(2011211909 苟玲、2011211933 郝怡然)

    1.开发环境: Visual  C++  6.0  使用C语言编写 2.功能说明: 该游戏是几个小游戏的结合体,主要是针对小学生的速算练习.其改进之处在于在普通的速算程序的基础上添加了几个小游戏,在进 ...

  4. Python写个小游戏:速算24点(上)

    文章目录 前言 速算24点 1. 玩法简介 2. 游戏流程 3. 搭建游戏界面 1). 基本界面 2). 洗牌.发牌 洗牌 发牌 3). 计时器 4). 玩家输入公式(答案) StringVar类 按 ...

  5. Python写个小游戏:速算24点(下)

    文章目录 前言 速算24点 1. 玩法简介 2. 游戏流程 3. 剩下的部分 1). 关卡 / 分数信息 IntVar类 2). 提示按钮 图片 按钮 3). 重新发牌 4. 让电脑计算24点 1). ...

  6. 计算机二十四点游戏,比比速算24点游戏

    电脑扑克牌游戏试运行在PC端的智力小游戏,这次带来的是比比速算24点游戏,学习纸牌的同时还能不断提高你的头脑思维能力,让你的智商一天比一天更高.比比速算24点游戏设置了一级高手.二级能手.三级好手.四 ...

  7. 速算C语言程序设计,C语言程序设计课程设计-速算24.doc

    该设计论文已经通过各大高校老师审核认可并通过答辩,准确完整无误.欢迎大家下载学习交流.如有疑问可随时联系店主,竭诚为您解答!! 应用技术学院 课 程 设 计 报 告 课程名称 C语言课程设计 课题名称 ...

  8. 下坠的小鸟(flappy bird)速算版

    下坠的小鸟速算版是根据著名的像素鸟(flappy bird)改编而成的一款运行在pc web上的游戏,它跟传统的玩法稍有不同,你必须时刻计算当前数字的倍数,以便为通过下一个数字缺口做准备,而不仅仅只是 ...

  9. PHP怎么做一个加法口诀,神奇的手指速算口诀,100以内的加减法一分钟学会

    手指速算是一套手.心.脑并用的科学计算方法,教孩子学会,既能开发大脑.增强动作协调能力和记忆力,还能增强学习兴趣哦~ 学起来并不难哦,爸爸妈妈可以和孩子一起算一算,比比看谁更快! 手指速算秘诀 准备: ...

最新文章

  1. uboot启动linux,uboot中ramdisk启动linux的两种方法
  2. [vue] vue为什么要求组件模板只能有一个根元素?
  3. 5如何让进行项目管理
  4. java string的作用_浅谈java String不可变的好处
  5. vue打包后CSS中引用的背景图片不显示问题
  6. BGP AS过滤列表
  7. paip.为什么软件体积越来越大
  8. Materials studio中的简单聚合物的建立及盒子的弛豫
  9. 在MFC中的socket编程
  10. java 压力测试_记一次完整的java项目压力测试
  11. 电脑如何分盘win10_Win10电脑如何刻录光盘?利用win10自带刻录工具来刻录DVD光盘教程...
  12. handsome主题添加服务器信息,handsome主题时光机微信发送系统
  13. 顶!Python 与 Excel 终于在一起了
  14. 质量管理体系认证的有关知识
  15. 笔记本电脑玩魔兽争霸 屏幕比例小了怎么办?
  16. 一图看懂LGPL,MPT,GPL,BSD,MIT,Apache协议(最新版)
  17. node爬虫_爬取斗图啦网站上的表情包
  18. 对于全栈工程师的思考
  19. 1080P和720P电影的分辨率到底是多少
  20. Android微信界面的制作

热门文章

  1. 【产品-用户反馈-大众点评】
  2. Based on configured schedule, the given trigger will never fire.
  3. python之去除文本标点符号
  4. HTTP协议的详解(简单易懂)
  5. python -v 和-V
  6. 狂神说SpringMVC08:拦截器+文件上传下载
  7. 银河麒麟桌面系统与高级服务器系统实际机器上安装
  8. 网络攻击是如何运作的—一份完整的列表
  9. QT设置应用程序的图标
  10. 滑动窗口算法(Sliding Window Algorithm)