111 条题解
-
0junfpc LV 8 @ 2009-07-27 15:06:00
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msvar row,col:array[1..1000,1..2] of integer;
rerow,recol:array[1..1000] of integer;
m,n,k,l,d,x1,y1,x2,y2,a,c:integer;
p:boolean;function min(a,b:longint):longint;
begin
if a -
02009-07-25 20:06:09@
100题纪念~~撒花!
-
02009-07-21 19:16:30@
真的很简单。。只有一咪咪的麻烦。。。。。。。怎么pass的人这么少呢。。
-
02009-07-20 19:57:36@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms要注意,最后输出时是要递增的,害得我傻了好久。但此题还是属于农夫山泉系列的。
program ex;
var n,m,k,l,d,i,j,t,w:longint;
k1,k2,l1,l2,b,c:array[1..1000] of longint;
a:array[1..2000,1..4] of longint;begin
fillchar(k1,sizeof(k1),0);
fillchar(l1,sizeof(l1),0);
readln(m,n,k,l,d);
for i:=1 to d do
readln(a,a,a,a);
for i:=1 to d do
begin
if aa then
if a -
02009-07-20 15:00:27@
要排序两次啊!!
-
02009-07-19 15:50:02@
审题细心啊,输出序号是递增的!!!!(看输出格式)
就因为这个。让我郁闷了一下午。。。。。。 -
02009-07-19 04:34:01@
#include
using namespace std;
int m,n,k,l,d,a[ 3000 ][ 4 ],b[ 500 ] , c[ 500 ],t1[ 3000 ],t2[3000],tp1[ 3000 ],tp2[3000];int cmp(const void *a,const void *b)
{
return *(int*)a - *(int*)b;//return *(int*)b - *(int*)a;就是降序
}
int cmp2(const void *a,const void *b)
{
return *(int*)b - *(int*)a;
}
bool panchong(int *b,int p,int temp)
{
bool flag = 1 ;
for(int i = 0 ; i > m >> n >> k >> l >> d;
int p=0,f=0,temp;
for(int i = 0 ; i < d ; i++)
{
cin >> a[ i ][ 0 ] >> a[ i ][ 1 ];
cin >> a[ i ][ 2 ] >> a[ i ][ 3 ];if(a[ i ][ 0 ] == a[ i ][ 2 ])
{
temp = min(a[ i ][ 1 ] , a[ i ][ 3 ]);
if(panchong(b,p,temp))
{
p++;
b[ p ] = temp;
t1[ temp ]=1;
}
else t1[ temp ]++;
}
if(a[ i ][ 1 ] == a[ i ][ 3 ] )
{
temp = min(a[ i ][ 0 ] , a[ i ][ 2 ]);
if(panchong(c,f,temp))
{
f++;
c[ f ] = temp;
t2[ temp ] = 1;
}
else t2[ temp ]++;
}
}
c[ 0 ] = b[ 0 ] = 0;for(int i = 1 ; i
-
02009-07-16 10:01:01@
program dsa;
var flag,m,n,k,l,d,i,j,x,y,x1,y1:longint;
tmp,col,row:array[1..1000] of longint;
s,s1:ansistring;
function min(a,b:longint):longint;
begin
if ak do inc(i);
while tmp[j] -
02009-07-02 21:02:14@
1次AC
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
1级算法+2级复杂度
选择排序就够用:
program temp;
var
m,n,k,l,d,x,y,p,q,i,j:integer;
a,b,ai,bi:array [1..1000] of integer;
procedure swap(var u,v:integer);
var
t:integer;
begin
t:=u;
u:=v;
v:=t;
end;
begin
readln(m,n,k,l,d);
for i:=1 to d do begin
readln(x,y,p,q);
if x-p=1 then inc(a[p]);
if p-x=1 then inc(a[x]);
if y-q=1 then inc(b[q]);
if q-y=1 then inc(b[y]);
end;
for i:=1 to m do ai[i]:=i;
for i:=1 to n do bi[i]:=i;
for i:=1 to m-1 do
for j:=i+1 to m do
if a[i]bi[j] then swap(bi[i],bi[j]);
for i:=1 to k do write(ai[i],' ');
writeln;
for i:=1 to l do write(bi[i],' ');
readln;
end.
我好惨……
一直在用turbo pascal…… -
02009-06-29 19:25:49@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
很复杂的水题,第一次忘了把输出的排序了,一改AC,爽!!! -
02009-05-26 17:43:04@
var n,m,k,l,d,i,x1,y1,x2,y2,tk,tl,j,temp:integer;
kk,ll:array[1..1000] of integer;
fk,fl:array[1..1000] of integer;
begin
fillchar(kk,sizeof(kk),0);
fillchar(ll,sizeof(ll),0);
readln(n,m,k,l,d);
for i:= 1 to d do
begin
readln(x1,y1,x2,y2);
if x1 = x2 then
begin
if y1 < y2 then inc(ll[y1])
else inc(ll[y2]);
end;
if y1 = y2 then
begin
if x1 < x2 then inc(kk[x1])
else inc(kk[x2]);
end;
end;
tk:=0;
tl:=0;
for n:= 1 to 1000 do
begin
if ll[n] > 0 then begin inc(tl) ; fl[tl]:=n; end;
if kk[n] > 0 then begin inc(tk) ; fk[tk]:=n; end;
end;
for i:= 1 to tk - 1 do
for j:= i to tk do
begin
if kk[fk[i]] < kk[fk[j]] then
begin
temp:=fk[i];
fk[i]:=fk[j];
fk[j]:=temp;
end;
end;
for i:= 1 to tl - 1 do
for j:= i to tl do
begin
if ll[fl[i]] < ll[fl[j]] then
begin
temp:=fl[i];
fl[i]:=fl[j];
fl[j]:=temp;
end;
end;
for i:= 1 to k - 1 do
for j:= i to k do
begin
if fk[i] > fk[j] then
begin
temp:=fk[i];
fk[i]:=fk[j];
fk[j]:=temp;
end;
end;
for i:= 1 to l - 1 do
for j:= i to l do
begin
if fl[i] > fl[j] then
begin
temp:=fl[i];
fl[i]:=fl[j];
fl[j]:=temp;
end;
end;
for i:= 1 to k - 1 do write(fk[i],' ');
writeln(fk[k]);
for i:= 1 to l - 1 do write(fl[i],' ');
writeln(fl[l]);
end.这题的数据还不至于用高级的排序
-
02009-05-21 22:15:10@
行何列不要弄错,输入数据第一个是纵坐标,第二个才是横坐标
-
02009-05-02 18:40:15@
此题输出时 需要再排序
-
02009-04-24 21:48:38@
#include
typedef struct {
int start,num;
} stu;
#define min(x,y) ((x)=r) return;
int i=l,j=r;
stu p=a[l];
while(i -
02009-04-24 18:36:28@
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
排序少排了一个害我教了5次。。。我的ac率呀。。。 -
02009-04-06 12:15:58@
冒泡+找最大,水哗哗的~
考试的时候却只有10分(只过了样例……),总结后发现——
行和列貌似被我弄反了……
大家不要犯我这样可怜的错…… -
02009-04-05 19:31:33@
二分图匹配
--zlq神牛
-
02009-04-05 11:18:26@
太简单,冒泡就过了
type ab=array[0..3000] of integer;
var i,j,k,m,n,l,d,x1,y1,x2,y2,swap,n1,n2:longint;
a1,a2,b1,b2:ab;
begin
read(m,n,k,l,d);readln;
fillchar(a1,sizeof(a1),0);
fillchar(b1,sizeof(b1),0);
for i:=1 to d do
begin
read(x1,y1,x2,y2);
if y1=y2 then if x1b1[j-1] then
begin
swap:=b1[j];
b1[j]:=b1[j-1];
b1[j-1]:=swap;
swap:=b2[j];
b2[j]:=b2[j-1];
b2[j-1]:=swap;
end;
end;
n1:=k;
n2:=l;
for i:=k to m-1 do if a1[i]=a1 then inc(n1)
else break;
for i:=l to n-1 do if b1[i]=b1 then inc(n2)
else break;
for i:=1 to n1-1 do
for j:=n1 downto i+1 do
begin
if a2[j] -
02009-03-22 10:46:45@
!!!!
-
02009-03-17 15:38:30@
program vijos1498;
type
int=longint; bool=boolean;
arr1010_int=array[0..1010]of int;
arr1010_bool=array[0..1010]of bool;var
n,m,h,c,p:int;
used:arr1010_bool;
hc,cc,tmp:arr1010_int;function min(a,b:int):int;
begin if amax) then begin
max:=d[j]; p:=j;
end;
used[p]:=true; tmp[i]:=p;
end;
for i:=1 to n do
for j:=i+1 to n do
if tmp[j]