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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

蓝桥杯第七届决赛JAVA真题----广场舞

發布時間:2025/3/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 蓝桥杯第七届决赛JAVA真题----广场舞 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
廣場舞

LQ市的市民廣場是一個多邊形,廣場上鋪滿了大理石的地板磚。
地板磚鋪得方方正正,就像坐標軸紙一樣。
以某四塊磚相接的點為原點,地板磚的兩條邊為兩個正方向,一塊磚的邊長為橫縱坐標的單位長度,則所有橫縱坐標都為整數的點都是四塊磚的交點(如果在廣場內)。
廣場的磚單調無趣,卻給跳廣場舞的市民們提供了絕佳的參照物。每天傍晚,都會有大批市民前來跳舞。
舞者每次都會選一塊完整的磚來跳舞,兩個人不會選擇同一塊磚,如果一塊磚在廣場邊上導致缺角或者邊不完整,則沒人會選這塊磚。
(廣場形狀的例子參考【圖1.png】)

現在,告訴你廣場的形狀,請幫LQ市的市長計算一下,同一時刻最多有多少市民可以在廣場跳舞。

【輸入格式】
輸入的第一行包含一個整數n,表示廣場是n邊形的(因此有n個頂點)。
接下來n行,每行兩個整數,依次表示n邊形每個頂點的坐標(也就是說廣場邊緣拐彎的地方都在磚的頂角上。數據保證廣場是一個簡單多邊形。
【輸出格式】
輸出一個整數,表示最多有多少市民可以在廣場跳舞。

【樣例輸入】
5
3 3
6 4
4 1
1 -1

0 4

【樣例輸出】
7

【樣例說明】

廣場如圖1.png所示,一共有7塊完整的地板磚,因此最多能有7位市民一起跳舞。

【數據規模與約定】
對于30%的數據,n不超過100,橫縱坐標的絕對值均不超過100。
對于50%的數據,n不超過1000,橫縱坐標的絕對值均不超過1000。
對于100%的數據,n不超過1000,橫縱坐標的絕對值均不超過100000000(一億)。

資源約定:
峰值內存消耗 < 256M
CPU消耗? < 1000ms
請嚴格按要求輸出,不要畫蛇添足地打印類似:“請您輸入...” 的多余內容。
所有代碼放在同一個源文件中,調試通過后,拷貝提交該源碼。
注意:不要使用package語句。不要使用jdk1.7及以上版本的特性。

注意:主類的名字必須是:Main,否則按無效代碼處理。

思路:有ACM經驗的大牛一定一眼就能看出來這是個凸包問題,當然人家都不會看這種水平的題......好了,言歸正傳,想深入了解凸包問題的可以參考下面兩篇文章。

蠻力法在求解凸包問題中的應用(JAVA)

分治法在求解凸包問題中的應用(JAVA)--快包算法

單就這個題目,還達不到傳統凸包問題的難度,所以不了解也可以做。我們只需要判斷在所圍面積中的點,它的右側、下側、右下側三個點是否也在范圍內就可以了。如果都在范圍內那么這個磚就是完整的,反之,不是完整的。

以下圖為例,我們可能不能漫無邊際的處理任意個點,所以我們可以先找出所有坐標中的x的上下限,y的上下限,即圖中紅色虛線所圍區域。之后對區域中的每個點進行判斷。而如何判斷一個點是不是在所圍區域之內呢?這里需要用到兩點式直線方程的概念,我們構成邊界的點(x1,y1)(x2,y2),兩兩帶入兩點式,再帶入所判斷點(x,y)的一個坐標dy,就可以求出另一個坐標dx。而求出來的坐標dx,如果在實際x的左側,則不再范圍內;反之,在范圍內。


完整代碼如下:

public class Point {int x;int y;public Point(int x, int y) {// TODO Auto-generated constructor stubthis.x = x;this.y = y;} }
import java.util.Scanner;public class Main {static int cnt = 0;public static void main(String[] args) {Scanner in = new Scanner(System.in);int n = in.nextInt();Point[] points = new Point[n];int maxX = 0, minX = 99999999;int maxY = 0, minY = 99999999;for(int i = 0; i < n; i++) {int x = in.nextInt();int y = in.nextInt();points[i] = new Point(x, y);if(points[i].x > maxX) {maxX = points[i].x;}if(points[i].x < minX) {minX = points[i].x;}if(points[i].y > maxY) {maxY = points[i].y;}if(points[i].y < minY) {minY = points[i].y;}}for(int i = minX; i < maxX; i++) { //x的最小值到最大值for(int j = minY; j < maxY; j++) { //y的最小值到最大值//判讀右、下、右下的三個點是否都在范圍內if(f(points, i, j) && f(points, i+1, j) && f(points, i, j+1) && f(points, i+1, j+1)) {cnt++;}}}System.out.println(cnt);}public static boolean f(Point[] points, int x, int y) {boolean flag = false;/*** 由于輸入時按順序的,所以計算還簡單了,只需要求出0點-1點、1點-2點、2點-3點、3點-4點、(4點-0點)的斜率即可。* 其中4點-0點不好求,這里的做法非常巧妙,首先將j賦為4,先將4點和0點比較,之后 j=i,i++ ,避免了雙層嵌套還解決了回環的問題。* */int j = points.length - 1;for(int i = 0; i < points.length; i++) {// 各點y坐標值的最小值 y坐標值的最大值if(y > Math.min(points[i].y, points[j].y) && y <= Math.max(points[i].y, points[j].y)) {//兩點式獲得斜率,確定該點是否在范圍內double temp = (double) points[i].x + (double)((( y- points[i].y)/ (double)(points[i].y - points[j].y)) * (double)((points[i].x - points[j].x)));if(temp < x) {flag = true;}}j = i;}return flag;} }

總結

以上是生活随笔為你收集整理的蓝桥杯第七届决赛JAVA真题----广场舞的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 天天综合入口 | 91中文在线观看 | 日本韩国在线观看 | 色婷婷av一区二区三区大白胸 | 色播av| 456亚洲影院| 欧美天天性 | 成人污在线观看 | 东北女人啪啪ⅹxx对白 | 小镇姑娘高清播放视频 | 国产毛片99 | 在线播放av网站 | 国产稀缺精品盗摄盗拍 | 亚洲粉嫩 | 女人黄色片| 亚洲 欧美 综合 | 精品亚洲一区二区三区四区五区高 | 国产三级a | 一区二区中文在线 | 国产 日韩 欧美 在线 | 99久久国产免费 | 婷婷国产在线 | 秋霞欧美一区二区三区视频免费 | 能在线看的av | 野花视频在线免费观看 | 黄色免费在线观看视频 | 亚洲aaa视频| 天堂最新| 欧美图片第一页 | 亚洲AV综合色区无码国产播放 | 伊人影院中文字幕 | 成人av网站在线播放 | 日韩国产欧美一区 | 黄色一级片在线免费观看 | 中日韩精品视频在线观看 | 四虎永久地址 | 欧美性做爰猛烈叫床潮 | 久久丫精品 | 一道本在线观看 | 懂色av一区二区三区在线播放 | 久久中文字幕高清 | 久久久精品中文字幕麻豆发布 | 精品亚洲一区二区三区四区五区高 | 91中文视频 | 蜜臀一区| 先锋影音一区二区 | 国产爆乳无码一区二区麻豆 | 黄色一级毛片 | 天天躁日日摸久久久精品 | 国产一区二区在线视频 | 夜夜天堂 | 国内精品在线播放 | 国产欧美激情视频 | 电影一区二区三区 | 精品欧美一区二区三区免费观看 | 裸体女人a级一片 | 99欧美 | 爱情岛亚洲品质自拍极速福利网站 | 国产欧美综合一区 | 97色爱| 日韩精品免费一区二区夜夜嗨 | 国产美女主播视频 | 亚洲黄色在线看 | 国产高清精品在线观看 | 高潮流白浆在线观看 | 精品少妇人妻av免费久久久 | 色呦呦视频 | 韩日一区| 亚洲成人精品一区 | 五月婷婷综合在线观看 | www.三级.com| 免费看的黄色 | 热の国产| 欧美在线视频播放 | 国产美女永久无遮挡 | 欧美日韩1区2区3区 亚洲日本精品视频 | mm131丰满少妇人体欣赏图 | 色玖玖综合 | 国产高清免费在线播放 | 亚洲免费视频一区二区 | 国产乱淫a∨片免费观看 | 在线观看xxxx| 69福利区| 日本欧美韩国国产精品 | 男人天堂视频网 | 日韩激情视频一区二区 | 国产黄色a | 爱乃なみ加勒比在线播放 | 欧美另类极品videosbest使用方法 | 蜜桃久久久aaaa成人网一区 | 国产综合福利 | 爱爱视频一区二区 | 黑人狂躁日本妞hd | 岛国裸体写真hd在线 | 毛片123| 久久国产小视频 | 神秘马戏团在线观看免费高清中文 | 青青青青青青青青草 | 北条麻妃一区二区三区 |