Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
为什么一直WA呢……type re=record x1, y1, x2, y2: longint; st, ed: longint; end; var i, j, k, n, m, ii: longint; ans: longint; s: string; a: array[0..501] of re; tg: array[0..1001,0..1001] of longint; g: array[0..1001,0..1001] of boolean; rec: array[0..1001] of longint; b: array[0..1001] of boolean; procedure work2(s: string;i: longint); var j, k: longint; tmp, tt, ttt: longint; ss: string; begin tmp := pos(':',s); ss := copy(s,1,tmp-1); while (ss[1]='0') and (ss<>'') do delete(ss,1,1); if ss='' then tt := 0 else val(ss,tt); tt := tt*60; delete(s,1,tmp); while (s[1]='0') and (s<>'') do delete(s,1,1); if s='' then ttt := 0 else val(s,ttt); a[i].st := tt+ttt; end; procedure work(s: string;i: longint); var j, k: longint; tmp: longint; ss: string; begin tmp := pos(' ',s); ss := copy(s,1,tmp-1); work2(ss,i); delete(s,1,tmp); tmp := pos(' ',s); ss := copy(s,1,tmp-1); val(ss,a[i].x1); delete(s,1,tmp); tmp := pos(' ',s); ss := copy(s,1,tmp-1); val(ss,a[i].y1); delete(s,1,tmp); tmp := pos(' ',s); ss := copy(s,1,tmp-1); val(ss,a[i].x2); delete(s,1,tmp); val(s,a[i].y2); a[i].ed := a[i].st+abs(a[i].x1-a[i].x2)+abs(a[i].y1-a[i].y2); // writeln(a[i].st,' ',a[i].ed,' ',i); end; function yes(i,j: longint): boolean; var k: longint; begin if i=j then exit(false); if a[i].ed>=a[j].st then exit(false); if a[i].ed<a[j].st then begin k := abs(a[i].x2-a[j].x1)+abs(a[i].y2-a[j].y1); if k<=a[j].st-a[i].ed then exit(true); exit(false); end; end; procedure buildgragh; var i, j, k: longint; begin fillchar(tg,sizeof(tg),0); for i := 1 to n do for j := 1 to n do if (yes(i,j)) then begin inc(tg[i,0]); tg[i,tg[i,0]] := j; end; end; function dfs(x: longint): boolean; var i: longint; begin for i := n+1 to 2*n do if (not b[i]) and (g[x,i]) then begin b[i] := true; if (rec[i]=0) or (dfs(rec[i])) then begin rec[i] := x; exit(true); end; end; exit(false); end; procedure print; var i, j, k: longint; begin for i := 1 to n do begin write(tg[i,0],':'); for j := 1 to tg[i,0] do write(tg[i,j],' '); writeln; end; end; begin assign(input,'d:\01.in'); reset(input); assign(output,'d:\01.out'); rewrite(output); readln(m); for ii := 1 to m do begin readln(n); for i := 1 to n do begin readln(s); work(s,i); end; buildgragh; // print;//**** fillchar(g,sizeof(g),false); fillchar(rec,sizeof(rec),0); for i := 1 to n do for j := 1 to tg[i,0] do begin g[i,tg[i,j]+n] := true; g[tg[i,j]+n,i] := true; end; ans := 0; for i := 1 to n do begin fillchar(b,sizeof(b),false); if dfs(i) then inc(ans); end; writeln(n-ans); // writeln; end; close(input); close(output); end. 不知道为什么一直是WA 到底哪儿错了啊啊啊啊 帮我找找错好吗 Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator