boj 11

2024-05-26 09:58
文章标签 boj

本文主要是介绍boj 11,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Description

 

We are familiar with the game called “Counting 24”. Now it comes a problem that we want to know whether we can figure out the exact answer with given 4 numbers only using +,-,*,/ and (,).

 

Input

There are several cases in a test. Each case contains only 5 integers, a1, a2, a3, a4 and required answer. All integers are positive and no more than 100.

Output

If it is possible to figure out the required answer, output “Possible”; otherwise output “Impossible”.

Sample Input

 

5 5 1 5 24

 

Sample Output

 

Impossible

乱七八糟。。。。

代码:

#include<iostream>
using namespace std;
bool flag;
int arr[4],x[4],res;
int calTwo(int x,int y,int oper)
{if(x<y)swap(x,y);if(oper==0)return x+y;if(oper==1)return x-y;if(oper==2)return x*y;if(oper==3){if(y!=0&&x%y==0)return x/y;else if(x!=0&&y%x==0)return y/x;}return 200000001;
}
void calTree(int x,int y,int z)
{for(int i=0;i<=3;i++){int tmp = calTwo(x,y,i);if(tmp!=200000001&&flag==false){for(int j=0;j<=3;j++){if(calTwo(tmp,z,j)==res){flag = true;break;}}}}for(int i=0;i<=3;i++){int tmp = calTwo(x,z,i);if(tmp!=200000001&&flag==false){for(int j=0;j<=3;j++){if(calTwo(tmp,y,j)==res){flag = true;break;}}}}for(int i=0;i<=3;i++){int tmp = calTwo(z,y,i);if(tmp!=200000001&&flag==false){for(int j=0;j<=3;j++){if(calTwo(tmp,x,j)==res){flag = true;break;}}}}
}
void search(int cur,int res)
{if(cur==4){for(int i=0;i<=3;i++){int temp = calTwo(x[0],x[1],i);calTree(temp,x[2],x[3]);}if(flag)return ;}for(int i=cur;i<4;i++){x[cur] = arr[i];swap(arr[cur],arr[i]);search(cur+1,res);swap(arr[cur],arr[i]);}return ;
}
int main()
{while(~scanf("%d %d %d %d %d",&arr[0],&arr[1],&arr[2],&arr[3],&res)){flag = false;search(0,res);if(flag) printf("Possible\n");else printf("Impossible\n");}
}

 

这篇关于boj 11的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1004141

相关文章

BOJ 4228 哈哈哈

题目链接~~> 做题感悟:这题一看就知道要用状态压缩,本题和HDU 1429 胜利大逃亡(续)差不多。 解题思路:你可以把宝物压缩为二进制,例如:01001 代表你已经拿过 1 号和 4 号宝物了 0 代表相应的宝物没拿。用同样的方法把拿某个物品的前提条件也映射成二进制。假如你现在遇到 3 号宝物,如果3号宝物的前提条件是拿到 1 号 和 4 号宝物才能拿 3 号,那么前提条件可以用二进制表示

boj 342

Descriptionxiaoming实在太好管闲事了.有一天他去参加一个舞会,这里聚集了一大堆帅哥美女,但是舞会却不是那么顺利,虽然帅哥和美女的人数都是相同的,但并不是每一位帅哥都能找到他的舞伴,原因就是有些女生只愿意接受某些男生的邀请.小明为了舞会的顺利进行,xiaoming只好厚着脸皮去和这些女生搭话,了解到了这些女生就都愿意接受哪些男生的邀请,那么剩下的工作就是要小明给这些帅哥美女们搭搭

boj 343

DescriptionTradia最近去了趟超市,采购了好多好吃的东西,其中花花绿绿的巧克力最是诱人。为了感谢Jim前段时间对自己的帮助,Tradia决定把自己的巧克力分一些给Jim。但是Tradia也爱吃巧克力,她不想把自己全部的巧克力都给Jim,而是把巧克力平均分配,使得给Jim的总量和留给自己的总量之差最小。聪明的你能帮助她吗?Input输入包含多组测试数据。首先第一行输入一个数T(T<=

boj 347

DescriptionTradia对数据结构很感兴趣,她懂得很多有用的数据结构,比如链表、二叉树、图等等。最近她在学习堆的有关知识,并对堆能够在log2N的时间复杂度内返回当前集合的最值感到十分的满意。可是我们都知道,Tradia是一个求知欲很强的学生,她并不满足于得到集合的最值(最大、最小值),同时她还想获得集合当前的第K小数,并且要求每次查询的复杂度要与log2N相当,如果复杂度比log2N

BOJ - 也是OJ,Offline Judge!

今天acm群里给我=发了封邮件,打开一看,是离线评判系统,感觉很不错,是北京师范一个牛人做的。以后在家就拿这个做acm了。 http://www.offlinejudge.net/ BOJ - 也是OJ,Offline Judge! BNUEP Offline Judge(北京师范大学珠海分校离线评测系统)是在具备题目测试数据的情况下,无需联网即可自动评测ACM/ICPC模式