在哈爾濱的寒風中

2021-08-13 08:27:05 字數 1215 閱讀 2008

time limit per test: 1.0 seconds

memory limit: 256 megabytes

kblack 來到了寒冬中的哈爾濱,哈爾濱的寒風令 kblack 瑟瑟發抖。

世界上最遠的距離,是你與賓館只差一條冰街,而你卻忘了穿上秋褲。

kblack 終於衝進了賓館,賓館大廳的地板鋪滿了五顏六色的地磚,可以被看作是一塊 n×m 格的棋盤,為了能使凍僵了的雙腳盡快暖和起來,kblack 決定在地磚上走動,但是他被速凍的雙腳在棋盤地板上只能走馬步。

kblack 居然想知道有多少對地磚(無序點對)他可以通過若干步馬步互相抵達!

輸入包含一行兩個正整數 n, m,表示棋盤的大小,保證 1≤n×m≤1e9 。

輸出包含乙個整數,表示 kblack 可以通過馬步互相到達的無序地磚對數。

1 24 2

eoj monthly 2017.12 (暨 ecnu 12 月內部選拔)

雖然限制只能走馬步,但我們很容易意識到在足夠大的棋盤(例如象棋棋盤)上,馬可以達到任何位置。事實上通過簡單的驗證,可以發現這一大小的下界是 3×4。

於是對於所有 ≥3×4 的棋盤,我們可以斷言所有磚之間可以互相到達,此時答案為 c(nm, 2)。

當棋盤大小為 3×3 時,通過簡單的模擬可以發現外圍的 8 塊磚可以互相到達,此時答案為c (8, 2)。

當棋盤大小為 2×n 時,我們發現不同奇偶不同的行/列交替可達,此時有 2 組 ⌊n/2⌋ 的聯通塊與兩組 ⌊(n+1)/2⌋ 的聯通塊,答案為 c([(n+1)/2⌋, 2)*2 + c(⌊n/2⌋, 2)*2 。

當棋盤大小為 1×n 時,沒有合法的馬步,此時答案為 0。

注意答案可能超過 2147483647,需要使用 long long 型別。

#include 

#include

#include

#include

#include

#include

using

namespace

std;

typedef

long

long ll;

ll c2(ll n)

int main() else

if (m == 2) else

cout

<< 0

<< endl;

}return

0;}

B 在哈爾濱的寒風中

輸入包含一行兩個正整數 n m,表示棋盤的大小,保證 1 n m 10 9 輸出包含乙個整數,表示 kblack 可以通過馬步互相到達的無序地磚對數。input 1 2output 0input 4 2output 4b.prepared by kblack.雖然限制只能走馬步,但我們很容易意識到在...

凌晨3點的迪士尼,5000人在寒風中排隊買玩偶

12 月 29 日,正好是上海迪士尼官程式設計客棧宣最近 3 個月最為火爆的 女明星 玲娜貝兒滿 3 個月的日子。也正是在這一天,乙個正常工作日的凌晨 3 點就有超過 5000 人在迪士尼門口排隊等候購買迪士尼樂園高人氣ip 達菲和他的朋友們 的聖誕系列單品。天還未亮,人滿為患的迪士尼門口 根據迪士...

再度送溫暖 波司登為寒風中的英雄獻禮暖心羽絨服

全國氣溫持續下降,身處一線的基層工作人員卻依然在寒風中恪守職業精神,堅守崗位,奉獻自我。熱衷公益事業的波司登在了解了一線工作人員的情況與需求後,再度向 寒風中的英雄 伸出了援助之手,傳遞品牌正能量用實際行動來幫助有需要的人,彰顯品牌溫度,點燃公益之火。衣暖人心波司登傳遞溫暖力量 時至九月,全國氣溫上...