信息学竞赛常用算法与策略:贪心策略(6)
合肥奥数网整理
2013-01-18 14:28:18
2.删数问题的源程序:
输入数据:一个高精度正整数N,所删除的数字个数S。
输出数据:去掉的数字的位置和组成的新的正整数。
Program Delete_digit;
Var n:string;{n是由键盘输入的高精度正整数}
s,a,b,c:byte;{s是所要删除的数字的个数}
data:array[1..200] of 0..9; {记录删除的数字所在位置}
begin
readln(n);
readln(s);
for a:=1 to s do
for b:=1 to length(n) do if n[b]>n[b+1] then {贪心选择}
begin
delete(n,b,1);
data[a]:=b+a-1; {记录所删除的数字的位置}
break;
end;
while n[1]='0' do delete(n,1,1); {将字符串首的若干个“0”去掉}
writeln(n);
for a:=1 to s do writeln(data[a],' ');
end.
关于合肥市青少年信息学竞赛更多的信息,请关注合肥奥数网“青少年信息学竞赛”频道。
相关阅读