列表

详情


NC220366. G分割

描述

在一个二维平面,
有n条平行于y轴的直线, 他们的x坐标是x[i],
m条平行于x轴的直线y[i],他们的y坐标是y[i].
求出这些直线所有可能形成矩形的总面积对1000000007取模的值。

保证所有直线不完全重叠。


输入描述

第一行输入两个数字n,m代表竖线的数量和横线的数量.

第二行输入n个数字,代表n条竖线的x坐标x[i].

第三行输入m个数字,代表m条横线的y坐标y[i].

输出描述

输出一个数字,表示答案。

示例1

输入:

3 2
1 2 3
1 2

输出:

4

说明:

可能形成三个矩形,面积分别为1,1,2,故总面积为4

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++(clang++11) 解法, 执行用时: 83ms, 内存消耗: 3588K, 提交时间: 2021-03-30 15:23:22

#include<bits/stdc++.h>
using namespace std;
const int mod=1e9+7;
const int N=1e6;
long long m,n,p,q,a[N],b[N],i;
int main(){cin>>n>>m;for(i=1;i<=n;i++)cin>>a[i];for(i=1;i<=m;i++)cin>>b[i];sort(a+1,a+1+n);sort(b+1,b+1+m);for(i=1;i<n;i++) p=(p+(a[i+1]-a[i])*(i)*(n-i))%mod;for(i=1;i<m;i++) q=(q+(b[i+1]-b[i])*(i)*(m-i))%mod;cout<<(p*q)%mod;}

上一题