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

2021-10-20 06:15:58 字數 1635 閱讀 3364

如圖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)

123456789

【樣例輸入】01

【樣例輸出】

3

只要找出y軸上所有點的座標規律(稱之為橫向關鍵點),即求出後與該點所在同一橫線上的距離也都可以求出了。

規律:

當y >

0 時:

當abs

(x)<= y時,dis(0

, y)=

3* y +

(y * y - y)/2

*8,所以dis

(x , y)

=dis(0

, y)

+ x;

當abs

(x)> 時, x >

0時,dis

(x , y)

=dis(0

, x)+2

* x - y。

x <

0時,dis

(x , y)

=dis(0

,-x)+2

* x + y。

當y <=

0時:當y-

1<= x <=

-y 時,dis(0

,-y)=7

*-y +

(y * y + y)/2

*8,所以dis

(x , y)

=dis(0

, y)

- x;

當x >

- y 或 x< y -

1時,x >

0 時,dis

(x,y)

=dis(0

, x)-2

* x - y。

x <

0 時,dis

(x,y)

=dis(0

,-x -1)

-2* x + y -

1。

**
#include

using

namespace std;

#define ll long long

intmain()

}else

} cout<

return0;

}

20180401第九屆藍橋杯省賽B組真題 1第幾天

注意 需要提交的是乙個整數,不要填寫任何多餘內容。手算都可以,這裡直接貼上2013年 高斯日記那道題了。輸入 2000 1 1 125即可。答案 125 project 2013 藍橋杯省賽 b組 填空題1 date 2018 03 18 author frank yu include includ...

2023年第九屆藍橋杯C 省賽B組H題

小明維護著乙個程式設計師論壇。現在他收集了乙份 點讚 日誌,日誌共有n行。其中每一行的格式是 ts id 表示在ts時刻編號id的帖子收到乙個 贊 現在小明想統計有哪些帖子曾經是 熱帖 如果乙個帖子曾在任意乙個長度為d的時間段內收到不少於k個讚,小明就認為這個帖子曾是 熱帖 具體來說,如果存在某個時...

2018藍橋杯第九屆C 語言A組省賽大題題解

為了準備下次比賽 2019a組c 這裡只寫了大題的題解。一部分原因也是因為要考研,時間不太夠 對於下次比賽很有信心,因為看了下大題基本會做。想起去年看這些題還要思考很久就感慨萬分啊,當時以為自己智商不過,哪知道系統的學過演算法後能提公升這麼多思維。所以有的看演算法題崩潰的道友們不要擔心,慢慢學總是學...