uva10344 23 out of 5
Your task is to write a program that can decide whether you can nd an arithmetic expression consisting
of ve given numbers ai (1 i 5) that will yield the value 23.
For this problem we will only consider arithmetic expressions of the following from:
(((a(1) o1 a(2)) o2 a(3)) o3 a(4)) o4 a(5)
where : f1;2;3;4;5g ! f1;2;3;4;5g is a bijective function and oi 2 f+; ;g(1 i 4)
Input
The Input consists of 5-Tupels of positive Integers, each between 1 and 50.
Input is terminated by a line containing ve zero's. This line should not be processed. Input le
will have no more than 25 lines.
Output
For each 5-Tupel print `Possible' (without quotes) if their exists an arithmetic expression (as described
above) that yields 23. Otherwise print `Impossible'.
Sample Input
1 1 1 1 1
1 2 3 4 5
2 3 5 7 11
0 0 0 0 0
Sample Output
Impossible
Possible
Possible
题目大意如下:给定5个正整数,和一个算术集合{+,-,*},求23点。
思路:因为24点或23点或n点的计算公式为(((a(1) o1 a(2)) o2 a(3)) o3 a(4)) o4 a(5),可知需要在5个正整数中选定一个初始的数来作为基础值,所以枚举此数,再进行回溯。
| 6748808 |
Accepted
|
470 | 698 |
2016-08-04 20:58:14
|
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int a[6];
bool vis[6];
bool read()
{
bool useable=0;
for(int i=0;i<5;i++){
scanf("%d",&a[i]);
if(a[i])useable=1;
}
return useable;
}
bool dfs(int cur,int ans)
{
if(cur==4&&ans==23)return 1;
for(int i=0;i<5;i++)
if(!vis[i]){
vis[i]=1;
if(dfs(cur+1,ans+a[i]))return 1;
if(dfs(cur+1,ans*a[i]))return 1;
if(dfs(cur+1,ans-a[i]))return 1;
vis[i]=0;
}
return 0;
}
bool solve()
{
for(int i=0;i<5;i++){
memset(vis,0,sizeof(vis));
vis[i]=1;
if(dfs(0,a[i]))return 1;
vis[i]=0;
}
return 0;
}
int main()
{
while(read()){
if(solve())puts("Possible");
else puts("Impossible");
}
return 0;
}
uva10344 23 out of 5的更多相关文章
- 备战NOIP每周写题记录(一)···不间断更新
※Recorded By ksq2013 //其实这段时间写的题远远大于这篇博文中的内容,只不过那些数以百记的基础题目实在没必要写在blog上; ※week one 2016.7.18 Monday ...
- Java开发中的23种设计模式详解
[放弃了原文访问者模式的Demo,自己写了一个新使用场景的Demo,加上了自己的理解] [源码地址:https://github.com/leon66666/DesignPattern] 一.设计模式 ...
- ILJMALL project过程中遇到Fragment嵌套问题:IllegalArgumentException: Binary XML file line #23: Duplicate id
出现场景:当点击"分类"再返回"首页"时,发生error退出 BUG描述:Caused by: java.lang.IllegalArgumentExcep ...
- CSharpGL(23)用ComputeShader实现一个简单的ParticleSimulator
CSharpGL(23)用ComputeShader实现一个简单的ParticleSimulator 我还没有用过Compute Shader,所以现在把红宝书里的例子拿来了,加入CSharpGL中. ...
- ABP(现代ASP.NET样板开发框架)系列之23、ABP展现层——异常处理
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之23.ABP展现层——异常处理 ABP是“ASP.NET Boilerplate Project (ASP.NET ...
- Java开发中的23种设计模式详解(转)
设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...
- C#得到某月最后一天晚上23:59:59和某月第一天00:00:00
项目需求: 某学校订单截止操作时间的上一个月最后一天晚上23:59:59 为止所有支付的订单统计: 代码: /// <summary> /// 通过学校和截止时间得到订单 /// < ...
- C#开发微信门户及应用(23)-微信小店商品管理接口的封装和测试
在上篇<C#开发微信门户及应用(22)-微信小店的开发和使用>里面介绍了一些微信小店的基础知识,以及对应的对象模型,本篇继续微信小店的主题,介绍其中API接口的封装和测试使用.微信小店的相 ...
- [转载]IIS7报500.23错误的解决方法
原文出处: 原文作者:pizibaidu 原文链接:http://pizibaidu.blog.51cto.com/1361909/1794446 背景:今天公司终端上有一个功能打开异常,报500错误 ...
随机推荐
- Sharepoint 2010 工作流启动时处理出错
在Sharepoint 2010 中使用Sharepoint 2010 designer做了一个工作流: 运行工作流时,当主办工程师是“张三”的时候,工作流一启动就报错. -------------- ...
- iOS开发多线程篇—线程安全
iOS开发多线程篇—线程安全 一.多线程的安全隐患 资源共享 1块资源可能会被多个线程共享,也就是多个线程可能会访问同一块资源 比如多个线程访问同一个对象.同一个变量.同一个文件 当多个线程访问同一块 ...
- ios网络编程学习
//网络访问获取数据//定义一个UIWebView属性,用来展示数据 @property (strong, nonatomic) IBOutlet UIWebView *myWebView; //.. ...
- iOS小型计算器
// // ViewController.m // 计算器 //屏幕的宽和高 #define SCREEN_W self.view.frame.size.width #define SCREEN_ ...
- iOS UITableViewController出现crash
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'attempt to de ...
- Android简单的ListViewDemo及每个控件的点击事件
ListView是什么? ListView是一个 数据控件,可以展示从数据库中读取的数据.是.net3.5的新控件. 它比gridview更灵活,而且支持多种模板,支持分页. 文章地址 http:// ...
- OC字符串NSString
========================== 面向对象编程进阶和字符串 ========================== Δ一.类的设计模式—单例 [单例]程序允许过程中,有且仅有一块内存 ...
- Hierarchyid 常用操作
---------内置函数------------ select hierarchyid::GetRoot()--0x select hierarchyid::Parse('/1/1/') - ...
- 创建用户故事地图(User Story Mapping)的8个步骤
[小编]上周六了解了用户故事地图后,小编又查阅了一些资料,找到了以下这篇关于如何组织用户故事地图规划的文章,分享给大家.也希望大家如果有好的实践,也可以留言一起交流. 原文地址:http://winn ...
- ORACLE 10升级到10.2.0.5 Patch Set遇到的内核参数检测失败问题
在测试ORACLE 10.2.0.4升级到10.2.0.5 Patch Set的过程中,遇到一个内核参数检查失败的问题,具体错误信息如下所示 实验环境: 操作系统:Oracle Linux Ser ...
