算法1
(模拟)
这道题是要求模拟两头牛的移动情况,主要点是将所有时间点模拟在每一个坐标轴上
Java代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int B = sc.nextInt(), E = sc.nextInt(), sum1 = 0, sum2 = 0, res = 0, k;
int LU = 0;
int[] beixi = new int[1000010];
int[] b = new int[1000010];
int[] erxi = new int[1000010];
int[] a = new int[1000010];
int p1 = 1;
for(int i = 0; i < B; i++) {
k = sc.nextInt();
LU = sc.next().charAt(0);
sum1 += k;
while(k-- > 0) {
beixi[p1] = (LU == 'R' ? 1 : -1) + beixi[p1 - 1];
b[p1++] = LU;
}
}
p1= 1;
for(int i = 0; i < E; i++) {
k = sc.nextInt();
LU = sc.next().charAt(0);
sum2 += k;
while(k-- > 0) {
erxi[p1] = (LU == 'R' ? 1 : -1) + erxi[p1 - 1];
a[p1++] = LU;
}
}
for(int i = 0; i < Math.max(sum1, sum2); i++) {
if(i >= sum1 + 1) {
beixi[i] = beixi[i - 1];
}
if(i >= sum2 + 1) {
erxi[i] = erxi[i - 1];
}
if(beixi[i] == erxi[i] && b[i] != a[i]) res++;
}
System.out.println(res);
}
}