170 条题解
-
0wasyyyy LV 3 @ 2007-09-16 14:50:23
谈谈鄙人的想法:
裸搜,只有7056个搜索对象(次数)
先是枚举3个运算符的位置和种类
RP(∞,3)=4^3=64
然后是4个数字的全排列
P(4,4)=4!=24
最后看括号,大家都知道括号是来改变运算符的优先级别的.所以...从本质枚举,直接枚举3个运算符的优先级别..即忽略原来+-*/的优先级别.重新定义....枚举次数为3的全排列
P(3,3)=3!=6
并且其中312和213的情况是一样的,实际只有5种运算顺序
这样就免去了添括号的麻烦...编程难度也大大降低不过好象这题目...看看'专业学DP'的程序...貌似不用那么麻烦...可是对于他的程序来说(x1+x2)/(x3-x4)这种类型的数据好象应该过不了...是数据弱?或者是我没理解题意?还是什么原因?
可能我的想法有疏漏,请大家慷慨地指出来....
-
02007-08-22 14:40:52@
我用的是垃圾算法....
-
02007-08-10 22:29:59@
wanly的不對
你試試‘9 A 7 K’ -
02007-07-24 09:48:38@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
回溯即可 -
02007-09-16 16:23:24@
楼下这位确实有道理。。。
在添加几种情况貌似就可以了
可能出现你说的那种可以用其他的取代了
从题的数据来看,只有(x1=11 and x2=13) or (x1=12 and x2=12)时。出现24=(x1+x2)/(x3-x4) 此时,可以证明必然为x3-x4=1
数据只能是 (Q Q (x3-x4)=1) (J K (x3-x4)=1) 经过我的证明是完全可以用其他的方式取代的
我在考虑深搜没考虑到(x1+x2)/(x3-x4)情况是我的疏忽.对不起了
-
02007-07-21 20:01:05@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02007-07-20 09:15:47@
十足的烂题
-
02007-07-19 23:27:29@
大致分2种情况吧
1.两两进行运算再和起来运算 看能否得出24
2.先两个进行运算,再和第三个运算,再和第四个运算(这里/和-要讨论2个数的顺序) -
02007-06-25 10:21:47@
var
a:array[1..4]of comp;
i,j,k,l,q,w,e:byte;
t,s,p:real;
ss,s1:string;
ch:char;
procedure c1;{((x1 ? x2) ? x3) ? x4}
begin
s:=a[i];
case q of
1: s:=s+a[j];
2: s:=s-a[j];
3: s:=s*a[j];
4: s:=s/a[j];
end;
case w of
1: s:=s+a[k];
2: s:=s-a[k];
3: s:=s*a[k];
4: s:=s/a[k];
end;
case e of
1: s:=s+a[l];
2: s:=s-a[l];
3: s:=s*a[l];
4: s:=s/a[l];
end;
if s=24//(24-s -
02007-06-25 10:13:16@
骗个数据真EASY
3 8 Q 10 1
Q 3 Q Q 1
9 9 9 9 0
2 7 9 J 1
A 3 Q K 1
A 4 J J 0
3 10 J J 0
A J Q K 1
3 7 8 10 0
4 Q K K 0 -
02007-04-21 16:58:14@
硬搜
复杂度大概是O(N!*N)(N = 4)
晕的是交上去90分,原来没看到'A' = 1 -
02007-04-11 20:01:37@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02007-04-11 18:08:15@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
相信我,狂搜,不会超。 -
02007-02-02 11:53:58@
同楼下/.\被零除...
PS.这题有这么难吗?难度3?真开玩笑><
一个DFS两下就解决...
-
02007-01-13 12:59:08@
刚开始做竟然200错误了,除数有0,改了下就AC了
-
02006-11-11 11:50:38@
第9组 3 7 8 10...
-
02006-11-10 21:38:49@
怎么搜都能过..
我郁闷死了..把A当作10了.... -
02006-11-08 09:46:41@
大牛帮我看看
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案错误... ├ 标准行输出 0
├ 错误行输出 1
├ 测试数据 10:答案正确... 0ms -
02006-11-07 14:25:44@
楼下的大牛
真让我恍然大悟!
难道其他人没有感触吗?!!
!!! -
02006-10-25 21:39:56@
【问题描述】
几十年前全世界就流行一种数字游戏,至今仍有人乐此不疲.在中国我们把这种游戏称为“算24点”。您作为游戏者将得到4个1~9之间的自然数作为操作数,而您的任务是对这4个操作数进行适当的算术运算,要求运算结果等于24。
您可以使用的运算只有:+,-,*,/,您还可以使用()来改变运算顺序。注意:所有的中间结果须是整数,所以一些除法运算是不允许的(例如,(2*2)/4是合法的,2*(2/4)是不合法的)。下面我们给出一个游戏的具体例子:
若给出的4个操作数是:1、2、3、7,则一种可能的解答是1+2+3*7=24。