zoukankan      html  css  js  c++  java
  • BZOJ3563 : DZY Loves Chinese

    想法题,由于K是加密的,但是通过读入我们可以自己数出来这一行有几个数,

    所以可以直接反解出之前回答为连通的个数

    至于最后一个询问就用并查集暴力回答

    var
      n,i,m,s,k,j,q : longint;
      u,v,cnt,f : array[0..500000] of longint;
      c : array[1..15] of longint;
      del : array[1..500000] of boolean;
    function fa(x : longint) : longint;
    begin
      if f[x] = x then exit(x);
      f[x] := fa(f[x]);
      exit(f[x]);
    end;
    begin
      readln(n,m);
      for i := 1 to m do readln(u[i],v[i]);
      readln(q);
      for i := 1 to q do
      begin
        read(s);
        k := 0;
        while not eoln do
        begin
          inc(k);
          read(c[k]);
        end;
        cnt[i-1] := k xor s;
        readln;
      end;
      for i := 1 to q-1 do
        if cnt[i] = cnt[i-1] then
          writeln('Disconnected')
        else
          writeln('Connected');
      for i := 1 to k do del[c[i] xor cnt[q-1]] := true;
      for i := 1 to n do f[i] := i;
      for i := 1 to m do
        if not del[i] then
          if fa(u[i]) <> fa(v[i]) then
          begin
            f[f[u[i]]] := f[v[i]];
            dec(n);
          end;
      if n > 1 then
        writeln('Disconnected')
      else
        writeln('Connected');
    end.
    

      

  • 相关阅读:
    TCP和UDP知识总结
    使用 DataX 增量同步数据(转)
    python对象类型
    Asp.net mvc使用SignaIR
    数据库分库分表思路 [转]
    Linux基本操作 [转]
    RabbitMQ入门教程 [转]
    设计模式
    设计模式六大原则
    Javascript实现数组去重 [转]
  • 原文地址:https://www.cnblogs.com/clrs97/p/4403246.html
Copyright © 2011-2022 走看看