小胖的奇偶

Tsing 发表于 2006-11-13 17:27:48

先说说P1051圣诞夜的极光,使用队列的时候横纵坐标的定义域定义为:0..1
居然可以过4个,我提交了n次才发现的……变量定义啊我一直以为不会出错的。 T_T

下面是小胖的奇偶:

type pt=array[0..100000] of longint;
var
  p,d,rank,node:pt;
  x,y,t1,t2,t,n,m,i:longint;
  s:string;

procedure union(x,y:longint);
begin
  if rank[x]>rank[y] then
    p[y]:=x else begin
      p[x]:=y;
      if rank[x]=rank[y] then inc(rank[y]);
    end;
end;

function findset(x:longint):longint;
begin
  if p[x]<>x then p[x]:=findset(p[x]);
  exit(p[x]);
end;

begin
  readln(n);
  readln(m);
  node[1]:=0;
  for i:=1 to 2*m do
    d[i]:=-1;
  for i:=1 to m do begin
    read(x,y);
 
    t1:=1; dec(x);
    while (t1<=t)and(node[t1]<>x) do inc(t1);
    if t1>t then begin
      inc(t);   node[t]:=x;
      p[t]:=t;  rank[t]:=0;
    end;
 
    t2:=1;
    while (t2<=t)and(node[t2]<>y) do inc(t2);
    if t2>t then begin
      inc(t);  node[t]:=y;
      p[t]:=t; rank[t]:=0;
    end;

    readln(s);
    if s[length(s)]='n' then
     if (findset(d[t1])=findset(t2))or(findset(t1)=findset(d[t2])) then begin
       writeln(i-1);
       halt;
     end else begin
       if findset(t1)<>findset(t2) then
       union(findset(t1),findset(t2));
       if findset(d[t1])<>findset(d[t2]) then
       union(findset(d[t1]),findset(d[t2]));
     end;
 
   if s[length(s)]='d' then begin
     if d[t1]=-1 then d[t1]:=t2;
     if d[t2]=-1 then d[t2]:=t1;
     if (findset(t1)=findset(t2))or(findset(d[t1])=findset(d[t2])) then begin
       writeln(i-1);
       halt;
     end else
       if findset(d[t1])<>findset(t2) then union(findset(d[t1]),findset(t2));
     if findset(t1)<>findset(d[t2]) then union(findset(t1),findset(d[t2]));
   end;

  end;
  writeln(m);
end.


6、10个数据错了,原因暂时不明中,有空再改了 T_T
关键词(Tag): vijos


收藏: QQ书签 del.icio.us 订阅: Google 抓虾

最新评论

发表评论

* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 
 

分类小组论坛
杂谈, 娱乐、八卦, 文学、艺术, 体育, 旅游、同城, 象牙塔, 情感, 时尚、生活, 星座, 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定