给四个数 问能不能算出24点。。。我的方法比较烂。。。920ms 差点TLE。应该有更好的方法。

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;
double a[], ff[], n;
double rt[][], yy[];
int sum;
double get(double x, double y, int fu)
{
if (fu == ) return x + y;
if (fu == ) return x - y;
if (fu == ) return x * y;
if (fu == ) return x / y;
}
void dfs(int tot)
{
int ii;
if (tot == )
{
rt[sum][] = yy[];
rt[sum][] = yy[];
rt[sum][] = yy[];
rt[sum][] = yy[];
sum++;
return;
}
for (ii = ; ii < ; ii++)
{
if (ff[ii] == )
{
ff[ii] = ;
yy[tot] = a[ii];
dfs(tot + );
ff[ii] = ;
}
}
}
int main()
{
while (~scanf("%lf%lf%lf%lf", &a[], &a[], &a[], &a[]))
{
memset(ff, , sizeof(ff));
sum = ; dfs(); int i, j, k, g;
int ans = ;
double linshi1 = , linshi2 = , linshi3 = ;
double z, x, c, v;
for (i = ; i <= ; i++)
{
for (g = ; g <= ; g++)
{
for (k = ; k <= ; k++)
{
for (j = ; j <= ; j++)
{ z = rt[i][]; x = rt[i][]; c = rt[i][]; v = rt[i][];
linshi1 = get(z, x, g);
linshi2 = get(linshi1, c, k);
linshi3 = get(linshi2, v, j);
if (fabs(linshi3 - )<0.0000001){ ans = ; break; } linshi1 = get(z, x, g);
linshi2 = get(c, v, j);
linshi3 = get(linshi1, linshi2, k);
if (fabs(linshi3 - )<0.0000001){ ans = ; break; } linshi1 = get(x, c, k);
linshi2 = get(z, linshi1, g);
linshi3 = get(linshi2, v, j);
if (fabs(linshi3 - )<0.0000001){ ans = ; break; } linshi1 = get(x, c, k);
linshi2 = get(linshi1, v, j);
linshi3 = get(z, linshi2, g);
if (fabs(linshi3 - )<0.0000001){ ans = ; break; } linshi1 = get(c, v, j);
linshi2 = get(z, x, g);
linshi3 = get(linshi1, linshi2, k);
if (fabs(linshi3 - )<0.0000001){ ans = ; break; } linshi1 = get(c, v, j);
linshi2 = get(x, linshi1, k);
linshi3 = get(z, linshi2, g);
if (fabs(linshi3 - )<0.0000001){ ans = ; break; } }
if (ans) break;
}
if (ans) break;
}
if (ans) break;
}
if (ans == )printf("Yes\n");
else printf("No\n");
}
return ;
}

湖南多校对抗赛(2015.05.03)Problem A: Twenty-four point的更多相关文章

  1. Contest2071 - 湖南多校对抗赛(2015.03.28)

    Contest2071 - 湖南多校对抗赛(2015.03.28) 本次比赛试题由湖南大学ACM校队原创 http://acm.csu.edu.cn/OnlineJudge/contest.php?c ...

  2. Contest2073 - 湖南多校对抗赛(2015.04.06)

    Contest2073 - 湖南多校对抗赛(2015.04.06) Problem A: (More) Multiplication Time Limit: 1 Sec  Memory Limit:  ...

  3. 湖南多校对抗赛(2015.05.03)Problem B: War

    并查集.从后往前加边. #include<stdio.h> #include<string.h> #include<math.h> #include<algo ...

  4. Contest2089 - 湖南多校对抗赛(2015.05.31) Swipe(csu1648)

    Problem E: Swipe Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 100  Solved: 15[Submit][Status][Web ...

  5. Aquarium Tank(csu1634+几何+二分)Contest2087 - 湖南多校对抗赛(2015.05.24)-G

    Aquarium Tank Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 15  Solved: 4[Submit][Status][Web Board ...

  6. Heaps(Contest2080 - 湖南多校对抗赛(2015.05.10)(国防科大学校赛决赛-Semilive)+scu1616)

    Problem H: Heaps Time Limit: 2 Sec  Memory Limit: 128 MBSubmit: 48  Solved: 9[Submit][Status][Web Bo ...

  7. Clock Pictures(kmp + Contest2075 - 湖南多校对抗赛(2015.04.26))

    Problem H: Clock Pictures Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 73  Solved: 18[Submit][Stat ...

  8. CSU 2136 ——湖南多校对抗赛 I

    2136: 统帅三军! Submit Page   Summary   Time Limit: 1 Sec     Memory Limit: 128 Mb     Submitted: 55     ...

  9. 2015.05.15,外语,学习笔记-《Word Power Made Easy》 01 “如何讨论人格特点”

    2015.03.17,外语,读书笔记-<Word Power Made Easy> 01 “如何讨论人格特点”学习笔记 SESSIONS 1 本来这些章节都是在一两年前学习的,现在趁给友人 ...

随机推荐

  1. Excel单元格所在的行和列变色

    网友问到如何通过移动光标选择单元格,所在的行和列变色.如每次输入价格的时候,想想在横竖方向上有颜色标识,这样方便对照输入价格 . 这里可以使用窗体的Worksheet_SelectionChange ...

  2. D3.js:坐标轴

    坐标轴: 是可视化图表中经常出现的一种图形,由一些列线段和刻度组成.坐标轴在 SVG 中是没有现成的图形元素的,需要用其他的元素组合构成.D3 提供了坐标轴的组件,如此在 SVG 画布中绘制坐标轴变得 ...

  3. Ubuntu 14.04 登陆界面循环问题解决

    今天手贱startx然后虚拟机就卡死了,再开输过密码就无限跳到登陆界面,其他账户可用.怀疑/home未挂载. 解决方法:(alf改成你的用户名) $ cd ~$ sudo chown alf:alf. ...

  4. 修改cookie

    查看本地cookie方法一:点击 地址栏前面的 感叹号 !方法一:F12-->network->回车 请求一下 地址栏-->.出现的地址-->点击. header cookie ...

  5. centos下安装Jenkins轻松搞定

    jenkins安装步骤如下: 命令:yum -y list java* yum -y install java-1.7.0-openjdk.x86_64                         ...

  6. 读书笔记之《The Art of Readable Code》

    <The Art of Readable Code>- Dustin Boswell, Trevor Foucher    O'Reilly出版 整体认知:这本书写得很好,每一章后面的总结 ...

  7. centos搭建svn服务器

    1.在centos6.5上面搭建svn服务器,安装svn服务器:yum install subversion 2.在任意目录下创建仓库目录,这里放在/data/mypros目录下 3.执行命令:svn ...

  8. JSON跟JSONP的区别以及实战

    前言 由于Sencha Touch 2这种开发模式的特性,基本决定了它原生的数据交互行为几乎只能通过AJAX来实现. 当然了,通过调用强大的PhoneGap插件然后打包,你可以实现100%的Socke ...

  9. ajax无法跳转页面的问题,

    将return true去掉!

  10. 闹心的python编码

    说起编码,真是十分忧伤.每次听课都是绕了半天把自己搞糊涂.今天特意来整理一下思路. What 编码!? 基本概念很简单.首先,我们从一段信息即消息说起,消息以人类可以理解.易懂的表示存在.我打算将这种 ...