24Pointgame-----24点游戏
2016-03-17 21:32
453 查看
题意简单 第一行是 测试数据有几组 然后分别有 几行 第一个数字是 有几个数字 第二个是 需要配出来的数字
下面附上我的代码 --- 我感觉 我这个代码 和其他人的都不一样 , 并且我的代码比较简洁 , 而且测试数据 还有我自己想过的数据 都过了 但是就是提交的时候总是 wrong why ? 这是天将降大任于斯人也 么?
那也不用每一道题都这样坑我吧 ? 努力发现问题 !!!!
/* 坚持一下 可以找到bug 的 */ #include<stdio.h> #include<math.h> #include<string.h> int n,n1,visited[7]; double a[7],target,zero=0.000001; bool DFS(double sum) { if(n1==n) { if(fabs(sum-target)<zero) return true; else return false; } for(int i=1;i<n;i++) // 这里出了错误 i 应该是从0 开始 后来修改代码的时候 没有注意到这一点 { if(!visited[i]) { visited[i]=1; 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]=0; n1--; } } return false; } int main() { int t,i,mark; scanf("%d",&t); while(t--) { scanf("%d%lf",&n,&target); for(i=0;i<n;i++) scanf("%lf",&a[i]); memset(visited,0,sizeof(visited)); for(mark=1,i=0;i<n;i++) { n1=1; visited[i]=1; if(DFS(a[i])) { mark=0; break; } visited[i]=0; } if(!mark) printf("Yes\n"); else printf("No\n"); } return 0; }
实在是找不到 错误之处 , 先放在这 清醒一段时间之后 开始 再试试
今天早上 来了之后 一遍 就 A 了 反映的问题 是 之前 修改代码 没有 修改深度搜索中 的 i 值 做题的时候 事先在纸上 理清思路然后再开始 敲代码省时又省力!
下面附上正确的代码
#include<stdio.h> #include<string.h> #include<math.h> int n,target,visited[7],m; double a[7],zero=1e-6; bool DFS(double sum) { if(m==n&&fabs(sum-target)<zero) return true; for(int i=0;i<n;i++) { if(!visited[i]) { m++; visited[i]=1; 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]=0; m--; } } return false; } int main() { int t; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&target); for(int i=0;i<n;i++) scanf("%lf",&a[i]); int i,mark; for(mark=i=0;i<n;i++) { m=1; memset(visited,0,sizeof(visited)); visited[i]=1; if(DFS(a[i])) { mark=1; break; } } if(mark) printf("Yes\n"); else printf("No\n"); } return 0; }
相关文章推荐
- iOS开发--项目内存优化
- 18. 4Sum LeetCode
- KVM原理与架构系列之三 CPU虚拟化篇
- 《leetCode》:Maximum Product Subarray
- 浅谈 C++ 中的 new/delete
- Android自定义弹出框AlertDialog
- 使用FreeMarker的Web Project例子
- Reverse Linked List II
- PB事件:pbm_enupdate
- python标准库学习1-SYS
- 从客户端中检测到有潜在危险的 Request.Form 值 设置 ValidateRequest="false" 不管用
- IBM Bluemix试用到期后绑定信用卡继续免费使用
- PowerDesigner 学习笔记
- noip2011普及组:统计单词
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法----细节决定成败 (sort用法)
- ListView与RecyclerView的区别
- 3招搞定android内存泄漏
- iOS 根据自己项目 说说对xml解析的理解
- Linux常用指令
- 编程之美-买书问题