NC219608. 圆的交点
描述
输入描述
第一行输入一个正整数表示测试组数。接下来行每行两个正整数表示的范围。
输出描述
每行输出一个数表示对取模后的结果。
示例1
输入:
5 1 1 2 2 3 2 823 12394 1000000000 1000000000
输出:
12 33 46 51040962 204
说明:
C++(clang++11) 解法, 执行用时: 59ms, 内存消耗: 1400K, 提交时间: 2021-03-20 20:24:44
#include<stdio.h> #define INF 1000000007 int main() { long long int t,a,b,ans; scanf("%d",&t); while(t--) { scanf("%d%d",&a,&b); ans=2*a*(b+1)+2*b*(a+1)+(a+1)*(b+1); printf("%lld\n",ans%INF); } }
C(clang11) 解法, 执行用时: 63ms, 内存消耗: 1288K, 提交时间: 2021-03-20 20:59:08
#include<stdio.h> int main() { long long int n,a,b,t; scanf("%lld",&n); while(n--) { scanf("%lld%lld",&a,&b); t=a*b*4+(a+1)*(b+1)+a*2+b*2; printf("%lld\n",t%1000000007); } return 0; }
Python3(3.9) 解法, 执行用时: 583ms, 内存消耗: 5684K, 提交时间: 2021-03-21 10:13:43
t = int(input()) MOD = 1000000007 for _ in range(t): x, y = map(int, input().split()) print(((x+y)*2+(x+1)*(y+1)+4*x*y)%MOD)