hdu 1427 速算24點

題目連接

http://acm.hdu.edu.cn/showproblem.php?pid=1427?

速算24點

Description

速算24點相信絕大多數人都玩過。就是隨機給你四張牌,包括A(1),2,3,4,5,6,7,8,9,10,J(11),Q(12),K(13)。要求只用'+','-','*','/'運算符以及括號改變運算順序,使得最終運算結果為24(每個數必須且僅能用一次)。游戲很簡單,但遇到無解的情況往往讓人很郁悶。你的任務就是針對每一組隨機產生的四張牌,判斷是否有解。我們另外規定,整個計算過程中都不能出現小數。

Input

每組輸入數據占一行,給定四張牌。

Output

每一組輸入數據對應一行輸出。如果有解則輸出"Yes",無解則輸出"No"。

Sample Input

A 2 3 6
3 3 8 8

Sample Output

Yes
No

參照<<編程之美>>上的寫法,時間卡的挺緊的,用cin tle scanf過了/(ㄒoㄒ)/~~

#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<vector>
#include<string>
#include<map>
using std::map;
using std::fabs;
using std::pair;
using std::swap;
using std::string;
using std::next_permutation;
#define pb(e) push_back(e)
#define sz(c) (int)(c).size()
#define mp(a, b) make_pair(a, b)
#define all(c) (c).begin(), (c).end()
#define iter(c) decltype((c).begin())
#define cls(arr, val) memset(arr, val, sizeof(arr))
#define cpresent(c, e) (find(all(c), (e)) != (c).end())
#define rep(i, n) for(int i = 0; i < (int)n; i++)
#define tr(c, i) for(iter(c) i = (c).begin(); i != (c).end(); ++i)
const int N = 20;
const double eps = 1E-7;
const int INF = 0x3f3f3f3f;
typedef unsigned long long ull;
int arr[4];
char ret[4][10];
map<string, int> A;
bool dfs(int n) {if (1 == n) {return arr[0] == 24;}for (int i = 0; i < n; i++) {for (int j = i + 1; j < n; j++) {int a = arr[i], b = arr[j];arr[j] = arr[n - 1];arr[i] = a + b;if (dfs(n - 1)) return true;arr[i] = a - b;if (dfs(n - 1)) return true;arr[i] = b - a;if (dfs(n - 1)) return true;arr[i] = a * b;if (dfs(n - 1)) return true;if (b != 0 && 0 == a % b) {arr[i] = a / b;if (dfs(n - 1)) return true;}if (a != 0 && 0 == b % a) {arr[i] = b / a;if (dfs(n - 1)) return true;}arr[i] = a;arr[j] = b;}}return false;
}
void init() {A["A"] = 1;A["2"] = 2;A["3"] = 3;A["4"] = 4;A["5"] = 5;A["6"] = 6;A["7"] = 7;A["8"] = 8;A["9"] = 9;A["10"] = 10;A["J"] = 11;A["Q"] = 12;A["K"] = 13;
}
bool solve() {for (int i = 0; i < 4; i++) {arr[i] = A[ret[i]];}do {if (dfs(4)) return true;} while (next_permutation(arr, arr + 4));return false;
}
int main() {
#ifdef LOCALfreopen("in.txt", "r", stdin);freopen("out.txt", "w+", stdout);
#endifinit();while (~scanf("%s %s %s %s", ret[0], ret[1], ret[2], ret[3])) {puts(solve() ? "Yes" : "No");}return 0;
}

轉載于:https://www.cnblogs.com/GadyPu/p/4895433.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258186.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258186.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258186.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《云計算:概念、技術與架構》一1.1 本書目標

本節書摘來華章計算機《云計算&#xff1a;概念、技術與架構》一書中的第1章 &#xff0c;第1.1節&#xff0c;&#xff08;美&#xff09;Thomas Erl   &#xff08;英&#xff09;Zaigham Mahmood 著 &#xff08;巴西&#xff09;Ricardo Puttini 龔奕利 賀 蓮 胡 創 …

