imfkwk @ 2021-01-24 14:59:58
这题,大概可以用链表写。刚刚用vector和map过了两次,觉得vector的形式和链表非常相像。于是在题解里一个链表都没有的情况下,画蛇添足地写了链表,贡献了几次提交次数和几个红色的20分。
我的链表究竟哪里有问题啊!
#include <bits/stdc++.h>
using namespace std;
int num;
int head[100001];
int from[10000001];
int item[10000001];
int no[10000001];
int n, q;
int main(void) {
scanf("%d%d", &n, &q);
while (q--) {
int k, x, y, z;
scanf("%d", &k);
if (k == 1) {
scanf("%d%d%d", &x, &y, &z);
bool f = 1;
int p = head[x];
while (p) {
if (no[p] == y) {
f = 0;
item[p] == z;
break;
}
p = from[p];
}
if (f) {
++ num;
from[num] = head[x];
item[num] = z;
no[num] = y;
head[x] = num;
}
} else if (k == 2) {
scanf("%d%d", &x, &y);
int p = head[x];
while (p) {
if (no[p] == y) {
printf("%d\n", item[p]);
break;
}
p = from[p];
}
}
}
return 0;
}
思路和vector是一样的。先搜索这个柜子里存没存东西,存了就替换,没存就加一个。(看了题解发现这种行为多此一举,因为可以从后往前搜索,这样搜索到的就是最终状态)
by liuzimingc @ 2021-01-24 15:06:50
@I_love_your_mother
你有没有MLE啊……
by imfkwk @ 2021-01-24 15:10:00
@liuzimingc 没有啊
by imfkwk @ 2021-01-24 15:11:05
@liuzimingc 跟vector差不多是一个数量级的
by liuzimingc @ 2021-01-24 15:13:31
@I_love_your_mother
好吧你CE了……(好像还有WA)
还是 llss 用 vector 吧……
@liuzimingc
by liuzimingc @ 2021-01-24 15:15:01
@I_love_your_mother
天呐是爆切紫题的大佬!
这题放在深基里面就是用来说vector的,so……
by imfkwk @ 2021-01-24 15:22:16
@liuzimingc 为什么会有CE啊()提交记录
by 123456zmy @ 2021-01-24 15:23:07
难道这样写不会 TLE 吗还是数据太水了
by liuzimingc @ 2021-01-24 15:23:38
@I_love_your_mother
是PE(
\kk
by imfkwk @ 2021-01-24 15:26:58
@123456zmy 所以最快的是map吗()
by 123456zmy @ 2021-01-24 15:32:05
map是