首页 > 其他分享 >浙江理工大学入队200题——16C

浙江理工大学入队200题——16C

时间:2022-10-30 10:35:57浏览次数:74  
标签:200 重叠 int 代码 d% 16C 入队 窗体 include

问题 C: 零基础学C/C++173——桌面窗体重叠

题目描述

一个windows桌面上的窗体用4个整数定义位置:左边坐标、右边坐标、下边坐标、上边坐标
现在,请输入2个窗体的位置信息,判断它们的位置是否重叠

输入

两行,每行一个窗体的位置信息,int 范围以内

输出

输出2个窗体的重叠面积,不重叠就输出0

样例输入

点击查看代码
10 100 20 60
60 160 50 200

样例输出

点击查看代码
400
##题解

如图所示,我们分成两步,先写简单的:如果不重合,那么我们h[2]<=h[3] || h[1]>=h[4] || l[2]<=l[3] || l[1]>=l[4],然后输出0就好了
接下来是重合的部分:因为你输入了两行代码,但是电脑是不知道哪个是左窗体的,盲目的左减右有可能导致负数的出现(当然你可以abs取绝对值)。所以我们可以思考下什么情况下能保证不出现负数,答案当然是有序的情况下啦!你可以发现,不管怎么样H1,H2,H3,H4中间的两位一定是我们重叠的部分的左右边界,同理L1,L2,L3,L4也是一样。那么我们只需要sort一下去中间之差就能完美解决了。

代码(AC)

点击查看代码
#include <iostream>
#include <algorithm>
#include<math.h>
using namespace std;
int main ()
{
	int h[5];
	int l[5]; 
	scanf("%d%d%d%d",&h[1],&h[2],&l[1],&l[2]);//ZUO YOU XIA SHANG
	scanf("%d%d%d%d",&h[3],&h[4],&l[3],&l[4]);
	if(h[2]<=h[3] || h[1]>=h[4] || l[2]<=l[3] || l[1]>=l[4]) cout<<"0"<<endl;
	else 
	{
		sort(h+1,h+5);//舍弃了H0,从H1——H4排序
		sort(l+1,l+5);//舍弃了L0,从L1——L4排序
		long long s=abs((h[3]-h[2])*(l[3]-l[2]));
		cout<<s<<endl;
	}
	return 0;
}

标签:200,重叠,int,代码,d%,16C,入队,窗体,include
From: https://www.cnblogs.com/codeshany/p/zstu_200_16C.html

相关文章

  • 浙江理工大学入队200题——16D
    问题D:零基础学C/C++174——作业统计题目描述为了了解学生的课后作业负担情况,需要统计学生连续若干天完成作业所需的总时间。现在,输入某位学生n天完成作业的时间,格式为......
  • 浙江理工大学入队200题——16B
    问题B:零基础学C/C++171——年龄排序题目描述输入n个学生的信息,包括姓名、性别、出生年月。要求按年龄从小到大依次输出这些学生的信息。数据保证没有学生同年同月出生......
  • 浙江理工大学入队200题——15E
    问题E:零基础学C/C++165——输出素数题目描述编写一个判断素数的函数,主函数中利用这个函数,打印出n与m之间的所有素数。输入多组测试数据,每组输入2个整数n和m,其中1<......
  • 浙江理工大学入队200题——15G
    问题G:零基础学C/C++167——判断是否完数题目描述编写一个判断一个数是否是完数的函数,用main()函数调用。并求n—m以内的完数有哪些?一个正整数的因子是所有可以整除它......
  • 浙江理工大学入队200题——14N
    问题N:零基础学C/C++159——最长字符串题目描述给定一系列不同长度的字符串,找出最长的一串后输出输入输入为多组测试数据。第一行为一个正整数n(n<=10),表示字符串的......
  • 浙江理工大学入队200题——14L
    问题L:零基础学C/C++157——保留尾部*题目描述多组读入,每组输入一行字符串,规定输入的字符串中只包含字母和号,除了尾部的号之外,请将字符串中其他*号全部删除。输入输......
  • 浙江理工大学入队200题——14M
    问题M:零基础学C/C++158——删除中间的*题目描述规定输入的字符串中只包含字母和号,除了字符串前导和尾部的号之外,将串中其他*号全部删除输入输入为多组测试数据。......
  • 浙江理工大学入队200题——14J
    问题J:零基础学C/C++155——句子比较大小题目描述从键盘输入几个句子(每个句子最多31个字符),对这几个句子按从小到大的顺序输出。输入有多组测试数据。每组测试数据第......
  • 浙江理工大学入队200题——14K
    问题K:零基础学C/C++156——删除前导*题目描述规定输入的字符串中只包含字母和号,请将字符串中的前导号全部删除,中间和尾部的*号不删除。输入输入为多组测试数据。输......
  • Windows Server 2008+IIS+php+MySQL环境搭建
    Win2008+IIS+php+MySQL环境搭建一、Windows环境操作系统:WindowsServer2008R2IIS版本:IIS7.5PHP版本:php5.6.9MySQL版本:MySQL5.7.40二、部署IIS1、打......