1032 Sharing
本题只需要输出地址,如果给出的所有节点都属于这两个单词,那只需把所有next值保存,如果两个单词有共同后缀,出现过两次的next值就是所求地址。如果-1出现两次,说明两个单词无共同后缀。基于这个思路,写了以下投机取巧代码,测试用例通过,但线上测试的测试点只过了前两个。取巧失败,看来姥姥是防了一手的。应该是在节点中间加入了不属于这两个单词并且指向-1或是所求地址的点。
#include <iostream> using namespace std; int nxt[100002] = { 0 }; int main() { int a1, a2, n; cin >> a1 >> a2 >> n; for (int i = 0; i != n; i++) { int adr,next; char l; cin >> adr >> l>> next; if (next != -1) { nxt[next]++; } else nxt[100001]++; } if (nxt[100001] == 2) { cout << -1; } else { for (int i = 0; i != 100001; i++) { if (nxt[i] == 2) { cout << i; break; } } } return 0; }
浙公网安备 33010602011771号