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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

算法竞赛入门经典(第二版) | 习题3-10 盒子 (pair结构体)(UVa1587,Box)

發(fā)布時間:2024/2/28 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 算法竞赛入门经典(第二版) | 习题3-10 盒子 (pair结构体)(UVa1587,Box) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

大意:

給定6個矩形的長和寬,判斷他們能否構(gòu)成一個長方體。


題目(提交)鏈接→UVa-1587
沒使用過該網(wǎng)站的同學(xué)請猛戳這里→vJudge教程


儲備知識:

pair結(jié)構(gòu)體:
pair是將2個數(shù)據(jù)組合成一組數(shù)據(jù),滿足這個條件時就可以使用pair,如stl中的map,就是將key和value放在一起來保存。另一個應(yīng)用是,當(dāng)一個函數(shù)需要返回2個數(shù)據(jù)的時候,可以選擇pair。
簡而言之:就是封裝好的結(jié)構(gòu)體(只能是二變量)

分析:

最初的思路是:
先判斷輸入的數(shù)呈三對,找出每對中的一個面(共三個面),每個面的每條邊都會出現(xiàn)在另外兩個面其中之一。
優(yōu)化的思路是:
用pair結(jié)構(gòu)體存儲一個面的兩個邊,而后排序,按升序排好的長方體,第一個變量的最小值必然等于接下來三個變量的最小值;第一個變量的最大值必然等于最后兩個變量的最小值 ;第三個變量的最大值必然等于第四、五、六個變量的最大值。
例如(下面是排好序的六個變量):
6 13
6 13
6 25
6 25
13 25
13 25

輸入輸出格式:

1、EOF結(jié)束
2、每個輸出結(jié)果間沒有空格

代碼(15\16\17行為核心代碼):

#include <iostream> #include <cstdio> #include <algorithm> using namespace std; pair <int,int> p[6]; int i; int main() {while(1) {for(int i = 0; i < 6; i++) {if(!(cin>>p[i].first>>p[i].second)) return 0;if(p[i].first > p[i].second) swap(p[i].first, p[i].second);}sort(p, p+6); //按照首先first遞增,其次second遞增排序puts(p[0].first==p[1].first&&p[0].first==p[2].first&&p[0].first==p[3].first&& p[2].second==p[3].second&&p[2].second==p[4].second&&p[2].second==p[5].second&& p[0].second==p[1].second&&p[0].second==p[4].first&&p[0].second==p[5].first ? "POSSIBLE" : "IMPOSSIBLE") ;}return 0; }

收獲:

1、pair結(jié)構(gòu)體的用法
2、puts不需要加換行符,因為本就是一行一行輸出
3、長方體的規(guī)則:按升序排好的長方體,第一個變量的最小值必然等于接下來三個變量的最小值;第一個變量的最大值必然等于最后兩個變量的最小值 ;第三個變量的最大值必然等于第四、五、六個變量的最大值。
4、此種題:找技巧,后暴力枚舉

思考:

本來是一道水題,但筆者太急于求成,總是想著怎樣走捷徑、找最優(yōu)解法,卻沒有踏踏實實的想思路,寫代碼。因此耗費了很多時間.
靜心思考后發(fā)現(xiàn),筆者本末倒置了,拿到題首先要做的是將題做對,而后才可以交流經(jīng)驗,謀求更優(yōu)化的解法。

總結(jié)

以上是生活随笔為你收集整理的算法竞赛入门经典(第二版) | 习题3-10 盒子 (pair结构体)(UVa1587,Box)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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