Ref: ITSA 54 - [Problem 5] Momo’s Hanoi Tower
/*******************************************************/
/* [Problem 5] Momo’s Hanoi Tower */
/* Author: awei0905 [at] awei0905.blogspot.tw */
/* Version: 2017/05/17 */
/*******************************************************/
import java.util.Scanner;
import java.math.BigInteger;
public class Main{
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
int T = scanner.nextInt();
while (T-- > 0) {
int K = scanner.nextInt();
BigInteger sum = new BigInteger("0");
while(K-- > 0) {
BigInteger n = scanner.nextBigInteger();
BigInteger temp = new BigInteger("1");
temp = temp.shiftLeft(K);
temp = temp.multiply(n);
sum = sum.add(temp);
}
System.out.println(sum);
}
}
}
Debug: I/O這題說起來也怪,比賽的時候 C code 可以 AC ,但開放練習後再次提交居然變成 WA ...
先寫 Hanoi Tower 來模擬本題的要求,多試幾次後會發現其實是在算 nk*(2^k) 的問題。
特別注意答案為非常大的整數!
2
30
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
30
9 8 7 6 5 4 3 2 1 9 8 7 6 5 4 3 2 1 9 8 7 6 5 4 3 2 1 9 8 7
8608845891
2126491626
沒有留言:
張貼留言