模拟法的应用

某饼同学最近沉迷于吃矩形的大饼,某天中午他买了 n 张矩形的大饼,吃饱后发
现还剩下两张,于是他将这两张矩形的大饼随便扔在了一张桌子上,这时,他突
然发现这两张矩形大饼的每条边都分别与桌子的边平行。
由于吃饱了撑的没事干,某饼同学将桌子抽象成二维平面,将大饼抽象成二维平
面上每条边与坐标轴平行的矩形,现在他想计算一下这两个矩形并的面积。
注意,如果两个矩形不相交,输出两个矩形的面积之和即可。
输入
8 个数,分别表示第一个矩形左下角坐标为(A,B),右上角坐标为(C,D);第二个
矩形左下角坐标为(E,F),右上角坐标为(G,H)。
保证 A<C,B<D,E<G,F<H。
保证所有数的绝对值不超过 200,矩形并的面积≤160000。
输出
输出一个数表示矩阵并的面积。
样例
Sample Input 1
-3 0 3 4 0 -1 9 2
Sample output 1
45

#include <iostream>
using namespace std;
int main()
{
	int a[400][400]={0};
	int d[9];
	for(int i = 1;i<=8;i++)
	{
		cin>>d[i];
		d[i] = d[i]+200;
	}
	for(int i = d[2];i<d[4];i++)
		for(int t = d[1];t<d[3];t++)
	{
		a[i][t] = 1;
		
	}
	for(int i = d[6];i<d[8];i++)
		for(int t = d[5];t<d[7];t++)
	{
		a[i][t] = 1;
	}
	int s=0;
	for(int i = 0;i<400;i++)
		for(int t = 0;t<400;t++)
	{
		s = s+a[i][t];
	}
	cout<<s;		
}//模拟法较为麻烦但有时可以解决很多其他更为复杂的问题。

发布了8 篇原创文章 · 获赞 0 · 访问量 207

猜你喜欢

转载自blog.csdn.net/weixin_45608039/article/details/104029403