题意简单     第一行是  测试数据有几组   然后分别有  几行  第一个数字是  有几个数字  第二个是 需要配出来的数字

下面附上我的代码   ---   我感觉 我这个代码 和其他人的都不一样 , 并且我的代码比较简洁 , 而且测试数据  还有我自己想过的数据 都过了  但是就是提交的时候总是  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点游戏的更多相关文章

  1. 经典趣味24点游戏程序设计(python)

    一.游戏玩法介绍: 24点游戏是儿时玩的主要益智类游戏之一,玩法为:从一副扑克中抽取4张牌,对4张牌使用加减乘除中的任何方法,使计算结果为24.例如,2,3,4,6,通过( ( ( 4 + 6 ) - ...

  2. cdoj 1252 24点游戏 dfs

    24点游戏 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/1252 Descr ...

  3. 24点游戏&&速算24点(dfs)

    24点游戏 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Sta ...

  4. 24点游戏详细截图介绍以及原型、Alpha、Beta对比

    原型设计 图片展示 功能与界面设计 1.登录注册 2.手机号验证 3.24点游戏 4.粉色系女生界面 Alpha 图片展示 功能与界面设计 1.24点游戏 2.背景音乐 3.可查看多种可能的答案 4. ...

  5. 【Nodejs】“快算24”扑克牌游戏算法

    算24是一款扑克牌游戏,它的游戏方式是把四张牌的牌面数值通过四则运算得到结果24,四张牌必须仅用一次.这是一种挺好的锻炼孩子算数能力的扑克牌游戏. 各地玩法还有点差别,有的只算1-10,其它抽出来:有 ...

  6. bzoj1215 24点游戏

    Description 为了培养小孩的计算能力,大人们经常给小孩玩这样的游戏:从1付扑克牌中任意抽出4张扑克,要小孩用“+”.“-”.“×”.“÷”和括号组成一个合法的表达式,并使表达式的值为24点. ...

  7. Leetcode 679.24点游戏

    24点游戏 你有 4 张写有 1 到 9 数字的牌.你需要判断是否能通过 *,/,+,-,(,) 的运算得到 24. 示例 1: 输入: [4, 1, 8, 7] 输出: True 解释: (8-4) ...

  8. php实现 24点游戏算法

    php实现 24点游戏算法 一.总结 一句话总结:把多元运算转化为两元运算,先从四个数中取出两个数进行运算,然后把运算结果和第三个数进行运算,再把结果与第四个数进行运算.在求表达式的过程中,最难处理的 ...

  9. Leetcode之深度优先搜索&回溯专题-679. 24 点游戏(24 Game)

    Leetcode之深度优先搜索&回溯专题-679. 24 点游戏(24 Game) 深度优先搜索的解题详细介绍,点击 你有 4 张写有 1 到 9 数字的牌.你需要判断是否能通过 *,/,+, ...

  10. 用python代替人脑运算24点游戏

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:老方玩编程 PS:如有需要Python学习资料的小伙伴可以加点击下方链 ...

随机推荐

  1. 省市区json结构

    [ { "label": "北京市", "value": "北京市", "children": [ ...

  2. (一)U-Boot启动过程--详细版的完全分析

    博客地址:http://blog.csdn.net/hare_lee/article/details/6916325

  3. vs2017 添加引用时 未能完成操作。不支持此接口

    打开vs2017开发者命令提示符 切换至安装下的指定目录 执行下面的命令就可以了    需要注意的是一定要用vs2017的开发人员命令提示符  别用cmd gacutil -i Microsoft.V ...

  4. java面试题(自创)

    1.最后输出的是啥? String s = "hello"; final String str = s; s = "world"; System.out.pri ...

  5. ACM-ICPC国际大学生程序设计竞赛北京赛区(2015)网络赛 Scores

    #1236 : Scores 时间限制:4000ms 单点时限:4000ms 内存限制:256MB 描述 Kyle is a student of Programming Monkey Element ...

  6. 好不容易帮同事写的一个awk,要记下来

    给昌哥写的过滤的东东. 是实现了,但感觉丑,不规范. 记得下先. 原始数据格式: -- :: [ pool--thread-: ] - [ DEBUG ] origin match ::, user: ...

  7. 次小生成树 判断 unique MST

    Given a connected undirected graph, tell if its minimum spanning tree is unique. Definition 1 (Spann ...

  8. Java数据库连接池研究

    一.背景 连接池简介: 连接池初始化时创建一定数量的连接,然后从连接池中重用连接,而不是每次创建一个新的. 数据库连接是一种关键的.有限的.昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出.对 ...

  9. Open Flash Chart 简介

    http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-ofc/ Open Flash Chart(OFC)是一个开源的 Flash 图表绘 ...

  10. 改动wordpress默认发邮件邮箱地址

    方法一: wordpress发送邮件默认是用的php mail函数.所以发送邮件的地址是能够随意写的.其默认发邮件的地址是wordpress@yourdomain.com.当然这个地址是能够改动的. ...