乙個蒟蒻的解題過程記錄 洛谷P1003 鋪地毯

2022-04-12 02:44:42 字數 1866 閱讀 2581

這到題算是我「火線回歸」後碼的第一道題,病好了心情不錯,發篇部落格分享一下

·題目描述:

為了準備一場特殊的頒獎典禮,組織者在會場的一片矩形區域(可看做是平面直角座標系的第一象限)鋪上一些矩形地毯。一共有n張地毯,編號從1到n。現在將這些地毯按照編號從小到大的順序平行於座標軸先後鋪設,後鋪的地毯覆蓋在前面已經鋪好的地毯之上。地毯鋪設完成後,組織者想知道覆蓋地面某個點的最上面的那張地毯的編號。注意:在矩形地毯邊界和四個頂點上的點也算被地毯覆蓋

·題目分析:
這道題看上去是一道很水很水的模擬題,一般人的第一思路就是套上三層迴圈,用乙個二維陣列模擬會場的每一塊地板。不錯, 我一開始也是這樣想的,**如下:

1 #include2 #include3

4using

namespace

std;56

intn;

7int

a,b,g,k,xx,yy;

8int ground[10010][10010]=;//賦值為-1的目的是如果沒有被賦值,就可以直接輸出-1,不用再判斷了(其實就是懶)910

intmain()

1120 scanf("

%d%d

",&xx,&yy);

21 printf("%d"

,ground[xx][yy]);//直接查詢需要查詢的地板最上面是那一塊地毯

22return0;

23 }

是的,這道題看上去很水,上面的**看似完美無缺。但是結果是這樣的:

是的,就是149.79s

所以,是什麼導致了這種結果的發生呢???於是,我不要臉的點開了題解

原來,按照我的做法似是肯定會mle的,因為這道題很坑,出題人的目的就是讓我們將資料從前往後讀入,再從後往前迴圈,從而求解(具體解題思路請繼續往下看)

·解題思路:
根據上面的結論,我們可以找到乙個更快、更優、更好的演算法。

先將第2~n+1行的資料讀入,存到乙個二維陣列中,然後從n~1列舉每一組資料,檢視第乙個包括需要查詢的點的地毯。如果有,就直接輸出這個地毯的編號,結束程式;如果沒有,就輸出「-1」,同樣結束程式;

·**實現:
說了這麼多,沒有**怎麼能行呢???

1 #include2 #include3

4using

namespace

std;56

int shuju[10010][5

];//定義乙個「資料」陣列,用來讀入每一組資料

7int

n,xx,yy;89

intmain()

1023

}24 printf("-1"

);//如果沒有,就輸出-1

25return

0;//還是結束程式

26 }

·總結:

這道題還是很坑的,因為這道題不是單純無腦的模擬,而是運用到了某種類似於「逆推還原」的思想,思路並不是很好想。所以在以後的解題過程當中,不要想當然,一定要仔細斟酌,然後就能ac啦!

乙個蒟蒻的hibernate框架安裝

提取碼 x4xv 順便紀念一下pandownload 差不多就是這麼個路徑吧 hibernate release 5.4.14.final.zip hibernate release 5.4.14.final lib required 將他們copy到你web目錄下的web inf lib下面即可。...

乙個蒟蒻未切的題o o

jzoj 3104.noip2012提高組 疫情控制 就是個二分 貪心,碼量有點長 碼農題 jzoj 3053.noip2012模擬10.25 旅行 我的程式有乙個很大的bug 已改 jzoj 4754.gdoi2017模擬9.4 矩陣 dp題 已切 jzoj 4752.gdoi2017模擬9.4 ...

詩和遠方 乙個蒟蒻的年初展望

2017年,是基年,全名有機年。再此,發表一下年初展望,對年許下一些諾言,記錄下自己的理想。新的一年,文化課進級部前100,數學不掉下130,英語爭取搞定高中所有詞彙,物理提公升至80分以上,化學要拿90分左右,生物要考90左右。新的一年,要將usaco全部刷完,luogu上刷三百道題,外加100道...