传送门

    • 分割
      • 题目描述
      • 输入描述
      • 输出描述
      • 样例一
        • 输入
        • 输出
      • 样例二
        • 输入
        • 输出
      • 提示
  • 题目分析
  • AC代码

分割

  • CMP
  • 跳蛙
  • 剪切
  • 数学?
  • 数学!
  • 逃离

时间限制:1秒
空间限制:128M


题目描述

在一个二维坐标平面上,有一个四边形。
它的四个顶点的坐标分别是 (0,0),(W,0),(W,H)(0,0),(W,0),(W,H)(0,0),(W,0),(W,H)和(0,H)(0,H)(0,H)

四边形内部(或边界上),有一个点。
它的坐标是(x,y)(x,y)(x,y)。

从这个点画一条直线,把四边形分成两个部分。
问你面积最小的那个部分的最大面积是多少。

同时,还要问你得到这个面积的划分方法数。


输入描述

输入一行444个空格隔开的正整数,具体意义见题目描述。

输入格式如下:

W H x y

其中:

  • 1≤W,H≤1091\leq W,H\leq10^91≤W,H≤109
  • 0≤x≤W0\leq x\leq W0≤x≤W
  • 0≤y≤H0\leq y\leq H0≤y≤H

输出描述

输出一行空格隔开的两个数

  • 第一个数是划分成的两部分的面积最小的那部分的最大面积,7舍8入保留6位小数。
  • 第二个数代表划分成这个面积的方案,0代表只有一种划分方案,1代表有多种划分方案。

样例一

输入

2 3 1 2

输出

3.000000 0

样例二

输入

2 2 1 1

输出

2.000000 1

提示

样例一中,直线x=1x=1x=1将四边形划分为面积相等的两块儿,每一块儿的面积都是3,且只有这一种划分方案

题目描述能力有限,不喜勿喷


题目分析

不难发现这个四边形是一个矩形。矩形内一点做一条直线总有方法把矩形划分为面积相等的两部分
因此面积小的那部分的最大值就是矩形面积的一半(W∗H/2W* H/2W∗H/2)。

什么4舍5入7舍8入都是套路,因为面积的一半要么是整数,要么是“.5.5.5”,保留666位小数的话最后一位小数肯定是000,因此不需要担心进位问题。

那么还有问题就是有多少种方法可以把矩形分成面积相等的两部分。

一条直线把矩形分成面积相等的两部分,此线必过矩形中心

那么问题迎刃而解:

  • 如果给你的点不是矩形中心,需且只需要做一条经过这个点和矩形中心点的连线就能把矩形划分为面积相等的两部分。
    只有这一种做法,故第二个数输出0。

  • 如果给你的点恰好是矩形中心,那么经过这个点的任意一条直线都经过矩形中心,都能把矩形划分为面积相等的两部分。
    做法有无数种,故第二个数输出1。


AC代码

#include <iostream>
using namespace std;int main() {double a, b, c, d;cin >> a >> b >> c >> d;printf("%.6lf ", a * b / 2);puts(abs(a - c * 2) < 1e-7 && abs (b - d * 2) < 1e-7 ? "1" : "0"); // 其中abs(x)<1e-7可以理解为|x|=0,因为浮点数有精度问题return 0;
}

原创不易,转载请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/120897332

