日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/20 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2021-2022-1 ACM集训队每周程序设计竞赛(5) - 问题 C: 剪切 - 题解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

傳送門

    • 分割
      • 題目描述
      • 輸入描述
      • 輸出描述
      • 樣例一
        • 輸入
        • 輸出
      • 樣例二
        • 輸入
        • 輸出
      • 提示
  • 題目分析
  • 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^91W,H109
  • 0≤x≤W0\leq x\leq W0xW
  • 0≤y≤H0\leq y\leq H0yH

輸出描述

輸出一行空格隔開的兩個數

  • 第一個數是劃分成的兩部分的面積最小的那部分的最大面積,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: 剪切 - 题解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。