讨论 / HELP!!!!-栈溢出???
黑骑士 2008-11-04 16:53:00
点我顶贴 收藏 删除
状态题目:猪王争霸

状态编号: [查看该题]

状态: Unaccepted

测评机: Xeost[5]

得分: 30分

提交日期: 2008-7-29 19:29:00

有效耗时: 该状态没有记录

测试结果1: 测试结果正确

测试结果2: 测试结果正确

测试结果3: 运行错误|栈溢出

测试结果4: 运行错误|栈溢出

测试结果5: 运行错误|栈溢出

测试结果6: 运行错误|栈溢出

测试结果7: 测试结果正确

测试结果8: 运行错误|栈溢出

测试结果9: 运行错误|栈溢出

测试结果10: 运行错误|栈溢出

#1 黑骑士@2008-07-29 05:54:00
回复 删除
program sdaf;

type

aa=record

sn,sd:ansistring;

end;

bb=array[0..1000] of longint;

cc=array[0..5010] of longint;

var

ss:aa;

m,n,i,j,k,t,l:longint;

a:array[0..30010] of aa;

c:cc;

b:bb;

procedure make(var b:bb; c:cc);

var

i,j:longint;

begin

for i:=1 to 500 do

b[i]:=b[i]+c[i];

for i:=2 to 500 do

begin

b[i]:=b[i]+b[i-1] div 10;

b[i-1]:=b[i-1] mod 10;

end;

end;

procedure qsort1(r,l:longint);

略。。

end;

procedure qsort2(r,l:longint);

略。。

end;

begin

readln(n);

for i:=1 to 1010 do

begin

a[i].sd:=;a[i].sn:=;

end;

for i:=1 to n do

begin

readln(a[i].sn);

readln(a[i].sd);

end;

qsort1(1,n);

i:=1;

while i<=n do

begin

j:=i;

while a[j].sd=a[j+1].sd do j:=j+1;

qsort2(i,j);

i:=j+1;

end;

for i:=1 to n do

writeln(a[i].sn);

fillchar(b,sizeof(b),0);

for i:=1 to n do

begin

k:=length(a[i].sd);

fillchar(c,sizeof(c),0);

for j:=1 to k do

c[j]:=ord(a[i].sd[k-j+1])-48;

make(b,c);

end;

for i:=490 downto 2 do

write(b[i]);

writeln(b[1]);

end.

大牛帮忙看看。。。

谢谢~~~

#2 wish@2008-07-29 06:11:00
回复 删除
你的程序能栈溢出的地方就 qsort 了 -_-

保重

#3 黑骑士@2008-07-30 02:44:00
回复 删除
大牛果然言中!!!

本人实在惭愧(~-~)

#4 wish@2008-07-30 05:24:00
回复 删除

想去年我上高一的时候都可以写 SBT 了还不会写 qsort(总是搞错点什么,然后调上三四个小时才勉强能运行)……(我从小学开始搞的)

然后去年 NOIP 的统计数字一题我愣是写了个分段 BST,0.1 秒的瞬间 AC~~

最后为了备战省赛,硬是一字一句背下来了。。。

学快排是我 OI 道路上最痛苦的回忆。。。

#5 zrp@2008-07-31 00:27:00
回复 删除
ME,TOO;直到去年才练熟......;
#6 vinence@2008-07-31 03:12:00
回复 删除
汗,

不会快排之前,

只知道插入和冒泡.

快排我是硬背出来的,

背出来,

才明白是什么意思!

#7 LIFE@2008-11-04 16:53:00
回复 删除
快排我从来没背过,只是原来N长时间之内用到QSORT只是一味COPY但是等到集训时,不经意一写竟是这么简单的就背了下来
查看更多回复
提交回复