百练2787 nyist 43 算24
来源:互联网 发布:女生宿舍关系 知乎 编辑:程序博客网 时间:2024/05/22 14:56
思路:每次枚举两个数,一个运算符,得到一个运算结果。在重复执行,直到只剩下一个数即可。
nyist 43:http://acm.nyist.net/JudgeOnline/problem.php?pid=43
#include <iostream>#include <cmath>using namespace std;/*求存于a数组中n个数(可以是实数,整数,负数,零),能否通过+-/*四个运算得到结果sum,每个数只能用一次,运算符可以多次使用 .若能ans=1; 不能ans=0 */ int ans=0;void dfs(double a[],int n,int sum){int i,j,x,y,k,m;double b[10];if(n==1&&fabs(a[0]-sum)<1e-6) ans=1; else if(n>1)for(i=0;i<n;i++){for(j=0;j<n;j++){if(i==j) continue;for(m=k=0;k<n;k++)if(k!=i&&k!=j) { b[m]=a[k]; m++;}b[m]=a[i]+a[j]; dfs(b,m+1,sum);b[m]=a[i]-a[j]; dfs(b,m+1,sum);b[m]=a[i]*a[j]; dfs(b,m+1,sum);if(a[j]!=0)b[m]=a[i]/a[j]; dfs(b,m+1,sum);}}}int main(int argc, char *argv[]){double a[10]; int t,n,i,sum;cin>>t;while(t--){cin>>n>>sum;for(i=0;i<n;i++) cin>>a[i];ans=0; dfs(a,n,sum); if(ans) cout<<"Yes"<<endl;else cout<<"No"<<endl;}return 0;}
百练2787:http://poj.grids.cn/practice/2787/
#include <iostream>#include <cmath>using namespace std;int ans=0;void dfs(double a[],int n){int i,j,x,y,k,m;double b[4];if(n==1&&a[0]>0&&fabs(a[0]-24)<0.0001) ans=1;else if(n>1)for(i=0;i<n;i++){for(j=0;j<n;j++){if(i==j) continue;for(m=k=0;k<n;k++)if(k!=i&&k!=j) { b[m]=a[k]; m++;}b[m]=a[i]+a[j]; dfs(b,m+1);b[m]=a[i]-a[j]; dfs(b,m+1);b[m]=a[i]*a[j]; dfs(b,m+1);if(a[j]!=0)b[m]=a[i]/a[j]; dfs(b,m+1);}}}int main(int argc, char *argv[]){double a[4];//freopen("24.txt","w",stdout);while(cin>>a[0]>>a[1]>>a[2]>>a[3]&&(a[0]+a[1]+a[2]+a[3])!=0){ans=0; dfs(a,4); if(ans) cout<<"YES"<<endl;else cout<<"NO"<<endl;}return 0;}
- 百练2787 nyist 43 算24
- 百练:算24
- poj 百练2787:算24
- OpenJudge 百练 2787 算24
- 百练2787:算24题解
- 百练2787:算24(递归)
- nyist
- 百练2787
- 百练oj2706 麦森数
- 百练 2706 麦森数
- poj 百练 2818
- 百练 1450 Gridland
- 百练 1003 Hangover
- 百练 2940 求和
- 百练 1226 Substrings
- 百练 4013 中位数
- 百练---求和---2940
- 百练-约瑟夫问题
- Hive基本命令(2)
- APUE_消息队列
- C++中栈结构建立和操作
- C++产生随机数
- Uva-10648-Chocolate Box
- 百练2787 nyist 43 算24
- 我的Android进阶之旅------>Android视频录制小例子
- 并查集基础概念(无图)
- Hashcode的作用
- C++记录某段程序的运行时间
- 设计模式读书笔记-----备忘录模式
- Linux Shell 编程实战技巧
- 巧用Java的Calendar & Sqlite Developer破解
- SQL2008R2的索引重建