CF1425C.Captain of Knights

NOI/NOI+/CTSC

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Mr. Chanek just won the national chess tournament and got a huge chessboard of size N×MN \times M. Bored with playing conventional chess, Mr. Chanek now defines a function F(X,Y)F(X, Y), which denotes the minimum number of moves to move a knight from square (1,1)(1, 1) to square (X,Y)(X, Y). It turns out finding F(X,Y)F(X, Y) is too simple, so Mr. Chanek defines:

G(X,Y)=∑i=XN∑j=YMF(i,j)G(X, Y) = \sum_{i=X}^{N} \sum_{j=Y}^{M} F(i, j)

Given X and Y, you are tasked to find G(X,Y)G(X, Y).

A knight can move from square (a,b)(a, b) to square (a′,b′)(a', b') if and only if ∣a−a′∣>0|a - a'| \gt 0, ∣b−b′∣>0|b - b'| \gt 0, and ∣a−a′∣+∣b−b′∣=3|a - a'| + |b - b'| = 3. Of course, the knight cannot leave the chessboard.

陈先生刚刚赢得了全国国际象棋锦标赛,并获得了一个大小为 N×MN \times M 的巨型棋盘。厌倦了传统国际象棋的玩法,陈先生定义了一个函数 F(X,Y)F(X, Y),表示马从格子 (1,1)(1, 1) 移动到格子 (X,Y)(X, Y) 所需的最少步数。结果发现计算 F(X,Y)F(X, Y) 过于简单,因此陈先生进一步定义:

G(X,Y)=∑i=XN∑j=YMF(i,j)G(X, Y) = \sum_{i=X}^{N} \sum_{j=Y}^{M} F(i, j)

给定 XX 和 YY,你需要计算 G(X,Y)G(X, Y)。

马可以从格子 (a,b)(a, b) 移动到格子 (a′,b′)(a', b') 当且仅当 ∣a−a′∣>0|a - a'| \gt 0,∣b−b′∣>0|b - b'| \gt 0,且 ∣a−a′∣+∣b−b′∣=3|a - a'| + |b - b'| = 3。当然,马不能移出棋盘边界。

输入格式

The first line contains an integer TT (1≤T≤100)(1 \le T \le 100), the number of test cases.

Each test case contains a line with four integers XX YY NN MM (3≤X≤N≤109,3≤Y≤M≤109)(3 \leq X \leq N \leq 10^9, 3 \leq Y \leq M \leq 10^9).

第一行包含一个整数 TT (1≤T≤100)(1 \le T \le 100),表示测试用例的数量。

每个测试用例包含一行,包含四个整数 XX YY NN MM (3≤X≤N≤109,3≤Y≤M≤109)(3 \leq X \leq N \leq 10^9, 3 \leq Y \leq M \leq 10^9)。

输出格式

For each test case, print a line with the value of G(X,Y)G(X, Y) modulo 109+710^9 + 7.

对于每个测试用例,输出一行,表示 G(X,Y)G(X, Y) 对 109+710^9 + 7 取模的值。

输入输出样例

  • 输入#1

    2
    3 4 5 6
    5 5 8 8

    输出#1

    27
    70

输入解题思路,AI测评打分。不知道怎么写?

首页