这题想了很久,终于有了思路。
详细思路请看代码,我对C++不是特别擅长,所以用Python写的,而且C++中的数组使用不太方便,在本题中使用数组会使时间复杂度变得极高,可能你提交的答案会超时,如果你不想用python,应该可以用C++中的vector。
关键代码都注释了,但要注意,图中的代码不能直接提交,我没有按照题的规范输出答案,只是简单验证一下思路是否正确,需要你自己将其修改为规范的输出。另外,我只验证了你所给出的范例,范例的答案正确,也不知道是否有我没考虑到的情况,如果你按照我的思路有通不过的例子,请回复我。
因为python格式很严格,直接拷贝文字会格式错乱,所以就发图了,建议参考思路即可,不建议硬抄。
追问我同学提供给我的思路是若i去世后j才出生,就将i指向j,如果每次检测形成环路就矛盾,c++代码量较小,可是我还是不知道怎么写
我同学提供给我的思路是若i去世后j才出生,就将i指向j,如果每次检测形成环路就矛盾,c++代码量较小,可是我还是不知道怎么写
追答我觉得这个思路不太合理吧,因为根据数据可能不一定只生成一个图,可能有多个图,这样遍历操作就不太好写了;而且这个思路只检验了有明确先后关系的数据是否合理,这个简单,那重合关系如何表现和检验呢?我没想到用图怎么解决这个问题。
花了点时间,用C++重写了之前的代码,你可以提交一下看看是否可以通过。
超出字数限制,代码粘不上来,我放截图吧。或者你给我你的联系方式,我发给你。