mysql to char 用法_postgresql 中的to_char()常用操作

postgresql中的to_char()用法和Oracle相比&#xff0c;多了一個參數。to_char(待轉換值&#xff0c;轉換格式);常用轉換格式有2種&#xff1a;一個是寫若干個0&#xff0c;如果待轉換的值位數少于于你定義的轉換格式位數&#xff0c;輸出值會自動在左邊補0&#xff0c;位數補齊…

面試題40:數組中只出現一次的數字

題目描述 一個整型數組里除了兩個數字之外&#xff0c;其他的數字都出現了兩次。請寫程序找出這兩個只出現一次的數字。要求時間復雜度是O(n)&#xff0c;空間復雜度是O(1)。 題目分析 劍指Offer&#xff08;紀念版&#xff09;P211 ① 自己與自己異或為0 ② 0與數A異或為A ③ …

Python3 From Zero——{最初的意識:007~函數}

一、編寫可接受任意數量參數的函數&#xff1a;*、** >>> def test(x, *args, y, **kwargs): ... pass ... >>> test(1, 2, 3, 4 ,5 ,5, y9, aa99, bb88,cc900) >>> test(1, 2, 3, 4 ,5 ,5, 9, aa99, bb88,cc900) Traceback (most recent call la…

mysql 數據庫名稱限制_mysql 數據庫名稱限制

