3 条题解
-
5
#include <iostream> using namespace std; struct Node { int nxt; } node[1000005]; int q, k, oper, x ,y; int main() { cin >> q; node[1].nxt = 0; for (int i = 1; i <= q; i++) { cin >> oper; if (oper == 1) { cin>>x>>y; node[y].nxt=node[x].nxt; node[x].nxt=y; } else if(oper == 2) { cin>>x; cout<<node[x].nxt<<endl; } else { cin>>x; node[x].nxt=node[node[x].nxt].nxt; } } return 0; } //这原题
-
5
思路
这道题比较简单,根据题目要求在合适位置插入元素或者删除或者查询就可以,需要注意如果是查询到尾节点,需要输出0,所以开始时把节点1的nxt改为0,就可以完美解决了~代码
#include <iostream> using namespace std; struct Node { int nxt; } node[1000005]; int q, k, oper, x ,y; int main() { cin >> q; node[1].nxt = 0; for (int i = 1; i <= q; i++) { cin >> oper; if (oper == 1) { cin>>x>>y; node[y].nxt=node[x].nxt; node[x].nxt=y; } else if(oper == 2) { cin>>x; cout<<node[x].nxt<<endl; } else { cin>>x; node[x].nxt=node[node[x].nxt].nxt; } } return 0; }
-
2
过辣!
#include <iostream> #include <algorithm> #include <cmath> using namespace std; int q,doing,x,y; struct Node { int nxt; } node[1000005]; int main() { cin>>q; node[1].nxt=0; for (int i=1;i<=q;i++) { cin>>doing>>x;//在这里输入x可以省2行呢! =) if (doing==1) { cin>>y; node[y].nxt=node[x].nxt; node[x].nxt=y; } else if (doing==2) { cout<<node[x].nxt<<endl; } else { node[x].nxt=node[node[x].nxt].nxt; } } return 0; }
- 1
信息
- ID
- 253
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- (无)
- 递交数
- 836
- 已通过
- 427
- 上传者