3360: [Usaco2004 Jan]算二十四
3360: [Usaco2004 Jan]算二十四
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 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)
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.
分类:
Bzoj
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)