(洛谷)公开赛题目:题解:P11011 「ALFR Round 4」A 点的覆盖

Hello 大家好我是小亦 今天看来又能讲了一道比较水但不完全水的题这道题的大概:思路结构体排序,找最左上和最右下的两个点,得画图,会形成左上和右下两个小长方性,再进行延伸,两个长方性面积相乘就行了,意思就是:问你这个红色矩阵里面,找到比紫色矩阵大的个数,这个比紫色矩阵大的还必须包含紫色矩阵,上下一共是4种可能 2 * 2,左右是3 * 2 = 6,所以是4 * 6 = 24,为什么是3和2(就是3*2=6那个),6 - 4 + 1 = 3,所以2 - 1 + 1 = 2,隔左边红色矩阵的个数+1因为,所以这不很明显嘛就是一个是个组合数问题这道题看似挺难但是只要您动动你的小脑就行了但是我觉得AC率好低啊:废话不多说贴代码:(求关注大哥大姐)

#include <bits/stdc++.h>
using namespace std;
const int N = 1000000007;
int n, a1, a2, b1, b2;
long long ans;

int main() {
	cin >> n >> a1 >> a2 >> b1 >> b2;
	int t;
	t = a1;
	a1 = min(a1, b1);
	b1 = max(b1, t);
	t = a2;
	a2 = min(a2, b2);
	b2 = max(b2, t);
	int x, y;
	int a = N, b = 0, c = N, d = 0;
	for (int i = 1; i <= n; i++) {
		cin >> x >> y;
		a = min(x, a);
		b = max(x, b);
		c = min(y, c);
		d = max(y, d);
	}
	a = a - a1 + 1;
	b = b1 - b + 1;
	c = c - a2 + 1;
	d = b2 - d + 1;
	ans=1ll*a*b*c*d;
	ans %= N;
	cout << ans << endl;
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值