mysql 數據庫名稱限制云服務器(Elastic Compute Service&#xff0c;簡稱ECS)是阿里云提供的性能卓越、穩定可靠、彈性擴展的IaaS(Infrastructure as a Service)級別云計算服務。云服務器ECS免去了您采購IT硬件的前期準備&#xff0c;讓您像使用水、電、天然氣等公共資源一樣便…

視頻圖像不正常的幾個表現及解決方法

1、 圖像發白的原因? 1、檢查是否鏡頭圈調行過大而導致圖像發白; 2、在檢查攝像機后有一自動光圈亮度輔助調整電位器&#xff0c;是否因電位器調得過大; 3、檢查監視器亮度&#xff0c;對比度是否調得過大或故障. 2、 圖像質量不好的原因? 檢查鏡頭是否有指紋或太臟。檢查光圈…

redis watch multi exec 關系

EXEC 執行所有事務塊內的命令。 假如某個(或某些) key 正處于 WATCH 命令的監視之下&#xff0c;且事務塊中有和這個(或這些) key 相關的命令&#xff0c;那么EXEC 命令只在這個(或這些) key 沒有被其他命令所改動的情況下執行并生效&#xff0c;否則該事務被打斷(abort)。 返回…

Chrome 控制臺指南

轉自&#xff1a;http://blog.jobbole.com/76985/ Chrome的開發者工具已經強大到沒朋友的地步了&#xff0c;特別是其功能豐富界面友好的console&#xff0c;使用得當可以有如下功效&#xff1a; 更高「逼格」更快「開發調試」更強「進階級的Frontender」Bug無處遁形「Console大…

專家:大數據等新技術助力信息融合

ACCA中國區政策主管錢毓益本周末在出席由上海國家會計學院主辦的“管理會計&#xff1a;融合與創新”論壇時表示&#xff1a;新一輪以移動互聯網、物聯網和云計算及大數據為代表的信息技術&#xff0c;將融合與創新發展表現得淋漓盡致。 錢毓益指出&#xff0c;通過數字化轉型與…

python數據類型匯總_python基礎數據類型匯總

#!/usr/bin/env python# -*- encoding:utf-8 -*-# author:Administrator# make_time:2018/6/9‘‘‘數據類型&#xff1a;不可變數據類型&#xff1a;int、str、bool、tuple、frozenset可變數據類型&#xff1a;list、dict、set公共方法&#xff1a;count()、len()、del、copy(…

開發實戰細節之——關于整型轉換為字符串類型的性能與實現分析

細節決定成敗&#xff0c;開發中往往從一些細節就可以看出一個程序員的開發水準&#xff0c;下面我就給大家分享一下開發中最最常見的int轉換為String類型的方法及其性能解析。 一般大家最常用的方法有 方法一&#xff1a;String s1 String.valueOf(i); 方法二&#xff1a;St…

華為服務器故障燈不開機_華為服務器日常維護及故障處理介紹V.ppt

通電策略 power on上電自動開機。 power off上電不自動開機&#xff0c;需按前面板電源按鈕才能開機。 Last State上電開機與否取決于上次斷電之前的狀態&#xff0c;如果是關機狀態則通電后不能自動開機&#xff0c;如果是開機狀態則通電后可以自動開機。 硬件狗 BMC WDT Acti…

《黑客大曝光:移動應用安全揭秘及防護措施》一2.2 攻擊與對策

本節書摘來自華章出版社《黑客大曝光&#xff1a;移動應用安全揭秘及防護措施》一書中的第2章&#xff0c;第2.2節&#xff0c;作者 &#xff08;美&#xff09;Neil Bergman &#xff0c;更多章節內容可以訪問云棲社區“華章計算機”公眾號查看 2.2 攻擊與對策 好&#xff0c…

Android 4.2 通知通過PendingIntent啟動Activity失敗的問題

今天突然發現在Android 4.2手機上點擊通知消息無法打開Activity的問題&#xff0c;具體Logcat信息如下&#xff1a; 01-09 11:37:43.733: WARN/ActivityManager(92): Unable to send startActivity intent java.lang.SecurityException: Permission Denial: starting Intent { …

ubuntu安裝sublime

添加sublime text 3的倉庫&#xff1a; sudo add-apt-repository ppa:webupd8team/sublime-text-3 更新軟件庫 sudo apt-get update 安裝Sublime Text 3: sudo apt-get install sublime-text-installer 安裝sublime2: sudo add-apt-repository ppa:webupd8team/sublime-text-2 …

jdbctemplate mysql 配置_Spring JDBCTemplate配置使用

一、開發環境Windows 10IntelliJ IDEA 2016.1 旗艦版JDK1.8二、項目和數據庫結構項目結構&#xff1a;數據庫(MySQL 5.5.39)&#xff1a;/*Navicat MySQL Data TransferSource Server : localhostSource Server Version : 50539Source Host : localhost:3306Source Database : …

細數家庭安防五大亂象 何時能步入正軌

雖然智能家居行業在我國的成長已逾十個年頭了&#xff0c;但是目前市場離成型仍然有一段距離。市場上可謂“亂象”叢生&#xff0c;這些絆腳石嚴重阻礙了行業的良性發展。市場亂象繁生&#xff0c;智能家居從概念炒作到價格高抬&#xff0c;相關預測顯示&#xff0c;若真如電商…

HDU 1181 變形課

Problem Description呃......變形課上Harry碰到了一點小麻煩,由于他并不像Hermione那樣可以記住全部的咒語而任意的將一個棒球變成刺猬什么的,可是他發現了變形咒語的一個統一規律:假設咒語是以a開頭b結尾的一個單詞,那么它的作用就恰好是使A物體變成B物體. Harry已經將他所會的…

多線程(同步代碼塊和同步函數)

線程安全問題 當多條語句在操作同一個線程共享數據時&#xff0c;一個線程對多條語句只執行了一部分&#xff0c;還沒有執行完&#xff0c; 另一個線程參與進來執行。導致共享數據的錯誤。解決辦法&#xff1a; 對多條操作共享數據的語句&#xff0c;只能讓一個線程都執行…

沒有基礎學python_python沒有基礎好學嗎

什么是Python&#xff1f;Python是一種計算機程序設計語言。你可能已經聽說過很多種流行的編程語言&#xff0c;比如非常難學的C語言&#xff0c;非常流行的Java語言&#xff0c;適合初學者的Basic語言&#xff0c;適合網頁編程的JavaScript語言等&#xff0c;Python是他們其中…