杭电-------2042不容易系列之二(C语言写)
/* 根据题意,知道了最终只剩下了3只羊,应该是从最后一步向前推算,但是因为题意的测试布置一个 可以从只有一个收费站算起,知道本次需要就算的收费站,这样之后有小于此数目的可以直接输出, 大于此数目的也只需算到前面记录的最多处 */ #include<stdio.h> int a[31] = { 0 }; int main() { int m, n; scanf("%d", &m); int i, j; a[0] = 3; int flag = 1; for (i = 0; i < m; i++) { scanf("%d", &n); if (a[n] == 0) { for (j = flag; j <= n; j++) { a[j] = (a[j - 1] - 1) * 2; } printf("%d\n", a[n]); flag = n + 1; } else { printf("%d\n", a[n]); } } return 0; }