3360: [Usaco2004 Jan]算二十四

3360: [Usaco2004 Jan]算二十四

Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 6  Solved: 6
[Submit][Status][Discuss]

Description

写一个程序,给出D(2≤D≤10)个数字,按原顺序在数字间加+,一,×算出24,且不使用括

号.优先级按正常的优先级处理,即先做乘法后做加减法.输出有多少种不同的方案数.

Input

第1行:一个整数D.

第2到D+1行:D个整数,在1到50之间.

Output

输出方案总数.

Sample Input

5
6
4
2
8
16

Sample Output

4
样例说明
四种方法分别是6x4x2-8-16,6-4- 2+8+16,6x4-2 x8+16,6×4+2×8-16.

HINT

Source

Orange

题解:直接O(3N)都能过。。。水水哒。。。

(还有话说USACO Orange/Green/Blue 这玩意是什么鬼= =,别告诉我Orange=Bronze阿阿阿QAQ,@bx2k @Recursionsheep @acphile @wnjxyk)

 1 const d:array[1..3] of char=(‘+‘,‘-‘,‘*‘);
 2 var
 3         i,j,k,l,m,n:longint;
 4         a,b:array[0..20] of longint;
 5 function calc:int64;
 6         var i:longint;a1,a2,a3:int64;
 7         begin
 8                 a1:=0;a2:=a[1];a3:=1;
 9                 for i:=2 to n do
10                         begin
11                                 case b[i-1] of
12                                         1:BEGIN
13                                                 if a3=1 then a1:=a1+a2 else a1:=a1-a2;
14                                                 a2:=a[i];a3:=1;
15                                         end;
16                                         2:begin
17                                                 if a3=1 then a1:=a1+a2 else a1:=a1-a2;
18                                                 a2:=a[i];a3:=2;
19                                         end;
20                                         3:begin
21                                                 a2:=a2*a[i];
22                                         end;
23                                 end;
24                         end;
25                 if a3=1 then a1:=a1+a2 else a1:=a1-a2;
26                 calc:=a1;
27         end;
28 procedure dfs(x:longint);inline;
29         var i:longint;
30         begin
31                 if x>=n then
32                         begin
33                                 if calc=24 then inc(l);
34                                 exit;
35                         end;
36                 for i:=1 to 3 do
37                         begin
38                                 b[x]:=i;
39                                 dfs(x+1);
40                         end;
41         end;
42 begin
43         readln(n);
44         for i:=1 to n do readln(a[i]);
45         l:=0;
46         dfs(1);
47         writeln(l);
48 end.
时间: 2024-10-07 02:45:21

3360: [Usaco2004 Jan]算二十四的相关文章

[bzoj3360] [Usaco2004 Jan]算二十四

