编程题:动态规划
米尔科创造了一个新的机器人,并决定在一个巨大的测试跑道上进行测试。我们可以把测试跑道想象成二维坐标系。机器人从一个点$$(0,0$$)开始,接收一组由字母$$S、J、I、Z$$表示的指令,每个指令都标记了机器人应该移动的方向。
更准确地说,如果一个机器人位于$$(x,y)$$,$$S$$(“北”)意味着它应该移动到($$x,y+1)$$,$$J$$(“南”)意味着它应该移动到$$(x,y-1)$$,$$I$$(“东”)意味着它应该移动到$$(x+1,y)$$,$$Z$$(“西”意味着它应该移动到$$(x-1,y)$$。
当机器人接收指令并在测试跑道上移动时,米尔科正在以以下方式验证其位置。测试跑道包含$$N$$个固定控制点。每个指令发出后,每个控制点测量到机器人的曼哈顿距离。然后,所有控制点之间的距离相加并发送给$$Mirko$$。
假设机器人按照指令无误移动,计算每个指令后到所有控制点的距离之和。
注:点$$(x1,y1)$$和$$(x2,y2)$$的曼哈顿距离等于$$| x1-x2 |+|y1-y2 |$$。
### 输入格式:
输入的第一行包含正整数$$N$$(控制点的数量,$$1≤N≤100000$$)和$$M$$(指令数,$$1≤M≤300000$$),由一个单独的空间隔开。
以下N行中的每一行都包含一个控制点的坐标:两个空格分隔的整数$$x,y,$$绝对值小于$$1 000 000$$。两个控制点有可能具有相同的坐标——到每个控制点的距离加在一起。
下一行包含来自集合{$$S,J,I,Z$$}的$$M$$个字符的字符串,该集合是发送给机器人的指令序列。
### 输出格式:
输出$$M$$行:输出的第$$i$$行应包含第$$i$$条指令后的描述数字。
### 输入样例1:
in
1 3
0 -10
ISI
### 输出样例1:
out
11
12
13
### 输入样例2:
in
3 5
0 0
1 1
1 -1
SIJJZ
### 输出样例2:
out
5
4
3
4
5
答案:若无答案欢迎评论
更准确地说,如果一个机器人位于$$(x,y)$$,$$S$$(“北”)意味着它应该移动到($$x,y+1)$$,$$J$$(“南”)意味着它应该移动到$$(x,y-1)$$,$$I$$(“东”)意味着它应该移动到$$(x+1,y)$$,$$Z$$(“西”意味着它应该移动到$$(x-1,y)$$。
当机器人接收指令并在测试跑道上移动时,米尔科正在以以下方式验证其位置。测试跑道包含$$N$$个固定控制点。每个指令发出后,每个控制点测量到机器人的曼哈顿距离。然后,所有控制点之间的距离相加并发送给$$Mirko$$。
假设机器人按照指令无误移动,计算每个指令后到所有控制点的距离之和。
注:点$$(x1,y1)$$和$$(x2,y2)$$的曼哈顿距离等于$$| x1-x2 |+|y1-y2 |$$。
### 输入格式:
输入的第一行包含正整数$$N$$(控制点的数量,$$1≤N≤100000$$)和$$M$$(指令数,$$1≤M≤300000$$),由一个单独的空间隔开。
以下N行中的每一行都包含一个控制点的坐标:两个空格分隔的整数$$x,y,$$绝对值小于$$1 000 000$$。两个控制点有可能具有相同的坐标——到每个控制点的距离加在一起。
下一行包含来自集合{$$S,J,I,Z$$}的$$M$$个字符的字符串,该集合是发送给机器人的指令序列。
### 输出格式:
输出$$M$$行:输出的第$$i$$行应包含第$$i$$条指令后的描述数字。
### 输入样例1:
in
1 3
0 -10
ISI
### 输出样例1:
out
11
12
13
### 输入样例2:
in
3 5
0 0
1 1
1 -1
SIJJZ
### 输出样例2:
out
5
4
3
4
5
答案:若无答案欢迎评论