解題思路:
先預處理一下左右陣列,使他們滿足初始時候的左右鄰居。
然後模擬移動即可。
這裡需要注意的就是移動時改變左右鄰居時,要防止覆蓋問題。就是我更改某個鄰居後,不能在以後的修改中影響這個值,所以順序需要注意。
在這裡錯了,找了半個小時。悲劇。
**如下:
#include#include#include#include#includeusing namespace std;
int l[10010], r[10010];
int main()
for(int i = 0; i < query; ++i)
else if(ope == 'b')
else
printf("%d\n", x ? r[y] : l[y]);
} }return 0;
}
NYOJ 511 移動小球
這道題很容易想到要構建乙個迴圈鍊錶來確定每個球的相對位置,就是操作比較繁瑣,考慮情況較多。首先要建立節點node,每個節點都有乙個初始順序order,指向左邊的node 指標left,何指向右邊的node 指標right。cpp view plain copy print?struct node n...
nyoj 511 移動小球(鍊錶的簡單使用)
描述 給你n個小球,從左到右編號依次為1,2,3,4,5,6.n,並規定小球1的左邊的球號為n,小球n的右邊的球號為1.現在有以下3種操作 a x y表示把編號為x小球移動到編號為y的小球的左邊,b x y表示把編號為x小球移動到編號為y的小球的右邊,q 1 m為詢問編號為m的小球右邊的球號,q 0...
ny511 移動小球
時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述給你n個小球,從左到右編號依次為1,2,3,4,5,6.n,並規定小球1的左邊的球號為n,小球n的右邊的球號為1.現在有以下3種操作 a x y表示把編號為x小球移動到編號為y的小球的左邊,b x y表示把編號為x小球移動到編號為...