535 条题解
-
0长沙小胖哥 LV 3 @ 2008-09-18 19:57:56
编译通过...
├ 测试数据 01:答案正确... 322ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 338ms
├ 测试数据 08:答案正确... 338ms
├ 测试数据 09:答案正确... 353ms
├ 测试数据 10:答案正确... 338ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:1689ms耗时1689???好象我一个同学的卡密码是.....呵呵 不是我说的
type
ar=array[1..10000]of longint;
var
a:array[1..10000]of longint;
i,j,k,l:longint;
m1,m2,n:longint;procedure xzxz(a:ar;x:longint);
var
xz,b:longint;
begin
b:=maxlongint;
for xz:=1 to x do
if a[xz] -
02008-09-18 19:07:47@
#include
#includeint main(int argc, char *argv[])
{int i,j,n,s,p,a[10000];
s=0;
a[0]=0;
scanf("%d",&n);
for(i=1;i -
02008-10-03 16:03:46@
var n,i,t:integer;total:longint;a:array[1..10000] of integer;
procedure init;
var i:integer;
begin
readln(n);
for i:=1 to n do
read(a[i]);
end;procedure qs(i,j:integer);
var ii,jj,m,t:integer;
begin
ii:=i;
jj:=j;
m:=a[(i+j) div 2];
repeat
while a[i]>m do inc(i);
while a[j] -
02008-09-16 21:04:16@
牛人帮忙看一下
program jason;
Var
a:array[1..10000]of longint;
i,n,t,s,g:longint;
procedure SITF(l,m:longint);
var
k,j:integer;
begin
k:=l;
j:=2*k;
t:=a[k];
whileja[j+1] then
j:=j+1;
if t>a[k] then
begin
a[k]:=a[j];
k:=j;
j:=2*j;
end;
else break;
end;
a[k]:=t;
end.
begin
readln(n);
for i:=1 to n do
read(a[i]);
for i:=n div 2 downto 1 do
SITF(i,n);
s:=0;
g:=n;
while g>1 do
begin
i:=2;
if (i+1a)
then i:=i+1;
a[i]:=a[i]+a[1];
s:=s+a[i];
SITF(i,g);
a[1]:=a[g];
g:=g-1;
SITF(1,g);
end;
writeln(s);
end. -
02008-09-18 12:32:46@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 9ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:运行超时...
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:90 有效耗时:9ms编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 9ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 25ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:34ms同样的程序,靠!!!怎么回事??????????????
-
02008-09-15 12:59:43@
program eat(input,output);
type
arr=array[1..10000] of longint;
var
mina,minb,sum:longint;
m,n,i:integer;
a:arr;
procedure init;
var
i:integer;
begin
fillchar(a,sizeof(a),0);
sum:=0;readln(n);
m:=n;
for i:=1 to n do
read(a[i]);end;
procedure milk(var a:arr;n,i:integer);
var
t,j:longint;
begin
t:=a[i];
j:=2*i;
while ja[j] then
begin a[i]:=a[j];i:=j;j:=2*i;end
else break;
end;
a[i]:=t;
end;function min:longint;
begin
min:=a[1];
a[1]:=a[n];
n:=n-1;
milk(a,n,1);
end;
begin
init;
for i:=(n div 2)downto 1 do
milk(a,n,i);
for i:=1 to m-1 do
begin
mina:=min;
minb:=min;
n:=n+1;
a[n]:=mina+minb;
milk(a,n,1);
sum:=sum+minb+mina;
end;write(sum);
end.
-
02008-09-14 15:02:51@
郁闷掉,一样的程序……
Tiger 的结果:
编译通过...
├ 测试数据 01:答案正确... 338ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 25ms
├ 测试数据 07:答案正确... 228ms
├ 测试数据 08:答案正确... 338ms
├ 测试数据 09:答案正确... 197ms
├ 测试数据 10:答案正确... 353ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:1479msDolphin 的结果:
编译通过...
├ 测试数据 01:答案正确... 212ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:运行超时...
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 119ms
├ 测试数据 08:答案正确... 197ms
├ 测试数据 09:答案正确... 103ms
├ 测试数据 10:答案正确... 197ms
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:90 有效耗时:828ms -
02008-09-13 09:52:56@
好像不是很难.........
-
02008-09-11 23:25:01@
编译通过...
├ 测试数据 01:答案正确... 728ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 41ms
├ 测试数据 06:答案正确... 134ms
├ 测试数据 07:答案正确... 650ms
├ 测试数据 08:答案正确... 728ms
├ 测试数据 09:答案正确... 634ms
├ 测试数据 10:答案正确... 712ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:3627ms -
02008-09-11 18:22:56@
var
i,j,k,n,m,v:longint;
a,b,c:array[1..100000]of longint;
procedure pai(l,r:longint);
var
i,j,k,mid:longint;
begin
mid:=a[(l+r)div 2];
i:=l;
j:=r;
repeat
while a[i]mid do dec(j);
if ij;
if l -
02008-09-11 08:08:29@
堆排
-
02008-09-10 16:33:11@
快排+二分查找即可。
有些慢。
怎么还敢贴程序。 -
02008-09-07 18:52:58@
我郁闷啊,排序,然后加最小的,错了嘛?用的快排..为什么会错!!!!!!!!!!!!!就10分....- -|||郁闷啊~谁给解释下?DP测试
-
02008-09-05 16:08:44@
program zhangji;
type
arr=array[1..10000] of longint;
var a:arr;
i,j,k,l,m1,m2,n:longint;
procedure f(a:arr;x:longint);
var
jj,b:LONGINT;
begin
b:=maxlongint;
for jj:=1 to x do
if a[jj] -
02009-07-25 10:00:04@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms基本思路:
(1)快排g数组;
(2)得:每次要合并的堆子都是数组前两堆(=g[i]+g)....
(3)再把[合并得到的堆子]排进数组
就这样重复(n-1)次=AC
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓var
n,i,q,step,answer:longint;
g:array[1..10001]of longint;(记录每个堆子的重)
ans:array[1..10000]of longint;(记录每次合并的体力消耗)
procedure kuaipai(head,tail:longint);
var
x,y,mid,step:longint;
begin
x:=head;
y:=tail;
mid:=g[(x+y) div 2];
repeat
while g[x]mid do dec(y);
if xy;
if xhead then kuaipai(head,y);
end;
begin
readln(n);
fillchar(g,sizeof(g),0);
for i:=1 to n do
read(g[i]);
kuaipai(1,n);
for i:=1 to (n-1) do
begin
ans[i]:=g[i]+g;
g:=g[i]+g;
q:=i+1;
while (g[q]>g[q+1])and(q+1 -
02008-09-02 19:27:47@
编译通过...
├ 测试数据 01:答案正确... 650ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:运行超时...
├ 测试数据 07:答案正确... 478ms
├ 测试数据 08:答案正确... 603ms
├ 测试数据 09:答案正确... 494ms
├ 测试数据 10:答案正确... 634ms
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:90 有效耗时:2859ms不是吧!
-
02008-08-31 14:25:14@
队列O(n),0ms
-
02008-08-28 21:40:22@
什么系堆排?(我系菜鸟,多多指教)
-
02008-08-27 21:04:41@
-
02008-08-24 10:48:48@
靠,无奈了,把integer改成longint就AC了。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。