3360: [Usaco2004 Jan]算二十四
2024-10-16 02:38:53
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
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.
样例说明
四种方法分别是6x4x2-8-16,6-4- 2+8+16,6x4-2 x8+16,6×4+2×8-16.
HINT
Source
题解:直接O(3N)都能过。。。水水哒。。。
(还有话说USACO Orange/Green/Blue 这玩意是什么鬼= =,别告诉我Orange=Bronze阿阿阿QAQ,@bx2k @Recursionsheep @acphile @wnjxyk)
const d:array[..] of char=('+','-','*');
var
i,j,k,l,m,n:longint;
a,b:array[..] of longint;
function calc:int64;
var i:longint;a1,a2,a3:int64;
begin
a1:=;a2:=a[];a3:=;
for i:= to n do
begin
case b[i-] of
:BEGIN
if a3= then a1:=a1+a2 else a1:=a1-a2;
a2:=a[i];a3:=;
end;
:begin
if a3= then a1:=a1+a2 else a1:=a1-a2;
a2:=a[i];a3:=;
end;
:begin
a2:=a2*a[i];
end;
end;
end;
if a3= then a1:=a1+a2 else a1:=a1-a2;
calc:=a1;
end;
procedure dfs(x:longint);inline;
var i:longint;
begin
if x>=n then
begin
if calc= then inc(l);
exit;
end;
for i:= to do
begin
b[x]:=i;
dfs(x+);
end;
end;
begin
readln(n);
for i:= to n do readln(a[i]);
l:=;
dfs();
writeln(l);
end.
最新文章
- 使用Shell创建GitHub仓库
- android中Camera setDisplayOrientation使用
- DESCryptoServiceProvider
- 【python】f.write()写入中文出错解决办法
- css伪元素选择器
- 安装nfs服务器
- 深入浅出ES6(二):迭代器和for-of循环
- http接口测试浏览器插件
- js导出成excel
- JavaEE Tutorials (9) - 运行持久化示例
- 一种基于FSIM对视频编码图像质量客观评价的方法
- Git操作简介
- HTTP Status 500 - Request processing failed; nested exception is org.hibernate.exception.GenericJDBCException: could not execute statement
- EasyUI中, datagrid用loadData方法绑定数据。
- Windows下 tensorboard出现ValueError:Invalid format string
- 牛客练习赛13D 幸运数字4
- [转]Linux下is not in the sudoers file解决方法
- IC卡热复位时序
- (1.12)SQL优化——mysql表名、库名大小写敏感
- Python全栈开发 列表, 元组 数据类型知识运用及操作 range知识