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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

CCF 坐标系画图

發(fā)布時(shí)間:2023/12/31 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CCF 坐标系画图 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

問(wèn)題描述

在一一個(gè)定義了直角坐標(biāo)系的紙上,畫一個(gè)(x1,y1)到(x2,y2)的矩形指將橫坐標(biāo)范圍從x1到x2,縱坐標(biāo)范圍 從y1到y(tǒng)2之間的區(qū)域涂上顏色。下圖給出了一個(gè)畫了兩個(gè)矩形的例子。第一個(gè)矩形是(1,1) 到(4, 4),用綠 色和紫色表示。第二個(gè)矩形是(2, 3)到(6, 5),用藍(lán)色和紫色表示。圖中,一共有15個(gè)單位的面積被涂上顏色, 其中紫色部分被涂了兩次,但在計(jì)算面積時(shí)只計(jì)算一次。在實(shí)際的涂色過(guò)程中,所有的矩形都涂成統(tǒng)-的顏色,圖中 顯示不同顏色僅為說(shuō)明方便。給出所要畫的矩形,請(qǐng)問(wèn)總共有多少個(gè)單位的矩形被涂上顏色?

輸入格式
輸入的第一行包含一個(gè)整數(shù)n,表示要畫的矩形的個(gè)數(shù)。
接下來(lái)n行,每行4個(gè)非負(fù)整數(shù),分別表示要畫的矩形的左下角的橫坐標(biāo)與縱坐標(biāo),以及右上角的橫坐標(biāo)與縱坐標(biāo)。

/*** Aurora 2020年4月17日 問(wèn)題描述在一一個(gè)定義了直角坐標(biāo)系的紙上,畫一個(gè)(x1,y1)到(x2,y2)的矩形指將橫坐標(biāo)范圍從x1到x2,縱坐標(biāo)范圍從y1到y(tǒng)2之間的區(qū)域涂上顏色。下圖給出了一個(gè)畫了兩個(gè)矩形的例子。第一個(gè)矩形是(1,1) 到(4, 4),用綠色和紫色表示。第二個(gè)矩形是(2, 3)到(6, 5),用藍(lán)色和紫色表示。圖中,一共有15個(gè)單位的面積被涂上顏色,其中紫色部分被涂了兩次,但在計(jì)算面積時(shí)只計(jì)算一次。在實(shí)際的涂色過(guò)程中,所有的矩形都涂成統(tǒng)-的顏色,圖中顯示不同顏色僅為說(shuō)明方便。給出所要畫的矩形,請(qǐng)問(wèn)總共有多少個(gè)單位的矩形被涂上顏色? 輸入格式輸入的第一行包含一個(gè)整數(shù)n,表示要畫的矩形的個(gè)數(shù)。接下來(lái)n行,每行4個(gè)非負(fù)整數(shù),分別表示要畫的矩形的左下角的橫坐標(biāo)與縱坐標(biāo),以及右上角的橫坐標(biāo)與縱坐標(biāo)。*/import java.util.HashSet; import java.util.Scanner; public class CCF坐標(biāo)系畫圖 {public static void main(String[] args) {Scanner s=new Scanner(System.in);int n=s.nextInt();HashSet<UnitGrid> set=new HashSet<UnitGrid>();// 表示這個(gè)集合中只能保存UnitGrid 類型的對(duì)象,其他對(duì)象無(wú)法保存// 取出時(shí) 也直接是這個(gè) UnitGrid 對(duì)象,不需要強(qiáng)轉(zhuǎn),在寫代碼的時(shí)候,方便寫入和取出int []axis=new int[4];for(int i=1;i<=n;i++) {for(int j=0;j<4;j++) {axis[j]=s.nextInt();}set.addAll(transferToUniteGrid(axis[0],axis[1],axis[2],axis[3]));}System.out.println(set.size());//將集合大小輸出(也就是題目想求得的單位矩形的個(gè)數(shù))}/* 定義一個(gè)私有的靜態(tài)內(nèi)部類,* public(公有的) ...;* private(私有的)僅僅能被當(dāng)前類的成員訪問(wèn);* protected(受保護(hù)的)除了當(dāng)前類以外,僅僅能被子類及同一個(gè)包中的類訪問(wèn);*///開始向set集合中添加元素(間接統(tǒng)計(jì)單位矩形的個(gè)數(shù)set.size())private static HashSet<UnitGrid> transferToUniteGrid(int x1,int y1,int x2,int y2){//實(shí)例化UnitGrid ,實(shí)例化后 UnitGrid 是HashSet類型的對(duì)象HashSet<UnitGrid> set=new HashSet<UnitGrid>();for(int i=x1;i<x2;i++) {//不包括上界for(int j=y1;j<y2;j++) {//把大矩形分割成小的單位矩形,分割一個(gè),就向set.add(new UnitGrid(i,j));//向集合里面添加坐標(biāo)元素}}return set;} } class UnitGrid{int x,y;//用左下角的坐標(biāo)來(lái)代表一個(gè)UnitGrid public UnitGrid(int x,int y) {//x y是局部變量this.x=x;//x y是成員變量this.y=y;}@Override// 重寫 equals 方法,若左下角坐標(biāo)一致,則相等 public boolean equals(Object o) {if(o==null) return false;if(!(o instanceof UnitGrid)) return false;UnitGrid ug=(UnitGrid)o;if((this.x==ug.x) && (this.y==ug.y)) {return true;}return false;}@Override//重寫hashCode方法public int hashCode() {//如果兩個(gè)UnitGrid 的x,y相等,則為同一元素int result=17;return (37*result +this.x)*37+this.y;} }

總結(jié)

以上是生活随笔為你收集整理的CCF 坐标系画图的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。