• BZOJ1603: [Usaco2008 Oct]打谷机


    1603: [Usaco2008 Oct]打谷机

    Time Limit: 5 Sec  Memory Limit: 64 MB
    Submit: 602  Solved: 458
    [Submit][Status]

    Description

    Farmer John有一个过时的打谷机(收割小麦),它需要带子来带动。发动机驱动轮1总是顺时针旋转的,用来带动转轮2,转轮2来带动转轮3,等等。一共有n(2<=n<=1000)个转轮(n-1条带子)。上面的图解描述了转轮的两种连接方式,第一种方式使得两个轮子旋转的方向相同,第二种则相反。 给出一串带子的信息: *Si—驱动轮 *Di—被动轮 *Ci—连接的类型(0=直接连接,1=交叉连接) 不幸的是,列出的信息是随即的。 作为样例,考虑上面的图解,n=4,转轮1是驱动轮,可以得知最后转轮4是逆时针旋转的。

    Input

    *第一行:一个数n *第二行到第n行:每一行有三个被空格隔开的数:Si,Di,Ci

    Output

    *第一行:一个单独的数,表示第n个转轮的方向,0表示顺时针,1表示逆时针。

    Sample Input

    4
    2 3 0
    3 4 1
    1 2 0

    Sample Output

    1

    HINT

     

    Source

    题解:
    太水了。。。一遍dfs
    代码:
     1 const maxn=1500;
     2 var f:array[0..maxn,0..maxn] of longint;
     3     g:array[0..maxn] of longint;
     4     v:array[0..maxn] of boolean;
     5     i,n,x,y,z:longint;
     6 procedure dfs(x:longint);
     7  var i:longint;
     8  begin
     9    v[x]:=true;
    10    for i:=1 to n do
    11     if (f[x,i]<>0) and (not(v[i])) then
    12      begin
    13        if f[x,i]=1 then g[i]:=g[x] else g[i]:=g[x] xor 1;
    14        dfs(i);
    15      end;
    16  end;
    17 begin
    18  assign(input,'input.txt');assign(output,'output.txt');
    19  reset(input);rewrite(output);
    20  readln(n);
    21  for i:=1 to n-1 do
    22   begin
    23    readln(x,y,z);inc(z);
    24    f[x,y]:=z;
    25    f[y,x]:=z;
    26   end;
    27  g[1]:=0;
    28  dfs(1);
    29  writeln(g[n]);
    30  close(input);close(output);
    31 end.     
    View Code
     
  • 相关阅读:
    HDU 4339 Query
    Another app is currently holding the yum lock解决方法
    m0n0wall安装教程
    网盘
    kali 网络配置
    monowall
    Windows server 2012安装vmtools遇到的问题
    利用WPF建立自适应窗口大小布局的WinForm窗口
    wpf倒影效果
    SQL 进制间如何转换
  • 原文地址:https://www.cnblogs.com/zyfzyf/p/3906090.html
Copyright © 2020-2023  润新知