2021-2022-1 ACM集训队每周程序设计竞赛(5) - 问题 C: 剪切 - 题解
傳送門(mén)
- 分割
 - 題目描述
 - 輸入描述
 - 輸出描述
 - 樣例一
 - 輸入
 - 輸出
 
- 樣例二
 - 輸入
 - 輸出
 
- 提示
 
- 題目分析
 - AC代碼
 
分割
- CMP
 - 跳蛙
 - 剪切
 - 數(shù)學(xué)?
 - 數(shù)學(xué)!
 - 逃離
 
時(shí)間限制:1秒
 空間限制:128M
題目描述
在一個(gè)二維坐標(biāo)平面上,有一個(gè)四邊形。
 它的四個(gè)頂點(diǎn)的坐標(biāo)分別是 (0,0),(W,0),(W,H)(0,0),(W,0),(W,H)(0,0),(W,0),(W,H)和(0,H)(0,H)(0,H)
四邊形內(nèi)部(或邊界上),有一個(gè)點(diǎn)。
 它的坐標(biāo)是(x,y)(x,y)(x,y)。
從這個(gè)點(diǎn)畫(huà)一條直線,把四邊形分成兩個(gè)部分。
 問(wèn)你面積最小的那個(gè)部分的最大面積是多少。
同時(shí),還要問(wèn)你得到這個(gè)面積的劃分方法數(shù)。
輸入描述
輸入一行444個(gè)空格隔開(kāi)的正整數(shù),具體意義見(jiàn)題目描述。
輸入格式如下:
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
 
輸出描述
輸出一行空格隔開(kāi)的兩個(gè)數(shù)
- 第一個(gè)數(shù)是劃分成的兩部分的面積最小的那部分的最大面積,7舍8入保留6位小數(shù)。
 - 第二個(gè)數(shù)代表劃分成這個(gè)面積的方案,0代表只有一種劃分方案,1代表有多種劃分方案。
 
樣例一
輸入
2 3 1 2輸出
3.000000 0樣例二
輸入
2 2 1 1輸出
2.000000 1提示
樣例一中,直線x=1x=1x=1將四邊形劃分為面積相等的兩塊兒,每一塊兒的面積都是3,且只有這一種劃分方案
題目描述能力有限,不喜勿噴
題目分析
不難發(fā)現(xiàn)這個(gè)四邊形是一個(gè)矩形。矩形內(nèi)一點(diǎn)做一條直線總有方法把矩形劃分為面積相等的兩部分。
 因此面積小的那部分的最大值就是矩形面積的一半(W?H/2W* H/2W?H/2)。
什么4舍5入7舍8入都是套路,因?yàn)槊娣e的一半要么是整數(shù),要么是“.5.5.5”,保留666位小數(shù)的話最后一位小數(shù)肯定是000,因此不需要擔(dān)心進(jìn)位問(wèn)題。
那么還有問(wèn)題就是有多少種方法可以把矩形分成面積相等的兩部分。
一條直線把矩形分成面積相等的兩部分,此線必過(guò)矩形中心。
那么問(wèn)題迎刃而解:
-  
如果給你的點(diǎn)不是矩形中心,需且只需要做一條經(jīng)過(guò)這個(gè)點(diǎn)和矩形中心點(diǎn)的連線就能把矩形劃分為面積相等的兩部分。
只有這一種做法,故第二個(gè)數(shù)輸出0。 -  
如果給你的點(diǎn)恰好是矩形中心,那么經(jīng)過(guò)這個(gè)點(diǎn)的任意一條直線都經(jīng)過(guò)矩形中心,都能把矩形劃分為面積相等的兩部分。
做法有無(wú)數(shù)種,故第二個(gè)數(shù)輸出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,因?yàn)楦↑c(diǎn)數(shù)有精度問(wèn)題return 0; }原創(chuàng)不易,轉(zhuǎn)載請(qǐng)附上原文鏈接哦~
 Tisfy:https://letmefly.blog.csdn.net/article/details/120897332
總結(jié)
以上是生活随笔為你收集整理的2021-2022-1 ACM集训队每周程序设计竞赛(5) - 问题 C: 剪切 - 题解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
                            
                        - 上一篇: HTML+JS 实现 input 框回车
 - 下一篇: 实验一:交换机和路由器的基本配置