藍橋杯第九屆之螺旋折線

2021-09-11 02:19:44 字數 1244 閱讀 1423

藍橋杯第九屆(c/c++b組)題目彙總及解析

如圖p1.png所示的螺旋折線經過平面上所有整點恰好一次。  

對於整點(x, y),我們定義它到原點的距離dis(x, y)是從原點到(x, y)的螺旋折線段的長度。  

例如dis(0, 1)=3, dis(-2, -1)=9  

給出整點座標(x, y),你能計算出dis(x, y)嗎?

【輸入格式】

x和y  

對於40%的資料,-1000 <= x, y <= 1000  

對於70%的資料,-100000 <= x, y <= 100000  

對於100%的資料, -1000000000 <= x, y <= 1000000000  

【輸出格式】

輸出dis(x, y)  

【樣例輸入】

0 1【樣例輸出】

資源約定:

峰值記憶體消耗(含虛擬機器) < 256m

cpu消耗  < 1000ms

請嚴格按要求輸出,不要畫蛇添足地列印類似:「請您輸入...」 的多餘內容。

注意:main函式需要返回0;

只使用ansi c/ansi c++ 標準;

不要呼叫依賴於編譯環境或作業系統的特殊函式。

所有依賴的函式必須明確地在原始檔中 #include

不能通過工程設定而省略常用標頭檔案。

提交程式時,注意選擇所期望的語言型別和編譯器型別。

解析:

根據上圖,我們可以將其看成有邊長為2、4、6、8......的正方形組成的,所以可以根據給出的x、y值求max(x,y)來判斷這個點是屬於哪個正方形裡面的,再從x,y的位置判斷是位於正方形的上下左右那一條邊的來求dis(x,y)

#include #define ll long long

using namespace std;

ll sum;

void summ(ll a)//判斷是哪個正方形的,並求前面所有小正方形的周長和

else

return sum;

}int main()

第九屆藍橋杯 螺旋折線

如圖p1.png所示的螺旋折線經過平面上所有整點恰好一次。對於整點 x,y 我們定義它到原點的距離dis x,y 是從原點到 x,y 的螺旋折線段的長度。例如dis 0,1 3,dis 2,1 9 給出整點座標 x,y 你能計算出dis x,y 嗎?輸入格式 x和y 對於40 的資料,1000 x,...

第九屆藍橋杯 螺旋折線

唉!暴力解法不推薦 寫了好久,還在草稿紙上打了半小時草稿 但是想不出其他好方法了 還有一種方法想了想,被打斷了 2 x 1 2 2 x 1 1 2 y 1 2 2 y 1 1 感覺可以做出來,但是思路沒了 你們加油 還剩28天左右 include includeint main printf d n...

第九屆藍橋杯省賽C B組 螺旋折線

如圖p1.png所示的螺旋折線經過平面上所有整點恰好一次。對於整點 x,y 我們定義它到原點的距離dis x,y 是從原點到 x,y 的螺旋折線段的長度。例如dis 0,1 3,dis 2,1 9 給出整點座標 x,y 你能計算出dis x,y 嗎?輸入格式 x和y 對於40 的資料,1000 x,...