1112 求先序排列【NOIP2001普及组】 1113 装箱问题【NOIP2001普及组】
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
求先序排列【NOIP2001普及组】
Time Limit:10000MS Memory Limit:65536K
Total Submit:4 Accepted:4
Description
给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度<= 8)。
样例输入:
BADC
BDCA
样例输出:
ABCD
Input
Output
Sample Input
BADC
BDCA
Sample Output
ABCD
Source
∙var
∙ s1,s2:string;
∙procedure dfs(s1,s2:string);
∙var ch:char;
∙ p:longint;
∙begin
∙ if length(s1)=0 then exit;
∙ ch:=s2[length(s2)];
∙ write(ch);
∙ p:=pos(ch,s1);
∙ dfs(copy(s1,1,p-1),copy(s2,1,p-1));
∙ dfs(copy(s1,p+1,length(s1)-p),copy(s2,p,length(s2)-p)); ∙end;
∙
∙begin
∙ readln(s1);
∙ readln(s2);
∙ dfs(s1,s2);
∙end.
装箱问题【NOIP2001普及组】
Time Limit:10000MS Memory Limit:65536K
Total Submit:23 Accepted:20
Description
有一个箱子容量为V(正整数,0 <=V <=20000),同时有n个物品(0 <n <=30),每个物品有一个体积(正整数)。要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。
Input
24一个整数,表示箱子容量
6一个整数,表示有n个物品
8接下来n行,分别表示这n 个物品的各自体积
3
12
7
9
7
Output
0一个整数,表示箱子剩余空间。
Sample Input
24 {一个整数,表示箱子容量}
6 {一个整数,表示有n个物品}
8 {接下来n行,分别表示这n 个物品的各自体积}
3
12
7
9
7
Sample Output
0 {一个整数,表示箱子剩余空间} Source
∙var
∙ i,j,n,v,x:longint;
∙ a:array[0..20000] of boolean;
∙begin
∙ readln(v);
∙ readln(n);
∙ a[0]:=true;
∙ for i:=1 to n do begin
∙ readln(x);
∙ for j:=v-x downto 0 do if a[j] then ∙ a[j+x]:=true;
∙ end;
∙ j:=0;
∙ for i:=v downto 0 do if a[i] then begin ∙ j:=i; break;
∙ end;
∙ writeln(v-j);
∙end.