SlideShare a Scribd company logo
1 of 20
Download to read offline
HCPC 勉強会 2017/03/28
ー座標圧縮ー
担当:D1 鈴木 浩史
2017/3/28 HCPC 勉強会ー座圧ー 1
座標圧縮とは
• 広大な領域を対象とする問題はコンピュータの
手におえない
• 例①:1018の直線領域はメモリに乗らない
• 例②:109 × 109の格子領域も同様
• 単位領域あたり1bitで持っても~105
TB
• それ,不要な領域,ありませんか?
• はいプロ 世界一メモリ節約が上手 メモリ界の
tourist メモリ不足に終焉を告げる者 実質座圧 メモ
リ節約のために生まれてきた男
2017/3/28 HCPC 勉強会ー座圧ー 2
座圧の感覚
2017/3/28 HCPC 勉強会ー座圧ー 3
座圧入門(1次元)
ABC036 C問題「座圧」
• 長さ𝑛の数列𝑎 = (𝑎1 … 𝑎 𝑛)が与えられるので,
以下を満たす数列𝑏 = (𝑏1 … 𝑏 𝑛)を求めよ.
• 𝑏𝑖 ≥ 0
• 𝑎𝑖 < 𝑎𝑗 → 𝑏𝑖 < 𝑏𝑗
• 𝑎𝑖 = 𝑎𝑗 → 𝑏𝑖 = 𝑏𝑗
• 各𝑏𝑖は考えうる中で最小
• 制約
• 1 ≤ 𝑛 ≤ 105
• 0 ≤ 𝑎𝑖 ≤ 109
𝑎 = (3 3 1 6 1)
𝑏 = (1 1 0 2 0)
※一意に定まる
2017/3/28 HCPC 勉強会ー座圧ー 4
考察
• 𝑏は𝑎の各要素の大小関係を保存する
• ソートしてみるとわかりやすい
𝑎 = (3 3 1 6 1)をソートした列は以下のようになる.
𝑎 𝑠𝑜𝑟𝑡 = (1 1 3 3 6)
1を0に置き換えると,𝑎 𝑠𝑜𝑟𝑡の各要素の大小関係は
𝑎 𝑠𝑜𝑟𝑡
′
= (0 0 1 1 2)
でも表現可能であり,元の順序に戻すと
𝑏 = (1 1 0 2 0)
2017/3/28 HCPC 勉強会ー座圧ー 5
要するに座圧とは
• 各値の大小関係(や位置関係など)を崩さないように,
新しい数値を割当てること
• 座圧後の座標幅は𝑂 𝑛
※問題によって定数倍が異なる
• 座圧するにはソートと再割り当てが基本で𝑂(𝑛 log 𝑛)
• サンプルコードはtsukasa_diaryのgithubに
2017/3/28 HCPC 勉強会ー座圧ー 6
座圧入門(2次元)
蟻本「領域の個数」
• 𝑤 × ℎの格子領域に𝑛本の縦 or 横の直線が引か
れている.直線によって区切られている領域の
個数を求めよ.
• 制約
• 1 ≤ 𝑤, ℎ ≤ 106
• 1 ≤ 𝑛 ≤ 500
• 直線は始点と終点で表現
1 2 3
4
5 6
2017/3/28 HCPC 勉強会ー座圧ー 7
領域の数え方
• まだ訪問していない格子があれば探索を開始
• 直線を超えないようにBFSなど
⇒探索を開始した回数が領域の個数
• 右の例では6回探索している
• 領域も6個
2017/3/28 HCPC 勉強会ー座圧ー 8
問題点
• 座標幅がでかい
最大で106 ⇒106 × 106の領域はMLE
2017/3/28 HCPC 勉強会ー座圧ー 9
座圧する
• 各端点の座標を使って座圧⇒優勝
𝑂(𝑛)⇒𝑂(𝑛2)の探索は余裕
最大で106 ⇒106 × 106の領域はMLE
2017/3/28 HCPC 勉強会ー座圧ー 10
座圧の際の注意点
• 各軸について,端点の座標,座標の最小値1,および最
大値𝑤, ℎを入れて,前問と同様に座圧⇒間違い
領域を増やすプロ
𝑥軸について 1 4 6 9 10 → (1 2 3 4 5)
2017/3/28 HCPC 勉強会ー座圧ー 11
当問題の正しい座圧
• さらに端点の右と上に余白座標を追加して座圧し,余
白座標以外の相対位置だけ取り出す
𝑥軸について 1 4 6 9 10 → 1 4 5 6 7 9 10 → (1 2 4 6 7)
座圧のプロ
2017/3/28 HCPC 勉強会ー座圧ー 12
サンプルコード
• tsukasa_diaryのgithub(verifyできてません)
2017/3/28 HCPC 勉強会ー座圧ー 13
座圧の応用
AOJ 2426「Treasure Hunt」
• 𝑛個の点と,𝑚個の矩形領域が与えられる.
• 各矩形領域に含まれる点の数を求めよ.
• 制約
• 1 ≤ 𝑛 ≤ 5000
• 1 ≤ 𝑚 ≤ 5 × 105
• 矩形領域は軸に平行で左上と右下の座標が入力
• 座標値は−109~109ですべて整数
2017/3/28 HCPC 勉強会ー座圧ー 14
考察
• 各点について各領域に含まれるかどうか検査
⇒𝑂(𝑛𝑚)はTLE
• 点のある座標に1,そうでない座標に0を割り当て,2次
元累積和を前計算
⇒各矩形領域に対して𝑂 1
⇒累積和の領域が大きい…
⇒おや…?
0 0 1 1 0 0
0 0 0 0 0 0
0 0 1 0 0 0
1 0 0 1 0 0
0 0 0 0 0 0
0 0 1 0 0 1
0 0 1 2 2 2
0 0 1 2 2 2
0 0 2 3 3 3
1 1 3 5 5 5
1 1 3 5 5 5
1 1 4 6 6 7
(0,0)と(𝑥, 𝑦)による矩形領域内の点数の2次元累積和
⇒任意の矩形領域の点数を𝑂(1)で計算可能
※次ページで補足
2017/3/28 HCPC 勉強会ー座圧ー 15
2次元累積和(補足)
• 𝑥軸方向の累積和を取った後,𝑦軸方向の累積和
• 左上が(𝑥1, 𝑦1),右下が(𝑥2, 𝑦2)の矩形領域の和は
• 𝑠𝑢𝑚 𝑦2 𝑥2 − 𝑠𝑢𝑚 𝑦1 − 1 𝑥2 − 𝑠𝑢𝑚 𝑦2 𝑥1 − 1 + 𝑠𝑢𝑚[𝑦1 − 1][𝑥1 − 1]
0 1 1 0
0 1 0 0
1 0 1 0
0 1 0 1
0 1 2 2
0 2 3 3
1 3 5 5
1 4 6 7
0 1 2 2
0 1 1 1
1 1 2 2
0 1 1 2
𝑥軸方向 𝑦軸方向
0 1 2 2
0 2 3 3
1 3 5 5
1 4 6 7
5 − 2 − 1 + 0 = 2
2017/3/28 HCPC 勉強会ー座圧ー 16
座圧した領域で累積和
0 0 1 1 0 0
0 0 0 0 0 0
0 0 1 0 0 0
1 0 0 1 0 0
0 0 0 0 0 0
0 0 1 0 0 1
0 1 1 0
0 1 0 0
1 0 1 0
0 1 0 1
0 1 2 2
0 2 3 3
1 3 5 5
1 4 6 7
座圧
累積和
※座圧してから行列を作る
2017/3/28 HCPC 勉強会ー座圧ー 17
各矩形領域の点数を知る
• 入力の矩形領域を座圧した領域に写像
• 左上の点で,各軸についてlower_boundとなる点を探す
• 右下の点で,各軸についてupper_boundとなる点を探す
• その元座標の座圧後の座標に写像
0 0 1 1 0 0
0 0 0 0 0 0
0 0 1 0 0 0
1 0 0 1 0 0
0 0 0 0 0 0
0 0 1 0 0 1
0 1 1 0
0 1 0 0
1 0 1 0
0 1 0 1
写像
0 1 2 2
0 2 3 3
1 3 5 5
1 4 6 7
2017/3/28 HCPC 勉強会ー座圧ー 18
サンプルコード
• tsukasa_diaryのgithub 𝑂(𝑛2
+ (𝑛 + 𝑚) log 𝑛)
2017/3/28 HCPC 勉強会ー座圧ー 19
おしまい
しっかり練習して座圧のプロになろう!
2017/3/28 HCPC 勉強会ー座圧ー 20

More Related Content

What's hot

二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方Kensuke Otsuki
 
AtCoder Regular Contest 001
AtCoder Regular Contest 001AtCoder Regular Contest 001
AtCoder Regular Contest 001AtCoder Inc.
 
指数時間アルゴリズム入門
指数時間アルゴリズム入門指数時間アルゴリズム入門
指数時間アルゴリズム入門Yoichi Iwata
 
AtCoder Regular Contest 039 解説
AtCoder Regular Contest 039 解説AtCoder Regular Contest 039 解説
AtCoder Regular Contest 039 解説AtCoder Inc.
 
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~Takuya Akiba
 
Code Formula 2014 予選A 解説
Code Formula 2014 予選A 解説Code Formula 2014 予選A 解説
Code Formula 2014 予選A 解説AtCoder Inc.
 
AtCoder Beginner Contest 015 解説
AtCoder Beginner Contest 015 解説AtCoder Beginner Contest 015 解説
AtCoder Beginner Contest 015 解説AtCoder Inc.
 
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造Takuya Akiba
 
DDPC 2016 予選 解説
DDPC 2016 予選 解説DDPC 2016 予選 解説
DDPC 2016 予選 解説AtCoder Inc.
 
AtCoder Beginner Contest 006 解説
AtCoder Beginner Contest 006 解説AtCoder Beginner Contest 006 解説
AtCoder Beginner Contest 006 解説AtCoder Inc.
 
AtCoder Regular Contest 036 解説
AtCoder Regular Contest 036 解説AtCoder Regular Contest 036 解説
AtCoder Regular Contest 036 解説AtCoder Inc.
 
2SAT(充足可能性問題)の解き方
2SAT(充足可能性問題)の解き方2SAT(充足可能性問題)の解き方
2SAT(充足可能性問題)の解き方Tsuneo Yoshioka
 
AtCoder Regular Contest 016 解説
AtCoder Regular Contest 016 解説AtCoder Regular Contest 016 解説
AtCoder Regular Contest 016 解説AtCoder Inc.
 
AtCoder Regular Contest 029 解説
AtCoder Regular Contest 029 解説AtCoder Regular Contest 029 解説
AtCoder Regular Contest 029 解説AtCoder Inc.
 
AtCoder Regular Contest 032 解説
AtCoder Regular Contest 032 解説AtCoder Regular Contest 032 解説
AtCoder Regular Contest 032 解説AtCoder Inc.
 

What's hot (20)

二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
 
AtCoder Regular Contest 001
AtCoder Regular Contest 001AtCoder Regular Contest 001
AtCoder Regular Contest 001
 
動的計画法を極める!
動的計画法を極める!動的計画法を極める!
動的計画法を極める!
 
Convex Hull Trick
Convex Hull TrickConvex Hull Trick
Convex Hull Trick
 
指数時間アルゴリズム入門
指数時間アルゴリズム入門指数時間アルゴリズム入門
指数時間アルゴリズム入門
 
目指せグラフマスター
目指せグラフマスター目指せグラフマスター
目指せグラフマスター
 
AtCoder Regular Contest 039 解説
AtCoder Regular Contest 039 解説AtCoder Regular Contest 039 解説
AtCoder Regular Contest 039 解説
 
RMQ クエリ処理
RMQ クエリ処理RMQ クエリ処理
RMQ クエリ処理
 
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
 
Code Formula 2014 予選A 解説
Code Formula 2014 予選A 解説Code Formula 2014 予選A 解説
Code Formula 2014 予選A 解説
 
AtCoder Beginner Contest 015 解説
AtCoder Beginner Contest 015 解説AtCoder Beginner Contest 015 解説
AtCoder Beginner Contest 015 解説
 
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
 
DDPC 2016 予選 解説
DDPC 2016 予選 解説DDPC 2016 予選 解説
DDPC 2016 予選 解説
 
abc027
abc027abc027
abc027
 
AtCoder Beginner Contest 006 解説
AtCoder Beginner Contest 006 解説AtCoder Beginner Contest 006 解説
AtCoder Beginner Contest 006 解説
 
AtCoder Regular Contest 036 解説
AtCoder Regular Contest 036 解説AtCoder Regular Contest 036 解説
AtCoder Regular Contest 036 解説
 
2SAT(充足可能性問題)の解き方
2SAT(充足可能性問題)の解き方2SAT(充足可能性問題)の解き方
2SAT(充足可能性問題)の解き方
 
AtCoder Regular Contest 016 解説
AtCoder Regular Contest 016 解説AtCoder Regular Contest 016 解説
AtCoder Regular Contest 016 解説
 
AtCoder Regular Contest 029 解説
AtCoder Regular Contest 029 解説AtCoder Regular Contest 029 解説
AtCoder Regular Contest 029 解説
 
AtCoder Regular Contest 032 解説
AtCoder Regular Contest 032 解説AtCoder Regular Contest 032 解説
AtCoder Regular Contest 032 解説
 

Similar to Za atsu-20170328

暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学MITSUNARI Shigeo
 
AtCoder Beginner Contest 035 解説
AtCoder Beginner Contest 035 解説AtCoder Beginner Contest 035 解説
AtCoder Beginner Contest 035 解説AtCoder Inc.
 
ニューラル論文を読む前に
ニューラル論文を読む前にニューラル論文を読む前に
ニューラル論文を読む前にHayahide Yamagishi
 
AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 008 解説AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 008 解説AtCoder Inc.
 
AtCoder Regular Contest 027 解説
AtCoder Regular Contest 027 解説AtCoder Regular Contest 027 解説
AtCoder Regular Contest 027 解説AtCoder Inc.
 
充足可能性問題のいろいろ
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろHiroshi Yamashita
 
Computing for Isogeny Kernel Problem by Groebner Basis
Computing for Isogeny Kernel Problem by Groebner BasisComputing for Isogeny Kernel Problem by Groebner Basis
Computing for Isogeny Kernel Problem by Groebner BasisYasu Math
 
第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)RCCSRENKEI
 
Operations research yonezawa_no2
Operations research yonezawa_no2Operations research yonezawa_no2
Operations research yonezawa_no2ssuser0bebd2
 
Indeedなう 予選B 解説
Indeedなう 予選B 解説Indeedなう 予選B 解説
Indeedなう 予選B 解説AtCoder Inc.
 
GPUによる多倍長整数乗算の高速化手法の提案とその評価
GPUによる多倍長整数乗算の高速化手法の提案とその評価GPUによる多倍長整数乗算の高速化手法の提案とその評価
GPUによる多倍長整数乗算の高速化手法の提案とその評価Koji Kitano
 
0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)MasanoriSuganuma
 
Schönhage Strassen Algorithm
Schönhage Strassen AlgorithmSchönhage Strassen Algorithm
Schönhage Strassen Algorithmcookies 146
 
CODE FESTIVAL 2015 予選B 解説
CODE FESTIVAL 2015 予選B 解説CODE FESTIVAL 2015 予選B 解説
CODE FESTIVAL 2015 予選B 解説AtCoder Inc.
 
kagamicomput201706
kagamicomput201706kagamicomput201706
kagamicomput201706swkagami
 
論文紹介:The wavelet matrix
論文紹介:The wavelet matrix論文紹介:The wavelet matrix
論文紹介:The wavelet matrixYuki Igarashi
 
レトリバ勉強会資料:深層学習による自然言語処理2章
レトリバ勉強会資料:深層学習による自然言語処理2章レトリバ勉強会資料:深層学習による自然言語処理2章
レトリバ勉強会資料:深層学習による自然言語処理2章Hiroki Iida
 

Similar to Za atsu-20170328 (19)

暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
AtCoder Beginner Contest 035 解説
AtCoder Beginner Contest 035 解説AtCoder Beginner Contest 035 解説
AtCoder Beginner Contest 035 解説
 
ニューラル論文を読む前に
ニューラル論文を読む前にニューラル論文を読む前に
ニューラル論文を読む前に
 
AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 008 解説AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 008 解説
 
AtCoder Regular Contest 027 解説
AtCoder Regular Contest 027 解説AtCoder Regular Contest 027 解説
AtCoder Regular Contest 027 解説
 
充足可能性問題のいろいろ
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろ
 
Computing for Isogeny Kernel Problem by Groebner Basis
Computing for Isogeny Kernel Problem by Groebner BasisComputing for Isogeny Kernel Problem by Groebner Basis
Computing for Isogeny Kernel Problem by Groebner Basis
 
第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)
 
Operations research yonezawa_no2
Operations research yonezawa_no2Operations research yonezawa_no2
Operations research yonezawa_no2
 
Indeedなう 予選B 解説
Indeedなう 予選B 解説Indeedなう 予選B 解説
Indeedなう 予選B 解説
 
Aizu-2017: B
Aizu-2017: BAizu-2017: B
Aizu-2017: B
 
GPUによる多倍長整数乗算の高速化手法の提案とその評価
GPUによる多倍長整数乗算の高速化手法の提案とその評価GPUによる多倍長整数乗算の高速化手法の提案とその評価
GPUによる多倍長整数乗算の高速化手法の提案とその評価
 
0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)
 
Schönhage Strassen Algorithm
Schönhage Strassen AlgorithmSchönhage Strassen Algorithm
Schönhage Strassen Algorithm
 
超複素数
超複素数超複素数
超複素数
 
CODE FESTIVAL 2015 予選B 解説
CODE FESTIVAL 2015 予選B 解説CODE FESTIVAL 2015 予選B 解説
CODE FESTIVAL 2015 予選B 解説
 
kagamicomput201706
kagamicomput201706kagamicomput201706
kagamicomput201706
 
論文紹介:The wavelet matrix
論文紹介:The wavelet matrix論文紹介:The wavelet matrix
論文紹介:The wavelet matrix
 
レトリバ勉強会資料:深層学習による自然言語処理2章
レトリバ勉強会資料:深層学習による自然言語処理2章レトリバ勉強会資料:深層学習による自然言語処理2章
レトリバ勉強会資料:深層学習による自然言語処理2章
 

More from HCPC: 北海道大学競技プログラミングサークル

More from HCPC: 北海道大学競技プログラミングサークル (20)

写像 12 相
写像 12 相写像 12 相
写像 12 相
 
ACPC 2017 Day3 F: 掛け算は楽しい
ACPC 2017 Day3 F: 掛け算は楽しいACPC 2017 Day3 F: 掛け算は楽しい
ACPC 2017 Day3 F: 掛け算は楽しい
 
ACPC 2017 Day3 D: 優柔不断
ACPC 2017 Day3 D: 優柔不断ACPC 2017 Day3 D: 優柔不断
ACPC 2017 Day3 D: 優柔不断
 
ACPC 2019 Day3 G: Restricted DFS
ACPC 2019 Day3 G: Restricted DFSACPC 2019 Day3 G: Restricted DFS
ACPC 2019 Day3 G: Restricted DFS
 
ACPC 2019 Day3 F: 部分文字列分解
ACPC 2019 Day3 F: 部分文字列分解ACPC 2019 Day3 F: 部分文字列分解
ACPC 2019 Day3 F: 部分文字列分解
 
ACPC 2019 Day3 E: 総和の切り取り
ACPC 2019 Day3 E: 総和の切り取りACPC 2019 Day3 E: 総和の切り取り
ACPC 2019 Day3 E: 総和の切り取り
 
ACPC 2019 Day3 B: パフェ
ACPC 2019 Day3 B: パフェACPC 2019 Day3 B: パフェ
ACPC 2019 Day3 B: パフェ
 
ACPC 2019 Day3 A: 間違い探し
ACPC 2019 Day3 A: 間違い探しACPC 2019 Day3 A: 間違い探し
ACPC 2019 Day3 A: 間違い探し
 
HUPC 2019 Day2 G: 木
HUPC 2019 Day2 G: 木HUPC 2019 Day2 G: 木
HUPC 2019 Day2 G: 木
 
HUPC 2019 Day2 E: ジャム
HUPC 2019 Day2 E: ジャムHUPC 2019 Day2 E: ジャム
HUPC 2019 Day2 E: ジャム
 
HUPC 2019 Day2 H: Revenge of UMG
HUPC 2019 Day2 H: Revenge of UMGHUPC 2019 Day2 H: Revenge of UMG
HUPC 2019 Day2 H: Revenge of UMG
 
HUPC 2019 Day2 F: MOD Rush
HUPC 2019 Day2 F: MOD RushHUPC 2019 Day2 F: MOD Rush
HUPC 2019 Day2 F: MOD Rush
 
HUPC 2019 Day2 C: 串刺し
HUPC 2019 Day2 C: 串刺しHUPC 2019 Day2 C: 串刺し
HUPC 2019 Day2 C: 串刺し
 
HUPC 2019 Day1 F: グリッドの番号
HUPC 2019 Day1 F: グリッドの番号HUPC 2019 Day1 F: グリッドの番号
HUPC 2019 Day1 F: グリッドの番号
 
HUPC 2019 Day1 E: 最短経路の復元
HUPC 2019 Day1 E: 最短経路の復元HUPC 2019 Day1 E: 最短経路の復元
HUPC 2019 Day1 E: 最短経路の復元
 
HUPC 2019 Day1 D: 貪欲が最適?
HUPC 2019 Day1 D: 貪欲が最適?HUPC 2019 Day1 D: 貪欲が最適?
HUPC 2019 Day1 D: 貪欲が最適?
 
HUPC 2019 Day1 C: 短絡評価
HUPC 2019 Day1 C: 短絡評価HUPC 2019 Day1 C: 短絡評価
HUPC 2019 Day1 C: 短絡評価
 
HUPC 2019 Day1 B: 自身の 2 倍
HUPC 2019 Day1 B: 自身の 2 倍HUPC 2019 Day1 B: 自身の 2 倍
HUPC 2019 Day1 B: 自身の 2 倍
 
HUPC 2019 Day1 A: four tea
HUPC 2019 Day1 A: four teaHUPC 2019 Day1 A: four tea
HUPC 2019 Day1 A: four tea
 
プログラミングコンテスト基礎テクニック
プログラミングコンテスト基礎テクニックプログラミングコンテスト基礎テクニック
プログラミングコンテスト基礎テクニック
 

Za atsu-20170328