| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
还以为是1A,原来只要过样例就能AC``样例根本无法弄明白括号该如何打嘛,(除法也在打括号)。假设是每个等式必须都打2对括号(最后一次运算不打括号),这样的话就很简单了,不用考虑运算符优先级。
这样写上去居然1Y,膜拜自己的RP后看DISCUSS才知道只有一组测试数据,ORZ。
括号打法就5种(按我上面那样假设的话)直接暴力就行了,贴个暴力代码,不肯定是正确的,只是过了样例,话说这题果断该rejude啊。
#include <stdio.h>
#include <math.h>
#include <algorithm>
#include <map>
#include <string>
#include <string.h>
#include <queue>
#include <set>
using namespace std;
char operators[4]={'+','-','*','/'};
int a[4],oper[3];
double calc(double a,int op,double b)
{
switch (op)
{
case 0:return a+b;
case 1:return a-b;
case 2:return a*b;
default:return a/(b!=0?b:0.00001);
}
}
int main()
{
for(int i=0;i<4;i++) scanf("%d",a+i);
for(int i=0;i<64;i++)
{
int tmp=i;
for(int j=0;j<3;j++,tmp>>=2) oper[j]=tmp&3;
if (calc(calc(a[0],oper[0],a[1]),oper[1],calc(a[2],oper[2],a[3]))==24)
{
printf("(%d%c%d)%c(%d%c%d)\n",a[0],operators[oper[0]],a[1],operators[oper[1]],a[2],operators[oper[2]],a[3]);
return 1;
}
if (calc(calc(calc(a[0],oper[0],a[1]),oper[1],a[2]),oper[2],a[3])==24)
{
printf("((%d%c%d)%c%d)%c%d\n",a[0],operators[oper[0]],a[1],operators[oper[1]],a[2],operators[oper[2]],a[3]);
return 1;
}
if (calc(calc(a[0],oper[0],calc(a[1],oper[1],a[2])),oper[2],a[3])==24)
{
printf("(%d%c(%d%c%d))%c%d\n",a[0],operators[oper[0]],a[1],operators[oper[1]],a[2],operators[oper[2]],a[3]);
return 1;
}
if (calc(a[0],oper[0],calc(calc(a[1],oper[1],a[2]),oper[2],a[3]))==24)
{
printf("%d%c((%d%c%d)%c%d)\n",a[0],operators[oper[0]],a[1],operators[oper[1]],a[2],operators[oper[2]],a[3]);
return 1;
}
if (calc(a[0],oper[0],calc(a[1],oper[1],calc(a[2],oper[2],a[3])))==24)
{
printf("%d%c(%d%c(%d%c%d))\n",a[0],operators[oper[0]],a[1],operators[oper[1]],a[2],operators[oper[2]],a[3]);
return 1;
}
}
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator