题目:食物链
题意:
——3种动物A,B,C,存在以下关系:A吃B, B吃C,C吃A。
输入:N个动物,m句话,每句话表示动物x和y的关系。
判断m句话中有多少句是假的。
——假话的情况:
1) 当前的话与前面的某些真的话冲突,就是假话;
2) 当前的话中X或Y比N大,就是假话;
3) 当前的话表示X吃X,就是假话。
题解:(勿看,不完整)
- 在未知晓动物之间关系时,n个动物可能都属于物种A,也可能都属于物种B,还可能都属于物种C。因此导出初始化,规定1 ~ n为物种A,n+1 ~ 2n为物种B,2n+1~3n为物种C。其实还是n个动物,1和n+1和2n+1其实对应的还是一种动物。
- 如果该句表示x和y是同类,那如何判断该句正确与否呢,首先我们知道x,x+n,x+2*n其实都表示一个动物,它
注意:不可多组输入。
代码:
#include<stdio.h>
#include<string.h>
#include<algorithm>