算法题,求c/c++代码

算法题,没有思路求详细代码

这题想了很久,终于有了思路。

详细思路请看代码,我对C++不是特别擅长,所以用Python写的,而且C++中的数组使用不太方便,在本题中使用数组会使时间复杂度变得极高,可能你提交的答案会超时,如果你不想用python,应该可以用C++中的vector。

关键代码都注释了,但要注意,图中的代码不能直接提交,我没有按照题的规范输出答案,只是简单验证一下思路是否正确,需要你自己将其修改为规范的输出。另外,我只验证了你所给出的范例,范例的答案正确,也不知道是否有我没考虑到的情况,如果你按照我的思路有通不过的例子,请回复我。

因为python格式很严格,直接拷贝文字会格式错乱,所以就发图了,建议参考思路即可,不建议硬抄。

追问

我同学提供给我的思路是若i去世后j才出生,就将i指向j,如果每次检测形成环路就矛盾,c++代码量较小,可是我还是不知道怎么写

我同学提供给我的思路是若i去世后j才出生,就将i指向j,如果每次检测形成环路就矛盾,c++代码量较小,可是我还是不知道怎么写

追答

我觉得这个思路不太合理吧,因为根据数据可能不一定只生成一个图,可能有多个图,这样遍历操作就不太好写了;而且这个思路只检验了有明确先后关系的数据是否合理,这个简单,那重合关系如何表现和检验呢?我没想到用图怎么解决这个问题。

花了点时间,用C++重写了之前的代码,你可以提交一下看看是否可以通过。

超出字数限制,代码粘不上来,我放截图吧。或者你给我你的联系方式,我发给你。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-12
仅提供一个思路。
建立一个二维数组a[99][99]存这100人的关系。原始为0,在每次写入关系K的时候,如果读取的a[i][j]和a[j][i]均为0,则写入关系k。否则,将直接报“有矛盾”。
这么一看,代码就不难了吧?请加油。
相似回答