C - Ants on a Circle
可以看做n只蚂蚁坐n辆车,两车交会时交换车上的蚂蚁,显然我们可以轻易求出每辆车最后的位置,而且每只蚂蚁的相对位置不变,蚂蚁1的后继是蚂蚁2,蚂蚁n的后继是蚂蚁1。
假设从0开始最左边一辆车上蚂蚁编号为1,最右边一辆车上蚂蚁编号为n,可以推出当一辆车顺时针跨过0时其他车上蚂蚁编号+1,即
{1,2,3,4,5,…,i,i+1,…,n}
{
1
,
2
,
3
,
4
,
5
,
…
,
i
,
i
+
1
,
…
,
n
}
变为
{n,1,2,3,4,…,i,i+1,…,n−1}
{
n
,
1
,
2
,
3
,
4
,
…
,
i
,
i
+
1
,
…
,
n
−
1
}
相当于把其他车往后推了一位。当一辆车逆时针跨过0时则正好相反。
Code