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 達菲和他的朋友們 的聖誕系列單品。天還未亮,人滿為患的迪士尼門口 根據迪士...
再度送溫暖 波司登為寒風中的英雄獻禮暖心羽絨服
全國氣溫持續下降,身處一線的基層工作人員卻依然在寒風中恪守職業精神,堅守崗位,奉獻自我。熱衷公益事業的波司登在了解了一線工作人員的情況與需求後,再度向 寒風中的英雄 伸出了援助之手,傳遞品牌正能量用實際行動來幫助有需要的人,彰顯品牌溫度,點燃公益之火。衣暖人心波司登傳遞溫暖力量 時至九月,全國氣溫上...