問題描述?個人博客:https://blog.csdn.net/Newin2020?spm=1011.2415.3001.5343
📚專欄地址:藍橋杯題解集合
📣專欄定位:為想?yún)⒓铀{橋別的小伙伴整理常考算法題解,祝大家都能取得理想成績!
??如果有收獲的話,歡迎點贊👍收藏📁,您的支持就是我創(chuàng)作的大動力💪創(chuàng)新互聯(lián)公司專注于企業(yè)營銷型網站建設、網站重做改版、豐南網站定制設計、自適應品牌網站建設、H5頁面制作、商城建設、集團公司官網建設、成都外貿網站建設、高端網站制作、響應式網頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為豐南等各大城市提供網站開發(fā)制作服務。
思路已知 3 個矩形的大小依次是a1×b1,a2×b2,a3×b3。用這3個矩形能拼出的所有多邊形中,邊數(shù)最少可以是多少?
輸入格式T 組測試,每個測試給出 6 個數(shù)據(jù),表示 3 個矩陣。
輸出格式輸出 T 行,每行一個整數(shù),表示最少邊數(shù)。
數(shù)據(jù)范圍1 ≤T≤ 1000,1 ≤a1,b1,a2,b2,a3,b3 ≤ 100。
輸入樣例:輸出樣例:2 3 2 4 1 2 4 3 2 3 1 1 14 6
這道題雖然是 JAVA 組的題目,但我們仍然可以嘗試用 C++ 來做,為了更快理解題意,我們模擬一下題目樣例:
樣例 1 給定的三個矩陣 A、B、C 的長寬分別為 3 和 2、4 和 1、2 和 4,故可以得到最優(yōu)解 4,如下圖所示:
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-h6LHMLJa-1674001723952)(AcWing 藍橋杯輔導.assets/2-3.png)]](/upload/otherpic34/1fc80d5232434d3d889820a694f9a5c1.jpg)
樣例 2 給定的三個矩陣 A、B、C 的長寬分別為 3 和 2、3 和 1、1 和 1,故可以得到最優(yōu)解 6,如下圖所示:
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-l6R7jGqE-1674001723956)(AcWing 藍橋杯輔導.assets/2-4.png)]](/upload/otherpic34/ca8934cc88cd4807b7e673a5cdfee7e1.jpg)
因此,我們通過畫圖可以發(fā)現(xiàn),三個矩陣拼在一起無非就只有三種答案:
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-hMMR4iT8-1674001723967)(AcWing 藍橋杯輔導.assets/2-5.png)]](/upload/otherpic34/212aff82a7cd4639a9a49fbd71ea45b7.jpg)
又因為本題一共就三個矩形,進行任意組合就只有 2 × 3 = 6 種情況,再加上對每個矩形的長寬進行枚舉也就 6 × 2 × 2 × 2 共 48 種情況,不會超時,故可以直接 6 重循環(huán)進行暴力枚舉。
代碼#includeusing namespace std;
int a[3][2];
int main()
{int T;
cin >>T;
while (T--)
{//輸入三個矩形的長和寬
for (int i = 0; i< 3; i++)
cin >>a[i][0] >>a[i][1];
int ans = 8; //完全不匹配時的答案為8
for (int i = 0; i< 3; i++) //枚舉第一個矩形
for (int j = 0; j< 3; j++)
if (i != j) //枚舉第二個矩形
for (int k = 0; k< 3; k++)
if (i != k && j != k) //枚舉第三個矩形
for (int ii = 0; ii<= 1; ii++) //枚舉第一個矩形的長寬
for (int jj = 0; jj<= 1; jj++) //枚舉第二個矩形的長寬
for (int kk = 0; kk<= 1; kk++) //枚舉第三個矩形的長寬
{ //第一個矩形的長等于后兩個矩形的長之和
if (a[i][ii] == a[j][jj] + a[k][kk])
{ ans = min(ans, 6);
//后面兩個矩形的寬相等
if (a[j][1 - jj] == a[k][1 - kk])
ans = min(ans, 4);
}
//至少有一個矩形的長和第一個矩形的長相等
if (a[i][ii] == a[j][jj] || a[i][ii] == a[k][kk])
ans = min(ans, 6);
//三個矩形的長全部相等
if (a[i][ii] == a[j][jj] && a[i][ii] == a[k][kk])
ans = min(ans, 4);
}
cout<< ans<< endl;
}
return 0;
}
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
本文名稱:第十三屆藍橋杯省賽JAVAA組-矩形拼接-創(chuàng)新互聯(lián)
文章路徑:http://www.chinadenli.net/article46/dosjeg.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站制作、網站設計、App開發(fā)、小程序開發(fā)、營銷型網站建設、移動網站建設
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)