【hihocoder 1304】搜索一·24点
【题目链接】:http://hihocoder.com/problemset/problem/1304
【题意】
【题解】
按照题目给的方法搜索就好;
那个方法很棒啊。
注意除0;
然后是浮点数的比较;
直接返回了一个Int型..爆炸了
(((a$b)$c)$d)
((a$b)&(c$d))
$操作对应
1..6
+,-,*,/,反-,反/
【Number Of WA】
6
【完整代码】
#include <bits/stdc++.h>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define ms(x,y) memset(x,y,sizeof x)
typedef pair<int,int> pii;
typedef pair<LL,LL> pll;
const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
const double pi = acos(-1.0);
const int N = 110;
int num[5],ope[4],a[5];
bool bo[5];
double cal(double a,int op,double b)
{
if (op==1) return a + b;
if (op==2) return a - b;
if (op==3) return a * b;
if (op==4)
{
if (fabs(b)<1e-6) return 2e8;
return a/b;
}
if (op==5) return b-a;
if (op==6)
{
if (fabs(a)<1e-6) return 2e8;
return b/a;
}
return 233;
}
double js1()
{
//(((a$b)$c)$d)
double x,y,z;
x = cal(num[1],ope[1],num[2]);
if (x>1e8) return 233;
y = cal(x,ope[2],num[3]);
if (y>1e8) return 233;
z = cal(y,ope[3],num[4]);
if (z>1e8) return 233;
return z;
}
double js2()
{
double x,y,z;
//((a$b)&(c$d))
x = cal(num[1],ope[1],num[2]);
if (x>1e8) return 233;
y = cal(num[3],ope[3],num[4]);
if (y>1e8) return 233;
z = cal(x,ope[2],y);
if (z>1e8) return 233;
return z;
}
bool choose_ope(int dep)
{
if (dep>3)
{
if (fabs(js1()-24)<1e-12) return true;
if (fabs(js2()-24)<1e-12) return true;
return false;
}
rep1(i,1,6)
{
ope[dep] = i;
if (choose_ope(dep+1)) return true;
}
return false;
}
bool choose_num(int dep)
{
if (dep>4)
{
if (choose_ope(1)) return true;
return false;
}
rep1(i,1,4)
if (!bo[i])
{
bo[i] = true;
num[dep] = a[i];
if (choose_num(dep+1)) return true;
bo[i] = false;
}
return false;
}
int main()
{
//freopen("F:\\rush.txt","r",stdin);
ios::sync_with_stdio(false),cin.tie(0);//scanf,puts,printf not use
int t;
cin >> t;
while (t--)
{
rep1(i,1,4)
cin >> a[i],bo[i] = false;
if (choose_num(1))
cout <<"Yes"<<endl;
else
cout <<"No"<<endl;
}
return 0;
}
【hihocoder 1304】搜索一·24点的更多相关文章
- hihoCoder 搜索一·24点
题目1 : 搜索一·24点 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 周末,小Hi和小Ho都在家待着.在收拾完房间时,小Ho偶然发现了一副扑克,于是两人考虑用这副扑 ...
- hihocoder 九十八周 搜索一 24点
题目1 : 搜索一·24点 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 周末,小Hi和小Ho都在家待着. 在收拾完房间时,小Ho偶然发现了一副扑克,于是两人考虑用这副 ...
- hiho一下 第九十八周 搜索一·24点
题目1 : 搜索一·24点 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 周末,小Hi和小Ho都在家待着. 在收拾完房间时,小Ho偶然发现了一副扑克,于是两人考虑用这副 ...
- hihoCoder #1321 : 搜索五•数独 (Dancing Links ,精确覆盖)
hiho一下第102周的题目. 原题地址:http://hihocoder.com/problemset/problem/1321 题意:输入一个9*9数独矩阵,0表示没填的空位,输出这个数独的答案. ...
- hihoCoder #1312 : 搜索三·启发式搜索(A*, 康托展开)
原题网址:http://hihocoder.com/problemset/problem/1312 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在小Ho的手机上有 ...
- 在Hadoop分布式文件系统的索引和搜索
FROM:http://www.drdobbs.com/parallel/indexing-and-searching-on-a-hadoop-distr/226300241?pgno=3 在今天的信 ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- ASP.NET MVC+Bootstrap个人博客之后台dataTable数据列表(五)
jQuery dataTables 插件是一个优秀的表格插件,是后台工程师的福音!它提供了针对数据表格的排序.浏览器分页.服务器分页.查询.格式化等功能.dataTables 官网也提供了大量的演示 ...
- 转:selenium webdriver 执行javascript代码
在用selenium webdriver 编写web页面的自动化测试代码时,可能需要执行一些javascript代码,selenium本身就支持执行js,我们在代码中import org.openqa ...
随机推荐
- 用Thinphp发送电子邮件的方法
好长时间没有动php了,突然想用thinkphp发送电子邮件,可是查阅了书籍都写的非常乱.没有继续看下去.这里找到了一个比較好的方法: 第一步:首先我们要引入一个外部类库:Mail.class.php ...
- Codeforces Round #313 (Div. 2) 560D Equivalent Strings(dos)
D. Equivalent Strings time limit per test 2 seconds memory limit per test 256 megabytes input standa ...
- margin 百分比是按參照物来计算滴 不知道吧?
<style> #demo{ margin: 0 auto; width: 1000px; height: 500px; background: #eee; overflow: hidde ...
- 初识——Vim
有些东西吧,总是碰见,低头不见抬头见,但又不知道是什么.用来干嘛的?总是搞的心里痒痒.所以一定要学习一下. 近期一段时间,总是碰到一个词儿:VIM,在这儿看到了,我不理他,隔一会儿丫的又跑我眼睛里,总 ...
- luogu1969 积木大赛
题目大意 搭建一座宽度为n的大厦,大厦可以看成由n块宽度为1的积木组成,第i块积木的最终高度需要是hi. 在搭建开始之前,没有任何积木(可以看成n块高度为 0 的积木).接下来每次操作,可以选择一段连 ...
- LightOJ--1149--Factors and Multiples(二分图好题)
Factors and Multiples Time Limit: 2000MS Memory Limit: 32768KB 64bit IO Format: %lld & %llu ...
- 当使用Spring MVC @Valid对输入框进行验证的时候,可能会遇到以下的异常:Neither BindingResult nor plain target object for bean name ‘mybean’ available as request attribute
转自:https://www.cnblogs.com/wenhulu/p/5555457.html 当使用Spring MVC @Valid对输入框进行验证的时候,可能会遇到以下的异常: Neithe ...
- libhiredis.so.0.13 => not found 缺少
wget https://github.com/redis/hiredis/archive/v0.13.3.tar.gz tar -xzvf v0.13.3.tar.gz cd hiredis- ma ...
- [.Net] C#开发微信门户及应用之微信菜单的多种表现方式介绍
URL:http://www.it165.net/pro/html/201405/13997.html 在前面一系列文章中,我们可以看到微信自定义菜单的重要性,可以说微信公众号账号中,菜单是用户的第一 ...
- Aspose.Words将Word模板打印出来
利用Aspose.Words将制作好的模板,输出出来自己所需的文件 /// <summary> /// 打印信息和列表 /// </summary> /// <param ...