| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 601 人关注过本帖
标题:这题目怎么做?
取消只看楼主 加入收藏
z376355859
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-6-17
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
这题目怎么做?

题目描述

动物王国中有三类动物A, B, C,这三类动物的食物链构成了有趣的环形。A吃B,B吃C,C吃A。现有N个动物,以1 - N编号。每个动物都是A, B, C中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这N个动物所构成的食物链关系进行描述:


第一种说法是"1 X Y",表示X和Y是同类。
第二种说法是"2 X Y",表示X吃Y。
此人对N个动物,用上述两种说法,一句接一句地说出K句话,这K句话有的是真的,有的是假的。当一句话满足下列三条之一时,这句话就是假话,否则就是真话。

当前的话与前面的某些真的话冲突,就是假话。
当前的话中X或Y比N大,就是假话。
当前的话表示X吃X,就是假话。
你的任务是根据给定的N(1 ≤ N ≤ 50000)和K句话(0 ≤ K ≤ 100000),输出假话的总数。

输入描述

第一行是两个整数N和K,以一个空格分隔。以下K行每行是三个正整数D,X,Y,两数之间用一个空格隔开,其中D表示说法的种类。

若D = 1,则表示X和Y是同类。
若D = 2,则表示X吃Y。
输出描述

只有一个整数,表示假话的数目。
样例输入

100 7
1 101 1
2 1 2
2 2 3
2 3 3
1 1 3
2 3 1
1 5 5
样例输出

3



怎么表示X吃Y  谁能提供下思路  谢谢   能有完整的程序就更好了
搜索更多相关主题的帖子: 动物王国 食物链 
2010-07-11 22:11
z376355859
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-6-17
收藏
得分:0 
假如输入的是
1 1 2
1 3 4
怎么知道谁是1类 谁是2类?
2010-07-11 22:45
快速回复:这题目怎么做?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022040 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved