狠狠撸
Submit Search
Pyramid
Oct 24, 2012
0 likes
1,218 views
T
tomerun
1 of 13
Download now
Downloaded 11 times
Recommended
Za atsu-20170328
Za atsu-20170328
HCPC: 北海道大学競技プログラミングサークル
?
za atsu
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
AtCoder Inc.
?
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
Gcd
Gcd
oupc
?
CODE FESTIVAL 2015 予選B 解説
CODE FESTIVAL 2015 予選B 解説
AtCoder Inc.
?
CODE FESTIVAL 2015 予選B 解説
K2PC Div1 E 暗号化
K2PC Div1 E 暗号化
Kazuma Mikami
?
AtCoder Regular Contest 045 解説
AtCoder Regular Contest 045 解説
AtCoder Inc.
?
AtCoder Regular Contest 045 解説
情报オリンピック夏合宿発表
情报オリンピック夏合宿発表
Kazuma Mikami
?
暂定
AtCoder Beginner Contest 014 解説
AtCoder Beginner Contest 014 解説
AtCoder Inc.
?
AtCoder Beginner Contest 014 解説
Aizu-2017: B
Aizu-2017: B
HCPC: 北海道大学競技プログラミングサークル
?
aizu 2017 b
AtCoder Beginner Contest 035 解説
AtCoder Beginner Contest 035 解説
AtCoder Inc.
?
AtCoder Beginner Contest 035 解説
Binary indexed tree
Binary indexed tree
HCPC: 北海道大学競技プログラミングサークル
?
BIT
AtCoder Beginner Contest 017 解説
AtCoder Beginner Contest 017 解説
AtCoder Inc.
?
AtCoder Beginner Contest 017 解説
abc027
abc027
AtCoder Inc.
?
AtCoder Beginner Contest 027 解説
RUPC2014_Day2_C
RUPC2014_Day2_C
s1190048
?
Cube
Cube
oupc
?
DDPC 2016 予選 解説
DDPC 2016 予選 解説
AtCoder Inc.
?
DDPC 2016 予選 解説
AtCoder Beginner Contest 018 解説
AtCoder Beginner Contest 018 解説
AtCoder Inc.
?
AtCoder Beginner Contest 018 解説
AtCoder Regular Contest 019 解説
AtCoder Regular Contest 019 解説
AtCoder Inc.
?
AtCoder Regular Contest 019 解説
UTPC2012 - K
UTPC2012 - K
omeometo
?
ACPC 2018 Day3 F: 01 文字列と窓 (Binary String with Slit)
ACPC 2018 Day3 F: 01 文字列と窓 (Binary String with Slit)
HCPC: 北海道大学競技プログラミングサークル
?
2018/9/21 会津大学プログラミング合宿 Day3 (北大セット) F 問題 ※文字が見えない場合、ダウンロードするかフルスクリーンにしてご覧ください。(フルスクリーンにすると文字が消える問題に対処できるようです)
AtCoder Regular Contest 030 解説
AtCoder Regular Contest 030 解説
AtCoder Inc.
?
AtCoder Regular Contest 030 解説
球面フィッティングの导出と実装
球面フィッティングの导出と実装
j_rocket_boy
?
球面フィッティングの导出と笔测迟丑辞苍での実装について
Sclalaz Kleisli の使い方
Sclalaz Kleisli の使い方
Masaru Watanabe
?
使い方の紹介だけです。 理解が浅いので難しい話はできません。
行列补完を用いた无线マルチキャスト符号构成アルゴリズム
行列补完を用いた无线マルチキャスト符号构成アルゴリズム
Tasuku Soma
?
AtCoder Beginner Contest 023 解説
AtCoder Beginner Contest 023 解説
AtCoder Inc.
?
AtCoder Beginner Contest 023 解説
AtCoder Regular Contest 043 解説
AtCoder Regular Contest 043 解説
AtCoder Inc.
?
AtCoder Regular Contest 043 解説
abc031
abc031
AtCoder Inc.
?
AtCoder Beginner Contest #031https://abc031.contest.atcoder.jp の解説です。
ggplot2 110129
ggplot2 110129
Takashi Minoda
?
量子アニーリングマシンのプログラミング
量子アニーリングマシンのプログラミング
nishio
?
量子アニーリングマシン(イジングマシン)の入力であるイジングモデルの设计方法について
Cv 14th
Cv 14th
Junichi Ido
?
More Related Content
What's hot
(20)
Aizu-2017: B
Aizu-2017: B
HCPC: 北海道大学競技プログラミングサークル
?
aizu 2017 b
AtCoder Beginner Contest 035 解説
AtCoder Beginner Contest 035 解説
AtCoder Inc.
?
AtCoder Beginner Contest 035 解説
Binary indexed tree
Binary indexed tree
HCPC: 北海道大学競技プログラミングサークル
?
BIT
AtCoder Beginner Contest 017 解説
AtCoder Beginner Contest 017 解説
AtCoder Inc.
?
AtCoder Beginner Contest 017 解説
abc027
abc027
AtCoder Inc.
?
AtCoder Beginner Contest 027 解説
RUPC2014_Day2_C
RUPC2014_Day2_C
s1190048
?
Cube
Cube
oupc
?
DDPC 2016 予選 解説
DDPC 2016 予選 解説
AtCoder Inc.
?
DDPC 2016 予選 解説
AtCoder Beginner Contest 018 解説
AtCoder Beginner Contest 018 解説
AtCoder Inc.
?
AtCoder Beginner Contest 018 解説
AtCoder Regular Contest 019 解説
AtCoder Regular Contest 019 解説
AtCoder Inc.
?
AtCoder Regular Contest 019 解説
UTPC2012 - K
UTPC2012 - K
omeometo
?
ACPC 2018 Day3 F: 01 文字列と窓 (Binary String with Slit)
ACPC 2018 Day3 F: 01 文字列と窓 (Binary String with Slit)
HCPC: 北海道大学競技プログラミングサークル
?
2018/9/21 会津大学プログラミング合宿 Day3 (北大セット) F 問題 ※文字が見えない場合、ダウンロードするかフルスクリーンにしてご覧ください。(フルスクリーンにすると文字が消える問題に対処できるようです)
AtCoder Regular Contest 030 解説
AtCoder Regular Contest 030 解説
AtCoder Inc.
?
AtCoder Regular Contest 030 解説
球面フィッティングの导出と実装
球面フィッティングの导出と実装
j_rocket_boy
?
球面フィッティングの导出と笔测迟丑辞苍での実装について
Sclalaz Kleisli の使い方
Sclalaz Kleisli の使い方
Masaru Watanabe
?
使い方の紹介だけです。 理解が浅いので難しい話はできません。
行列补完を用いた无线マルチキャスト符号构成アルゴリズム
行列补完を用いた无线マルチキャスト符号构成アルゴリズム
Tasuku Soma
?
AtCoder Beginner Contest 023 解説
AtCoder Beginner Contest 023 解説
AtCoder Inc.
?
AtCoder Beginner Contest 023 解説
AtCoder Regular Contest 043 解説
AtCoder Regular Contest 043 解説
AtCoder Inc.
?
AtCoder Regular Contest 043 解説
abc031
abc031
AtCoder Inc.
?
AtCoder Beginner Contest #031https://abc031.contest.atcoder.jp の解説です。
ggplot2 110129
ggplot2 110129
Takashi Minoda
?
Aizu-2017: B
Aizu-2017: B
HCPC: 北海道大学競技プログラミングサークル
?
AtCoder Beginner Contest 035 解説
AtCoder Beginner Contest 035 解説
AtCoder Inc.
?
Binary indexed tree
Binary indexed tree
HCPC: 北海道大学競技プログラミングサークル
?
AtCoder Beginner Contest 017 解説
AtCoder Beginner Contest 017 解説
AtCoder Inc.
?
abc027
abc027
AtCoder Inc.
?
RUPC2014_Day2_C
RUPC2014_Day2_C
s1190048
?
Cube
Cube
oupc
?
DDPC 2016 予選 解説
DDPC 2016 予選 解説
AtCoder Inc.
?
AtCoder Beginner Contest 018 解説
AtCoder Beginner Contest 018 解説
AtCoder Inc.
?
AtCoder Regular Contest 019 解説
AtCoder Regular Contest 019 解説
AtCoder Inc.
?
UTPC2012 - K
UTPC2012 - K
omeometo
?
ACPC 2018 Day3 F: 01 文字列と窓 (Binary String with Slit)
ACPC 2018 Day3 F: 01 文字列と窓 (Binary String with Slit)
HCPC: 北海道大学競技プログラミングサークル
?
AtCoder Regular Contest 030 解説
AtCoder Regular Contest 030 解説
AtCoder Inc.
?
球面フィッティングの导出と実装
球面フィッティングの导出と実装
j_rocket_boy
?
Sclalaz Kleisli の使い方
Sclalaz Kleisli の使い方
Masaru Watanabe
?
行列补完を用いた无线マルチキャスト符号构成アルゴリズム
行列补完を用いた无线マルチキャスト符号构成アルゴリズム
Tasuku Soma
?
AtCoder Beginner Contest 023 解説
AtCoder Beginner Contest 023 解説
AtCoder Inc.
?
AtCoder Regular Contest 043 解説
AtCoder Regular Contest 043 解説
AtCoder Inc.
?
abc031
abc031
AtCoder Inc.
?
ggplot2 110129
ggplot2 110129
Takashi Minoda
?
Similar to Pyramid
(17)
量子アニーリングマシンのプログラミング
量子アニーリングマシンのプログラミング
nishio
?
量子アニーリングマシン(イジングマシン)の入力であるイジングモデルの设计方法について
Cv 14th
Cv 14th
Junichi Ido
?
凸最適化 ? 双対定理とソルバーCVXPYの紹介 ?
凸最適化 ? 双対定理とソルバーCVXPYの紹介 ?
Tomoki Yoshida
?
CVXPYの使い方の説明とラグランジュ双対問題について説明 ※縮小表示だと日本語が消えることがあるので全画面で御覧ください
CVIM#11 3. 最小化のための数値計算
CVIM#11 3. 最小化のための数値計算
sleepy_yoshi
?
CVIM勉強会#11 1章バンドルアジャストメント 3. 最小化のための数値計算
文書比較 (diff)
文書比較 (diff)
Satoshi MATSUURA
?
diff algorithm - intro (Levenshtein Distance, LCS, SES, Edit graph) - Dynamic Programing - Myers' algorithm, O(ND) - Wu's algorithm, O(NP) - references
University CodeSprint 4 - Magic value
University CodeSprint 4 - Magic value
satanic
?
University CodeSprint 4 - Magic value の解説です.
自然言语処理のための机械学习入门1章
自然言语処理のための机械学习入门1章
Hiroki Mizukami
?
@yamano357 さん主催の #NLPStudy での講演資料です.
CMSI計算科学技術特論A (2015) 第10回 行列計算における高速アルゴリズム1
CMSI計算科学技術特論A (2015) 第10回 行列計算における高速アルゴリズム1
Computational Materials Science Initiative
?
Computational Materials Science Initiative
Convex Hull Trick
Convex Hull Trick
HCPC: 北海道大学競技プログラミングサークル
?
HCPC 勉強会 (2019/4/4) - Convex Hull Trick ※文字が見えない場合は、ダウンロードするかフルスクリーンにしてご覧ください
搁の辞辫迟颈尘関数でロバスト回帰(尝惭厂と尝础痴)
搁の辞辫迟颈尘関数でロバスト回帰(尝惭厂と尝础痴)
wada, kazumi
?
古典的なロバスト回帰法である尝惭厂及び尝础痴回帰を搁の辞辫迟颈尘関数を使って作成し、実际に动かしてみる。
Sanpo
Sanpo
oupc
?
第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)
RCCSRENKEI
?
精度保証付き数値計算入門 概要: 数値計算には丸め誤差の問題があることを前回の講義で解説した。 計算が正しいことが保証されない数値計算は数学の証明に不向きなように思われ るが、 それを可能とする精度保証付き数値計算について概要を紹介する。
Indeedなう B日程 解説
Indeedなう B日程 解説
AtCoder Inc.
?
Indeedなう B日程 解説
PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5
sleepy_yoshi
?
2012-07-16 PRML復々習レーン#3 3.1.3-3.1.5 の資料
WUPC2nd G問題
WUPC2nd G問題
Dai Hamada
?
第2回 早稲田大学プログラミングコンテストのG問題 : だるま落とし の解説スライドです。
L0TV: a new method for image restoration in the presence of impulse noise
L0TV: a new method for image restoration in the presence of impulse noise
Fujimoto Keisuke
?
2015/07/25 CV勉強会@関東 CVPR2015読み会資料
多倍长整数の乗算と高速フーリエ変换
多倍长整数の乗算と高速フーリエ変换
京大 マイコンクラブ
?
多倍长整数の乗算を高速に行うアルゴリズムを、カラツバ法から始めて、最终的に高速フーリエ変换を用いた乗算に至るまでを解説しました。
量子アニーリングマシンのプログラミング
量子アニーリングマシンのプログラミング
nishio
?
Cv 14th
Cv 14th
Junichi Ido
?
凸最適化 ? 双対定理とソルバーCVXPYの紹介 ?
凸最適化 ? 双対定理とソルバーCVXPYの紹介 ?
Tomoki Yoshida
?
CVIM#11 3. 最小化のための数値計算
CVIM#11 3. 最小化のための数値計算
sleepy_yoshi
?
文書比較 (diff)
文書比較 (diff)
Satoshi MATSUURA
?
University CodeSprint 4 - Magic value
University CodeSprint 4 - Magic value
satanic
?
自然言语処理のための机械学习入门1章
自然言语処理のための机械学习入门1章
Hiroki Mizukami
?
CMSI計算科学技術特論A (2015) 第10回 行列計算における高速アルゴリズム1
CMSI計算科学技術特論A (2015) 第10回 行列計算における高速アルゴリズム1
Computational Materials Science Initiative
?
Convex Hull Trick
Convex Hull Trick
HCPC: 北海道大学競技プログラミングサークル
?
搁の辞辫迟颈尘関数でロバスト回帰(尝惭厂と尝础痴)
搁の辞辫迟颈尘関数でロバスト回帰(尝惭厂と尝础痴)
wada, kazumi
?
Sanpo
Sanpo
oupc
?
第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)
RCCSRENKEI
?
Indeedなう B日程 解説
Indeedなう B日程 解説
AtCoder Inc.
?
PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5
sleepy_yoshi
?
WUPC2nd G問題
WUPC2nd G問題
Dai Hamada
?
L0TV: a new method for image restoration in the presence of impulse noise
L0TV: a new method for image restoration in the presence of impulse noise
Fujimoto Keisuke
?
多倍长整数の乗算と高速フーリエ変换
多倍长整数の乗算と高速フーリエ変换
京大 マイコンクラブ
?
More from tomerun
(10)
Mastermind
Mastermind
tomerun
?
Ninja of Train
Ninja of Train
tomerun
?
U?N?C?O
U?N?C?O
tomerun
?
Bitmap
Bitmap
tomerun
?
Vinculum
Vinculum
tomerun
?
Together
Together
tomerun
?
Cheat
Cheat
tomerun
?
Cards
Cards
tomerun
?
Match
Match
tomerun
?
Contest
Contest
tomerun
?
Mastermind
Mastermind
tomerun
?
Ninja of Train
Ninja of Train
tomerun
?
U?N?C?O
U?N?C?O
tomerun
?
Bitmap
Bitmap
tomerun
?
Vinculum
Vinculum
tomerun
?
Together
Together
tomerun
?
Cheat
Cheat
tomerun
?
Cards
Cards
tomerun
?
Match
Match
tomerun
?
Contest
Contest
tomerun
?
Pyramid
1.
Pyramid
原案: komiya
2.
問題概要
N*M(N, M≦1000) の行列 X があり、初期状態では 全ての要素が 0 。 以下のクエリが Q(≦10^6) 個あるので、全て処理し た後の行列を求めよ。 X[i, j] += max( 0, d - (| i – a | + | j – b |) ) 1 ≦ d ≦ max(N, M), 1≦a≦N, 1≦b≦M
3.
解法
一部でいもす法と呼ばれているアイデアを使う。 JOI 界隈では頻出?
4.
いもす法って?
区間への加算を、定数箇所の更新だけで済ませる。 加算された値を具体的に知りたくなったら累積和 をとる。 愚直 いもす法 更新 ( 加算 ) O(n) O(1) O(H*W) 参照 O(1) O(n) (a[i]=?) O(H*W) 本問題のように、更新が多く参照が少ない状況に 適している。
5.
いもす法って?
結局何をやっているのか? 累積和の逆変換 ( 階差数列 ) を利用している。 +1 +1 +1 +1 +1 O(n) 箇所の更新が必要 階差数列 累積和 どっち向きの変換も 計算量 O(n) +1 -1 定数箇所の更新で済む 処理が軽いので、加算クエリが多 いときはこっちの世界で処理する 方が効率良い
6.
いもす法って?
さっきの話は 2 次元以上にも拡張できる! 2 1 -1 2 3 2 累積和 0 3 2 2 6 7 -2 1 -1 逆変換 0 5 5 変換に必要な計算量は O(H*W)
7.
範囲和の処理
例えば次のようなクエリを処理することを考えよう。 +1 +1 +2 +1 +1 +2 +3 +2 +1 +1 +2 +1 +1
8.
範囲和の処理
累積和の逆変換を行うと次のような区間和になる。 +1 -1 +1 -1 +1 -1 -1 +1 -1 +1 -1 +1
9.
範囲和の処理
今度は斜め方向に累積和の逆変換をとる。 +1 -1 +1 -1
10.
範囲和の処理
こっち方向でも逆変換。 -1 -1 +1 +1
11.
細かいところ:端の処理
ピラミッド型範囲和が端で途切れると処理が面倒 なので、行列を拡大して考えると楽。 実際の行列 の範囲
12.
解法まとめ
端で途切れるのを防ぐため、行列を拡大する。 Q 個のクエリを処理する。右下方向と左下方向に 分けてそれぞれ定数箇所に値を加える。 右下方向と左下方向で累積和をとる。 右下方向と左下方向の累積和を重ね合わせる。 重ね合わせたものの 2 次元累積和をとる。
13.
おまけ
同様の手法で次のような加算クエリも処理できる。 +1 +1 +1 +1 +1 +1 +2 +2 +2 +1 +1 +2 +3 +2 +1 +1 +2 +2 +2 +1 +1 +1 +1 +1 +1 Let's 逆変換 !
Download