136 条题解
-
0jww521 LV 7 @ 2009-05-09 12:31:39
#include "stdio.h"
#include "string.h"
struct node
{
char ID[21],s[1000];
int ls;
}a[1001];
void work(int h,int r)
{
int i=h,j=h*2;
struct node t=a[h];
while(j0)
j++;
else if(a[j].ls==a[j+1].ls && strcmp(a[j].s,a[j+1].s)==0 && strcmp(a[j].ID,a[j+1].ID)a[j].ls)
{
a[i]=a[j];
i=j;
j=i*2;
}
else if(t.ls==a[j].ls && strcmp(t.s,a[j].s)>0)
{
a[i]=a[j];
i=j;
j=i*2;
}
else if(t.ls==a[j].ls && strcmp(t.s,a[j].s)==0 && strcmp(t.ID,a[j].ID)=1;i--)
work(i,n);
for(int i=n;i>1;i--)
{
t=a[i];
a[i]=a[1];
a[1]=t;
work(1,i-1);
}
}
main()
{
int n;
scanf("%d",&n);
for(int i=1;i -
02009-04-24 22:28:36@
此题步骤
【1】对水王的次数进行排序(递减)
比较方法:两数字字符串长度相同时 可直接比大小
'0000010' -
02009-04-17 15:42:48@
倒数第2点错
SOS
var
a,s:Array[1..1000]of ansistring;
i,j,k,p,n:longint;
function judge(x,y:ansistring):boolean;
begin
if length(x)>length(y) then exit(true) else
if length(x)y then exit(true) else exit(false);
end;
procedure qsort1(l,r:longint);
var
i,j:longint;
mid,t:ansistring;
begin
i:=l;j:=r;mid:=a[(l+r)shr 1];
repeat
while judge(a[i],mid) do inc(i);
while judge(mid,a[j]) do dec(j);
if not (i>j) then
begin
t:=a[i];a[i]:=a[j];a[j]:=t;
t:=s[i];s[i]:=s[j];s[j]:=t;
inc(i);dec(j);
end;
until i>j;
if ij;
if i -
02009-03-19 21:10:47@
我数据4:程序输出比正确答案长。.55,其他全MS..现在是75分..
-
02009-03-18 12:57:27@
我就5分,其他都是202错误
-
02009-02-25 21:14:00@
program sdf;
var
a:array[1..2,1..1000]of ansistring;
n,i,u,j,k:integer;
aa,b:ansistring;
begin
readln(n);
for i:=1 to n do
begin
readln(a[1,i]);
readln(a[2,i]);
end;
for i:=1 to n-1 do
for j:=i+1 to n do
begin
if length(a[2,j])=length(a[2,i]) then
begin
k:=1;
aa:=a[2,j];
b:=a[2,i];
while k>0 do
begin
if aa[k]>b[k] then k:=-1
else
if aa[k]255 then break;
end;
end;
if (length(a[2,j])=length(a[2,i]))and(k>=0)then
begin
u:=1;
aa:=a[1,j];
b:=a[1,i];
while u>0 do
if aa=b then u:=u+1
else begin
if (aa>='a')and(b>='a')or(aa='a')and(bord(b)+32 then u:=-2 else u:=-1;
if (b>='a')and(aaord(b)-32 then u:=-2 else u:=-1;
end;
k:=u;
end;
if length(a[2,j])>length(a[2,i]) then k:=-1;
if k=-1 then
begin
b:=a[2,j];
a[2,j]:=a[2,i];
a[2,i]:=b;
b:=a[1,j];
a[1,j]:=a[1,i];
a[1,i]:=b;
end;
end;
for i:=1 to n do
writeln(a[1,i]);
end. -
02009-02-15 13:56:31@
果然水题
-
02009-02-01 11:33:38@
5分的同志……注意是分数相等也就是s1=s2而不是length(s1)=length(s2)
%>_ -
02009-01-17 11:07:23@
2次ac我汗。。。
-
02009-01-11 19:39:05@
很简单的高精度比较+字符串比较
可惜以前常犯的错误又出现了,交了3次
。。。真笨啊 -
02008-12-16 11:21:49@
字符串可以比较大小的。比较‘9’与‘11’会出错,但是在前面都填充0以后就可以直接用>和
-
02008-12-02 18:03:08@
数据类型用STRING就可以A掉了!不用ANSISTRING!
-
02008-11-22 18:23:48@
巨水。水王。。
-
02008-11-11 23:35:29@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms秒杀。。。。。。。。。。。。
请注意:
1.先判断数字长度
2.再判断数字大小
3.最后判断ID先后顺序
4.请不要像水王那样恶意灌水~~~~~~~~部分代码:(上)
if(a.num.size()>b.num.size())return 0;
else if(a.num.size()b.num)return 0;
else if(a.num -
02008-11-04 13:58:34@
不用高精,用extended
不用管什么字典啊ASCII的,直接比较:
if nam[i]>nam[j] then 说明 nam[j]该在前面 -
02008-11-02 18:59:37@
字典序,很好很强大
-
02008-11-01 21:45:02@
曾经有人告诉我,是多关键字排序,我没有好好珍惜,直到wa了时,才后悔莫及
-
02008-10-29 13:54:27@
注意:1.所谓【字典序】其实是【ASCII码序】
2.写基数排序的注意,名字升序,数降序,所以要分开排…… -
02008-10-23 21:13:03@
直接qsort
练练写cmp函数 -
02008-10-19 15:02:08@
我撞墙!95分飘绿.......