ポスト

E. 2進表記の桁ごとに計算すればよく、各桁ごとの計算は f :: Vector Bool -> Int f v = sum (iscanl' (\ i cnt b -> if b then i-cnt+1 else cnt) 0 v) - length (filter id v) とか適当にかけるので、いっそCより楽でした。

メニューを開く

符号/gksato@Fine_sugar_hill

みんなのコメント

メニューを開く

F. 17分オーバー。x軸方向に行ったり来たりする意味はなく、x軸方向の移動にかかるコストは |s_x - t_x| なので、これは後から足すことにして、無視します。(x,y)=(X, Y) に人がいて、x=X+1 の エリアに移動しようとする時、次のように定まる標準的な移動先y座標F_{X,X+1}(Y) が存在します:

符号/gksato@Fine_sugar_hill

人気ポスト

もっと見る
Yahoo!リアルタイム検索アプリ