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错误 ...
随机推荐
- 无线安全审计工具 Fern WiFi Cracker
使用这款工具前最好自定义一个MAC地址,以便隐藏我们的真实MAC地址信息. 由于Fern WiFi Cracker是图形界面的,不需要敲命令,所以操作起来比Aircrack-ng简单了许多. 首先选择 ...
- CoreGraphics相关方法
// 将view转为image(不经常用到的功能)(摘自SCCatWaitingHUD) - (UIImage *)convertViewToImage { CGSize s = self.bound ...
- 【代码笔记】iOS-按钮带下划线的写法
一,效果图. 二,工程图. 三,代码. RootViewController.h RootViewController.m - (void)viewDidLoad { [super viewDidLo ...
- Kotlin偏好设置
Kotlin的强悍震精了我,android中每个应用都会用到SharedPreference在Kotlin中使用竟是如此简单! package com.android.extkt import and ...
- IOS TextField伴随键盘移动
这篇文章介绍的是一个简单而又实用的小方法. 我想对于登陆时的一些效果大家应该都不会陌生. 今天就介绍一下,当开始输入TextField文本时键盘弹出TextField伴随键盘移动的实现. 先看一下演示 ...
- Java基础知识学习(六)
多线程 先了解线程的概念 多线程需要注意的地方 优先级.线程同步.消息传递.数据共享.死锁等 Java线程类 Thread,实现接口 Runnable Thread常用方法 getName 获得线程名 ...
- 13、系统集成项目经理要阅读的书籍 - IT软件人员书籍系列文章
系统集成项目经理主要对弱电等项目负责.一般包括计算机网络系统,计算机设备系统,智能楼宇,机房建设等.在软考中,系统集成项目经理放在了中级,这个只能说明系统集成项目经理需要的经验没有高级信息系统项目管理 ...
- Github入门(一)
之前早就听说过Git的大名,但由于合作项目时的团体都非常小,所以一直没有开始系统的学习和使用(其实就是懒!),最近终于有动力开始进行入门的学习. 首先介绍一下自学用书:https://git-scm. ...
- 初识Go
意外关注到一位牛人的微信,提到了2014年他推荐的编程语言是Go.于是乎饶有兴趣的淘了一本书<Go语言程序设计>,学习起来. 第一章的练习题我的答案如下: // Copyright © 2 ...
- SQL Server ---(CDC)监控表数据(转译)
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现过程(Realization) 补充说明(Addon) 参考文献(References) ...
