题解
2024-06-30 17:23:22
发布于:广东
5阅读
0回复
0点赞
简单小链表
幸好数据水,不然应该过不了
//0+0=-1
//0+1=1
//朝向:!xor(turn, tmp)
#include <iostream>
#include <cstdio>
using namespace std;
struct node{
node *pre = nullptr, *next = nullptr;
string name;
bool turn;
};
int main(){
node *head = new node;
node *r = head;
int n, t;
cin >> n >> t;
for(int i = 1; i <= n; i++){
node *p = new node;
p -> pre = r, r -> next = p;
r = p;
cin >> p -> turn >> p -> name;
}
r -> next = head -> next, head -> next -> pre = r;
node *p = head -> next;
bool tmp;
int m;
while(t--){
cin >> tmp >> m;
if(tmp == p -> turn){
for(int i = 1; i <= m; i++){
p = p -> pre;
}
}else{
for(int i = 1; i <= m; i++){
p = p -> next;
}
}
}
cout << p -> name;
return 0;
}
```cpp
```cpp
```cpp
```cpp
```cpp
```cpp
```cpp
```cpp
```cpp
```cpp
```cpp
```cpp
```cpp
```cpp
没想到吧这才是真正的题解
#include <iostream>
#include <cstdio>
using namespace std;
struct node{
string name;
bool turn;
}a[100005];
int main(){
int n, t;
cin >> n >> t;
for(int i = 1; i <= n; i++){
cin >> a[i].turn >> a[i].name;
}
int tmp, m, cur = 1;
while(t--){
cin >> tmp >> m;
tmp = (a[cur].turn ^ tmp) ^ 0;
if(tmp == 0) tmp--;
cur += tmp * m;
if(cur < 1) cur += n;
if(cur > n) cur -= n;
}
cout << a[cur].name;
return 0;
}
这里空空如也
有帮助,赞一个