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

下面附上我的代码   ---   我感觉 我这个代码 和其他人的都不一样 , 并且我的代码比较简洁 , 而且测试数据  还有我自己想过的数据 都过了  但是就是提交的时候总是  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. python3接口测试某个模块的很多接口有的用post有的用get

    没啥好说的,啊哈哈  大神提示可以判断下用post还是get,但是加到哪里合适呢?仔细看认真看 耶耶耶

  2. textbook references

    * math 1. Teubner-Taschenbuch der Mathematik * CFD

  3. vue父组件向子组件传递参数

    父组件中引用的子组件 <pics :is-pics="showpics" // 这是我们要传递的参数 :is-product="productMsg" : ...

  4. (远程调试)-idea

    远程调试 1.开启远程调试的端口 tomcat示例: catalina.bat jpda start

  5. hdu 2545 并查集 树上战争

    #include<stdio.h> #include<string.h> #define N 110000 struct node {     int father,count ...

  6. node.js 核心http模块,起一个服务器,返回一个页面

    let http=require("http"); //引入核心http模块 let fs=require("fs"); let mime={ '.js':'a ...

  7. Oracle操作管理之用户和角色

    1.用户管理 (1)建立用户(数据库验证) CREATE USER smith IDENTIFIED BY smith_pwd DEFAULTTABLESPACE users TEMPORARY TA ...

  8. 如何取消codeblocks对msvcr100.dll的依赖?

    用VS2010或是codeblocks开发的程序,在开发之外的机器上,可能会提前缺少msvcr100.dll之类的文件. 可以用如何设置,取消其对库文件的依赖. 当然,还要注意创建程序的类型.(补) ...

  9. BZOJ(2) 1041: [HAOI2008]圆上的整点

    1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4966  Solved: 2258[Submit][Sta ...

  10. 走进windows编程的世界-----画图相关

    Windows画图 1 图形绘制      1.1 图形绘制的方式      获取到画图句柄-设备描写叙述表(DC),使用对应的画图的API,在设备上绘制图形.          1.2 颜色     ...