【题目描述】
一个渡河问题,船每次最多可以载n辆车,单程渡河的时间是t,有m辆车要渡河,问最少时间把所有车运过河去的时间是多少,这个情况下,最少的运输次数是多少。
【解题思路】
见代码
#define max 1000000
int a[max];
char b[max][10];
int main()
{
long int ncase, l, m, sum1, sum2, ti1, ti2, ti, i;
scanf("%d", &ncase);
while (ncase--) {
ti = 0;
ti1 = 1;
ti2 = 1;
sum1 = 0;
sum2 = 0;
scanf("%ld%ld", &l, &m);
l = l * 100;
for (i = 0; i < m; i++) scanf("%ld %s",a+i,b[i]);
for (i = 0; i < m; i++) {
if (b[i][0] == 'l') {
sum1 += a[i];
if (sum1 > l) {
ti1++;
i--;
sum1 = 0;
}
} else {
sum2 += a[i];
if (sum2 > l) {
ti2++;
i--;
sum2 = 0;
}
}
}
if (ti1 > ti2) ti = (ti1 - 1) * 2 + 1;
else ti = ti2 * 2;
printf("%ld\n", ti);
}
return 0;
}