24Pointgame-----24点游戏
题意简单 第一行是 测试数据有几组 然后分别有 几行 第一个数字是 有几个数字 第二个是 需要配出来的数字
下面附上我的代码 --- 我感觉 我这个代码 和其他人的都不一样 , 并且我的代码比较简洁 , 而且测试数据 还有我自己想过的数据 都过了 但是就是提交的时候总是 wrong why ? 这是天将降大任于斯人也 么?
那也不用每一道题都这样坑我吧 ? 努力发现问题 !!!!
/* 坚持一下 可以找到bug 的 */
#include<stdio.h>
#include<math.h>
#include<string.h>
int n,n1,visited[];
double a[],target,zero=0.000001;
bool DFS(double sum)
{
if(n1==n)
{
if(fabs(sum-target)<zero)
return true;
else
return false;
}
for(int i=;i<n;i++) // 这里出了错误 i 应该是从0 开始 后来修改代码的时候 没有注意到这一点
{
if(!visited[i])
{
visited[i]=;
n1++;
if(DFS(sum+a[i]))
return true;
if(DFS(sum*a[i]))
return true;
if(DFS(sum-a[i]))
return true;
if(DFS(sum/a[i]))
return true;
if(DFS(a[i]-sum))
return true;
if(DFS(a[i]/sum))
return true;
visited[i]=;
n1--;
}
}
return false;
}
int main()
{
int t,i,mark;
scanf("%d",&t);
while(t--)
{
scanf("%d%lf",&n,&target);
for(i=;i<n;i++)
scanf("%lf",&a[i]);
memset(visited,,sizeof(visited));
for(mark=,i=;i<n;i++)
{
n1=;
visited[i]=;
if(DFS(a[i]))
{
mark=;
break;
}
visited[i]=;
}
if(!mark)
printf("Yes\n");
else
printf("No\n");
}
return ;
}
实在是找不到 错误之处 , 先放在这 清醒一段时间之后 开始 再试试
今天早上 来了之后 一遍 就 A 了 反映的问题 是 之前 修改代码 没有 修改深度搜索中 的 i 值 做题的时候 事先在纸上 理清思路然后再开始 敲代码省时又省力!
下面附上正确的代码
#include<stdio.h>
#include<string.h>
#include<math.h>
int n,target,visited[],m;
double a[],zero=1e-;
bool DFS(double sum)
{
if(m==n&&fabs(sum-target)<zero)
return true;
for(int i=;i<n;i++)
{
if(!visited[i])
{
m++;
visited[i]=;
if(DFS(sum+a[i])) return true;
if(DFS(sum*a[i])) return true;
if(DFS(sum-a[i])) return true;
if(DFS(sum/a[i])) return true;
if(DFS(a[i]/sum)) return true;
if(DFS(a[i]-sum)) return true;
visited[i]=;
m--;
}
}
return false;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&target);
for(int i=;i<n;i++)
scanf("%lf",&a[i]);
int i,mark;
for(mark=i=;i<n;i++)
{
m=;
memset(visited,,sizeof(visited));
visited[i]=;
if(DFS(a[i]))
{
mark=;
break;
}
}
if(mark)
printf("Yes\n");
else
printf("No\n");
}
return ;
}
24Pointgame-----24点游戏的更多相关文章
- 经典趣味24点游戏程序设计(python)
一.游戏玩法介绍: 24点游戏是儿时玩的主要益智类游戏之一,玩法为:从一副扑克中抽取4张牌,对4张牌使用加减乘除中的任何方法,使计算结果为24.例如,2,3,4,6,通过( ( ( 4 + 6 ) - ...
- cdoj 1252 24点游戏 dfs
24点游戏 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/1252 Descr ...
- 24点游戏&&速算24点(dfs)
24点游戏 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit Sta ...
- 24点游戏详细截图介绍以及原型、Alpha、Beta对比
原型设计 图片展示 功能与界面设计 1.登录注册 2.手机号验证 3.24点游戏 4.粉色系女生界面 Alpha 图片展示 功能与界面设计 1.24点游戏 2.背景音乐 3.可查看多种可能的答案 4. ...
- 【Nodejs】“快算24”扑克牌游戏算法
算24是一款扑克牌游戏,它的游戏方式是把四张牌的牌面数值通过四则运算得到结果24,四张牌必须仅用一次.这是一种挺好的锻炼孩子算数能力的扑克牌游戏. 各地玩法还有点差别,有的只算1-10,其它抽出来:有 ...
- bzoj1215 24点游戏
Description 为了培养小孩的计算能力,大人们经常给小孩玩这样的游戏:从1付扑克牌中任意抽出4张扑克,要小孩用“+”.“-”.“×”.“÷”和括号组成一个合法的表达式,并使表达式的值为24点. ...
- Leetcode 679.24点游戏
24点游戏 你有 4 张写有 1 到 9 数字的牌.你需要判断是否能通过 *,/,+,-,(,) 的运算得到 24. 示例 1: 输入: [4, 1, 8, 7] 输出: True 解释: (8-4) ...
- php实现 24点游戏算法
php实现 24点游戏算法 一.总结 一句话总结:把多元运算转化为两元运算,先从四个数中取出两个数进行运算,然后把运算结果和第三个数进行运算,再把结果与第四个数进行运算.在求表达式的过程中,最难处理的 ...
- Leetcode之深度优先搜索&回溯专题-679. 24 点游戏(24 Game)
Leetcode之深度优先搜索&回溯专题-679. 24 点游戏(24 Game) 深度优先搜索的解题详细介绍,点击 你有 4 张写有 1 到 9 数字的牌.你需要判断是否能通过 *,/,+, ...
- 用python代替人脑运算24点游戏
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:老方玩编程 PS:如有需要Python学习资料的小伙伴可以加点击下方链 ...
随机推荐
- C语言二叉树的创建、(先中后序)遍历以及存在的问题
#include<stdlib.h> #include<stdio.h> #define True 1 #define False 0 typedef char TElemTy ...
- ssh中将常用的命令做别名
1.vim ~/.bashrc 将光标落到user下面 2. 输入 alias x=‘ssh的命令’ 3.按ESC键,退出输入状态: 4.按:,然后输入wq,保存退出: 5. source ~/.ba ...
- python 配置文件 ConfigParser模块
ConfigParser模块 用于生成和修改常见配置文档,当前模块的名称在 python 3.x 版本中变更为 configparser. 来看一个好多软件的常见文档格式如下 [DEFAULT] Se ...
- 九度oj 题目1089:数字反转
题目1089:数字反转 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3531 解决:1935 题目描述: 12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,现在又任 ...
- noip模拟赛 梦想
题目描述 LYK做了一个梦. 这个梦是这样的,LYK是一个财主,有一个仆人在为LYK打工. 不幸的是,又到了月末,到了给仆人发工资的时间.但这个仆人很奇怪,它可能想要至少x块钱,并且当LYK凑不出恰好 ...
- 互联网DSP广告系统架构及关键技术解析
互联网DSP广告系统架构及关键技术解析 宿逆 关注 1.9 2017.10.09 17:05* 字数 8206 阅读 10271评论 2喜欢 60 广告和网络游戏是互联网企业主要的盈利模式 广告是广告 ...
- Mysql优化和执行计划
SQL优化准则 禁用select * 使用select count(*) 统计行数 尽量少运算 尽量避免全表扫描,如果可以,在过滤列建立索引 尽量避免在where子句对字段进行null判断 尽量避免在 ...
- uva 11552 dp
UVA 11552 - Fewest Flops 一个字符串,字符串每 k 个当作一组,组中的字符顺序能够重组.问经过重组后改字符串能够编程最少由多少块字符组成.连续的一段字符被称为块. dp[i][ ...
- shell apt install 按tab键自动补全
insert if [ -f /etc/bash_completion ]; then . /etc/bash_completion fi to ~/.bashrc
- 怎样编译和安装memcached
怎样编译和安装memcached 编译和安装步骤: $ apt-get install git $ git clone https://github.com/memcached/memcache ...