2021-2022-1 ACM集训队每周程序设计竞赛(5) - 问题 C: 剪切 - 题解相关推荐

  1. 2021-2022-1 ACM集训队每周程序设计竞赛(5) - 问题 B: 跳蛙 - 题解

    传送门 分割 题目描述 输入描述 数据范围: 输出描述 样例一 输入 输出 样例二 输入 输出 提示 题目分析 AC代码 分割 CMP 跳蛙 剪切 数学? 数学! 逃离 时间限制:1秒 空间限制:12 ...

  2. BUCT - 2021-2022-1 ACM集训队每周程序设计竞赛(10)题解

    Bob和Alice(1) 思路: 模拟即可模拟即可模拟即可 时间复杂度:O1O1O1 #include <bits/stdc++.h> #define fer(i,a,b) for(int ...

  3. 北京化工大学2022-2023-1 ACM集训队每周程序设计竞赛(8)题解

    文章目录 问题 A: 鬼抓人 问题 B: 坠落之前 问题 C: 数据结构:树的子结点计数 问题 D: 糖果合并 问题 E: 幼儿园排座 问题 F: 简单路径计数 (((糖豆人小专题( •̀ ω •́ ...

  4. 2021-2022-2 ACM集训队每周程序设计竞赛(1) - 问题 D: 点外卖 - 题解

    题意: 有 nnn 道菜,mmm 张券,券的作用是将任意一道菜的价格变为原来的一半(下取整),且允许叠加使用,问最少花费多少钱. 思路: 每一张券最优的使用方法一定是对当前价格最高的菜使用,那么这道题 ...

  5. 北京化工大学 2022-2023-1 ACM集训队每周程序设计竞赛(7)题解

    问题 A: 幸运数字 思路:直接把N当成字符串读入,循环判断是否有一位是7就可以了. #include <bits/stdc++.h>//#include<iostream>/ ...

  6. 2021-2022-2 ACM集训队每周程序设计竞赛(1) - 问题 E: 祖玛的复仇 - 题解

    题意: 在长度为 n n n 的原字符串 S S S 找到中出现两次或两次以上的.相互之间没有重叠的连续子字符串的最大长度. 思路: 这道题的解法其实挺多的,大家可以之后多想下,我这里就只写一个最容易 ...

  7. 2021-2022-2 ACM集训队每周程序设计竞赛(1) - 问题 A: 排火车 - 题解

    题意: S u n n y Sunny Sunny之后接 C l o u d y Cloudy Cloudy, C l o u d y Cloudy Cloudy之后接 R a i n y Rainy ...

  8. 2021-2022-2 ACM集训队每周程序设计竞赛(10) - 问题 A: 还原撕碎的字条,哄笑生气的毛毛 - 题解

    传送门 还原撕碎的字条,哄笑生气的毛毛 题目描述 输入描述 输出描述 样例一 输入 输出 样例二 输入 输出 样例三 输入 输出 题目分析 AC代码 还原撕碎的字条,哄笑生气的毛毛 还原撕碎的字条,哄 ...

  9. 北京化工大学2022-2023-1 ACM集训队每周程序设计竞赛(11)题解

    文章目录 问题 A: 起名废柴 问题 B: 可视消息 问题 C: 虫洞旅行 问题 D: 整数化简分析 问题 E: 向量选取 问题 F: 勤劳的扫地机器人 问题 A: 起名废柴 根据题意,判断字符串 T ...

最新文章

  1. win7下搭建cocos2d-x androi开发环境不用cygwin的方法
  2. java实现接收字符串对象并在后台代码中转成list对象
  3. 第三次学JAVA再学不好就吃翔(part28)--猜数字小游戏
  4. 基于IdentityServer4 实现.NET Core的认证授权
  5. 海天食品的java开发工作如何_再三个月就秋招了,我想找一份java开发工作,现在应该怎么准备一下?...
  6. jboss相关的术语
  7. iframe自适应高度调整
  8. 公司危机、下岗困局、不受重视,程序员该如何面对职场挫折?
  9. HTML input控件
  10. 嵌入式Linux使用TFT屏幕:使用TinyDRM点亮ST7789V屏幕
  11. 计算机无法识别打印机usb,Windows7打印机usb无法识别如何解决
  12. java mysql sqlhelper_Java访问MySQL数据库的SqlHelper类以及测试程序
  13. MySQL常见运算符详解
  14. 使用flink迁移数据
  15. 公众号和视频号互相绑定带来的功能
  16. 人工智能时代的自我修炼之-有效沟通
  17. 纯JS+HTML简单表格增删改查
  18. 图片路径不存在,替换问题图片
  19. 关于python全局性解释锁(GIL)
  20. app恶意广告_广告时代的恶意设计

热门文章

  1. 小白如何搞定远程开机?黑科技智能插座真的不了解一下吗
  2. 使用CloudCompare渲染好看的油麦菜点云的小方法
  3. 上半年收入超耐克中国、大于两个李宁,安踏领跑背后的韧性
  4. centos7 qemu -- 03 使用KVM虚拟机遇到的问题
  5. 【146期】面试官问:说一说 RabbitMQ 的几种工作模式和优化建议?
  6. loadrunner入门篇 - Vuser发生器
  7. Android【Retrofit(HTTP客户端),RxJAVA(响应式编程)】
  8. 【eclipse】版本代号
  9. 6.2 漫反射-半兰伯特
  10. 黑苹果0005——我的config文件(笔记本 intel HD630)