#P3180. The Cow Prom
The Cow Prom
描述
有()头奶牛兴奋不已:今晚是舞会之夜!它们身着最华美的礼服,佩戴着胸花,脚踩新鞋。它们知道今晚要一起表演圆圈舞。
只有奶牛能表演圆圈舞,这需要一些绳子和一个圆形的储水槽。表演开始时,奶牛们围绕储水槽排成一圈,按顺时针顺序依次编号为到。每头奶牛都面朝储水槽,这样就能看到其他舞者。
随后,它们一共获得了()根绳子,所有绳子都分发给奶牛,由它们用蹄子握住。每头奶牛希望左右蹄各握住至少一根绳子;有些奶牛可能会失望。
对于任意一头奶牛(比如贝茜)来说,若它的圆圈舞表演成功,那么它握住的绳子另一端连接的奶牛(如果有的话),以及这些奶牛握住的绳子另一端的奶牛,依此类推,必须构成特定的结构。当贝茜顺时针绕储水槽舞动时,必须能立即带动群体中的所有奶牛顺时针舞动;同理,若她逆时针舞动,也必须能立即带动整个群体逆时针舞动。
当然,如果绳子分布不当,一组奶牛可能无法形成合适的舞蹈群体,从而无法成功表演圆圈舞。一种常见的情况是,当只有一根绳子连接两头奶牛时。此时,一头奶牛可以朝一个方向拉动另一头,但无法反向拉动(因为众所周知,绳子无法推动)。请注意,奶牛必须同步舞动:若某头奶牛(可能只有一根绳子)最终被拉动,但无法立即与其他奶牛同步,则该群体不能成功完成圆圈舞。
给定绳子及其分配情况,有多少组奶牛可以成功表演圆圈舞?注意,一组绳子和奶牛可能绕储水槽多圈。
输入
第1行:两个空格分隔的整数和。
第2到行:每行包含两个空格分隔的整数和,描述一根从奶牛到奶牛的顺时针方向的绳子。
输出
一行,一个整数,表示成功表演圆圈舞的群体数量。
输入数据 1
5 4
2 4
3 5
1 2
4 1
输出数据 1
1
提示
样例解释:
用ASCII艺术表现圆圈舞颇具挑战。不过,以下是奶牛围绕储水槽的示意图:
_1___
/**** \
5 /****** 2
/ /**TANK**|
\ \********/
\ \******/ 3
\ 4____/ /
\_______/
奶牛1、2和4通过绳子正确连接,形成一个完整的圆圈舞群体。奶牛3和5没有所需的第二根绳子来实现双向拉动,因此无法正确表演圆圈舞。
来源
USACO 2006年1月银牌组