O(3^9)枚举符号.. 成功垫底QAQ...幸好没破坏这题100%的AC率.. 1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 using namespace std; 5 int l[11],r[11]; 6 int fh[11],num[11],a[11]; 7 int i,j,k,n,m,ans; 8 9 int ra;char rx; 10 inline int read(){ 11

趣味集算:算二十四

算24点,是一种常见的智力游戏.它可以使用抽去大小王的扑克牌来玩,随便抽出4张牌,要求通过加.减.乘.除等四则运算,并使用所有的这4个数,将结果算为24.在玩这个游戏时,扑克牌中的JQK记为11,12和13. 用集算器,可以比较方便地编写程序,根据随便给定的4个数,计算出游戏的解答,如下面的24points.dfx: A B C D 1 =arg1 [+,-,*,/] [] [] 2 =to(0,255).([~\64+1, ~%64\16+1,~%16\4+1,~%4+1]) =A2.sele

二十四孝,图文并茂,古今必读!

知道“二十四孝”的人,已经不多了:知道“二十四孝”的年轻人,更是少之又少.“孝”在今日社会,似乎已是一个“过气”的词,人老珠黄般,逗不起众人的欲望了.我们读<二十四孝>,感觉那似乎是十分遥远的故事.其实细细想来,它好像又近在咫尺,离我们并不远. 01 孝感动天 舜,传说中的远古帝王,五帝之一,姓姚,名重华,号有虞氏,史称虞舜.相传他的父亲瞽叟及继母.异母弟象,多次想害死他:让舜修补谷仓仓顶时,从谷仓下纵火,舜手持两个斗笠跳下逃脱:让舜掘井时,瞽叟与象却下土填井,舜掘地道逃脱.事后舜毫不嫉恨,仍

请对照这二十四条逻辑谬误自行打脸(转自知乎谢熊猫专栏)

[科普工具文]请对照这二十四条逻辑谬误自行打脸 谢熊猫君 · 1 年前 两年前,我还活跃在人人网的时候,曾经整理过一篇常见逻辑谬误的工具文,用来帮助大家在网络讨论中打脸用: [科普工具文]请对照这二十四条逻辑谬误自行打脸 这两年来在一些社交网站和互联网论坛中常看到有人使用这篇文章,想来也是有点用处的,特意在这边转帖一下,为方便各位在知乎讨论时能更加方便的辨别逻辑问题. ======================= ======================= 本文内容基本都来自于英文网站ht

从零开始学android&lt;android事件的处理方式.二十四.&gt;

在android中一共有 多种事件,每种事件都有自己相对应的处理机制 如以下几种 1 单击事件 View.OnClickListener public abstract void onClick (View v) 单击组件时触发 2 单击事件 View.OnLongClickListener public abstract boolean onLongClick (View v) 长按组件时触发 3 键盘事件 View.OnKeyListener public abstract boolean

实验二十四:SD卡模块

  驱动SD卡是件容易让人抓狂的事情,驱动SD卡好比SDRAM执行页读写,SD卡虽然不及SDRAM的麻烦要求(时序参数),但是驱动过程却有猥琐操作.除此此外,描述语言只要稍微比较一下C语言,描述语言一定会泪流满面,因为嵌套循环,嵌套判断,或者嵌套函数等都是它的痛.. 史莱姆模块是多模块建模的通病,意指结构能力非常脆弱的模块,暴力的嵌套行为往往会击垮模块的美丽身躯,好让脆弱结构更加脆弱还有惨不忍睹,最终搞垮模块的表达能力.描述语言预想驾驭SD卡,关键的地方就是如何提升模块的结构能力.简单而言,描述

攻城狮在路上(叁)Linux(二十四)--- linux设置开机挂载及镜像文件挂载

虽然可以手动进行文件系统的挂载,但是每次都手动挂载就会很麻烦,开机挂载的目的就是实现文件系统的自动挂载. 一.开机挂载:/etc/fstab及/etc/mtab 主要是通过修改/etc/fstab文件的配置来实现. fstab是开机时的设置,实际文件系统的挂载是记录到/etc/mtab和/proc/mounts这两个文件中. 1.系统挂载的限制: A.根目录/必须挂载,而且一定是最先挂载的,要先于其他mount point. B.其他挂载点必须为已新建的目录,可以任意指定. C.所有挂载点在同一

全栈JavaScript之路( 二十四 )DOM2、DOM3, 不涉及XML命名空间的扩展

(一)DocumentType 类型的变化新增三个属性: publicId,systemId,internalSubset(内部子集) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" [<!ELEMENT name (#PCDATA)>] > 通过, document.doc

马哥学习笔记二十四——分布式复制快设备drbd

DRBD: 主从 primary: 可执行读.写操作 secondary: 文件系统不能挂载 DRBD: dual primay, 双主(基于集群文件系统的高可用集群) 磁盘调度器:合并读请求,合并写请求: Procotol:drbd数据同步协议 A: Async, 异步  数据发送到本机tcp/ip协议栈 B:semi sync, 半同步  数据发送到对方tcp/ip协议 C:sync, 同步  数据到达对方存储设备 DRBD Source: DRBD资源 资源名称:可以是除了空白字符外的任意