国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

!算 24 (dfs)

2019-11-11 06:28:47
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

總時(shí)間限制: 3000ms 內(nèi)存限制: 65536kB 【】描述 給出4個(gè)小于10個(gè)正整數(shù),你可以使用加減乘除4種運(yùn)算以及括號(hào)把這4個(gè)數(shù)連接起來(lái)得到一個(gè)表達(dá)式。現(xiàn)在的問(wèn)題是,是否存在一種方式使得得到的表達(dá)式的結(jié)果等于24。

這里加減乘除以及括號(hào)的運(yùn)算結(jié)果和運(yùn)算的優(yōu)先級(jí)跟我們平常的定義一致(這里的除法定義是實(shí)數(shù)除法)。

比如,對(duì)于5,5,5,1,我們知道5 * (5 – 1 / 5) = 24,因此可以得到24。又比如,對(duì)于1,1,4,2,我們?cè)趺炊疾荒艿玫?4。 【】輸入 輸入數(shù)據(jù)包括多行,每行給出一組測(cè)試數(shù)據(jù),包括4個(gè)小于10個(gè)正整數(shù)。最后一組測(cè)試數(shù)據(jù)中包括4個(gè)0,表示輸入的結(jié)束,這組數(shù)據(jù)不用處理。 【】輸出 對(duì)于每一組測(cè)試數(shù)據(jù),輸出一行,如果可以得到24,輸出“YES”;否則,輸出“NO”。 【】樣例輸入 5 5 5 1 1 1 4 2 0 0 0 0 【】樣例輸出 YES NO

代碼(學(xué)自syx大佬)

#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<string>#include<cmath>#define LL long long#define p 0.00000001using namespace std;double num[5];bool f[5];bool dfs(int k)//計(jì)算完的卡號(hào) { if(k==4){ for(int i=1;i<=4;i++) if(!f[i]&&fabs(num[i]-24.0)<p) return true; return false; } for(int i=1;i<=4;i++) if(!f[i]) for(int j=i+1;j<=4;j++) if(!f[j])//未計(jì)算過(guò) { double tmp1=num[i],tmp2=num[j]; num[i]=tmp1+tmp2;f[j]=true; if(dfs(k+1)) return true; f[j]=false; num[i]=tmp1*tmp2;f[j]=true; if(dfs(k+1)) return true; f[j]=false; num[i]=tmp1-tmp2;f[j]=true; if(dfs(k+1)) return true; f[j]=false; num[i]=tmp2-tmp1;f[j]=true; if(dfs(k+1)) return true; f[j]=false; num[i]=tmp1/tmp2;f[j]=true; if(dfs(k+1)) return true; f[j]=false; num[i]=tmp2/tmp1;f[j]=true;//減或除以有兩種情況 這是一個(gè)坑 if(dfs(k+1)) return true; f[j]=false; num[i]=tmp1;f[j]=false;//回溯 } return false;}int main(){ while(1){ memset(f,false,sizeof(f));//多組數(shù)據(jù),每次初始化 scanf("%lf%lf%lf%lf",&num[1],&num[2],&num[3],&num[4]); if(num[1]==0&&num[2]==0&&num[3]==0&&num[4]==0) break; if(dfs(1))
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 册亨县| 北辰区| 长寿区| 九江市| 玛纳斯县| 襄城县| 永春县| 从化市| 峨山| 达尔| 深州市| 江阴市| 东光县| 青铜峡市| 武川县| 曲松县| 绍兴市| 泽库县| 临桂县| 商城县| 阳山县| 馆陶县| 金乡县| 孟村| 明溪县| 苍溪县| 乐亭县| 乌兰浩特市| 建平县| 柘荣县| 龙州县| 织金县| 霸州市| 沙田区| 北京市| 东乡族自治县| 新巴尔虎左旗| 介休市| 灵宝市| 宁陕县| 浦江县|