Kickstart Round A 2017 Problem A. Square Counting

来源:互联网 发布:制作班徽用什么软件 编辑:程序博客网 时间:2024/04/29 12:41
public static int k = 1000000007;public static long help(long h, long l) {long min = Math.min(h, l);//long re = 0;//for (int i = 1; i <= min; i++) {//long num = (h + 1 - i) * (l + 1 - i);//re += num * i;//re %= k;//}////re = (h + 1) * (l + 1) * (min + 1) * min / 2 - (h + l + 2) * min * (min + 1) * (2 * min + 1) / 6//+ (min + 1) * min / 2 * (min + 1) * min / 2;BigInteger bh = BigInteger.valueOf(h + 1);BigInteger bl = BigInteger.valueOf(l + 1);BigInteger bmin = BigInteger.valueOf(min);BigInteger bmin1 = BigInteger.valueOf(min + 1);BigInteger b2min1 = BigInteger.valueOf(2 * min + 1);BigInteger b2 = BigInteger.valueOf(2);BigInteger b6 = BigInteger.valueOf(6);BigInteger bre = bh.multiply(bl).multiply(bmin1).multiply(bmin).divide(b2).add(bh.add(bl).multiply(bmin).multiply(bmin1).multiply(b2min1).divide(b6).negate()).add(bmin1.multiply(bmin).divide(b2).multiply(bmin1).multiply(bmin).divide(b2));bre = bre.mod(BigInteger.valueOf(k));return bre.longValue();}public static void main(String[] args) {Scanner in = new Scanner(System.in);int T = in.nextInt();for (int t = 0; t < T; t++) {int r = in.nextInt();int c = in.nextInt();long re = help(r - 1, c - 1);System.out.println("Case #" + (t + 1) + ": " + re);}}

阅读全文
0 0