SlideShare a Scribd company logo
1 of 9
J: Hanimon
作問:勝田@WinField95
データ作成:勝田, 千田@NCA29958313
解説:大桃@zukky162
1
問題概要
 1辺がx個の正六角形からなる六角形状のグリッドを、
サイズxの六角模様と呼ぶことにする。
2
問題概要
 サイズNの六角模様があり、各マスの数字は0 or 1
 サイズP(P≦N)の六角模様がQ個与えられる。これらの
模様の各マスの数字も同じく0 or 1
 サイズPのQ個の模様すべてがサイズNの模様の一部
に含まれているかどうかを判定せよ。
3
解法
1 1 1 1 1 1 x x x x x
1 0 0 0 0 1 0 x x x x
1 0 1 0 0 1 0 1 x x x
1 1 1 1 1 1 1 0 0 x x
0 0 1 0 0 0 1 0 1 1 x
1 1 1 0 1 0 0 1 1 0 1
x 0 1 0 1 0 0 1 1 1 0
x x 0 1 1 1 1 0 0 1 1
x x x 0 0 0 0 1 0 1 0
x x x x 1 1 1 0 1 1 0
x x x x x 0 1 1 0 0 1 4
 とりあえず、六角模様を二次元グリッドに落としこむ
解法
 サイズがnの六角模様は、1辺がnの正方形が連続して
2n-1個並んだものとして見ることが出来る。
5
1 1 1 1 1 1 x x x x x
1 0 0 0 0 1 0 x x x x
1 0 1 0 0 1 0 1 x x x
1 1 1 1 1 1 1 0 0 x x
0 0 1 0 0 0 1 0 1 1 x
1 1 1 0 1 0 0 1 1 0 1
x 0 1 0 1 0 0 1 1 1 0
x x 0 1 1 1 1 0 0 1 1
x x x 0 0 0 0 1 0 1 0
x x x x 1 1 1 0 1 1 0
x x x x x 0 1 1 0 0 1
解法
 1次元のローリングハッシュを2次元(長方形)のローリン
グハッシュに応用できることが知られている
(蟻本第二版P. 333)
 六角模様は正方形の列として見ることができるので、上
記の方法を応用することで、六角模様にもローリング
ハッシュが使える。
6
解法
 サイズPのQ個の模様のハッシュ値を事前に計算し、そ
れらがサイズNの模様に含まれるかどうかを、ローリング
ハッシュで計算する。
 サイズが6の六角模様から
サイズが3の六角模様を
探す場合は、矢印の場所
からその方向にローリング
ハッシュを行う。
 O(QP2logQ + N2logQ)
7
1 1 1 1 1 1 x x x x x
1 0 0 0 0 1 0 x x x x
1 0 1 0 0 1 0 1 x x x
1 1 1 1 1 1 1 0 0 x x
0 0 1 0 0 0 1 0 1 1 x
1 1 1 0 1 0 0 1 1 0 1
x 0 1 0 1 0 0 1 1 1 0
x x 0 1 1 1 1 0 0 1 1
x x x 0 0 0 0 1 0 1 0
x x x x 1 1 1 0 1 1 0
x x x x x 0 1 1 0 0 1
ジャッジ解
 大桃(C++, 110行)
 勝田 旧ソルバー (C++, 111行)
 千田 旧ソルバー (C++, 135行)
8
結果
 First Submission:
 On-site: -- (-- mins)
 Online: japlj (161 mins)
 First Accepted:
 On-site: -- (-- mins)
 Online: japlj (171 mins)
 Success Rate: 4 / 16 (25.00%)
9

More Related Content

More from s1190048

RUPC2014_Day2_L
RUPC2014_Day2_LRUPC2014_Day2_L
RUPC2014_Day2_Ls1190048
 
RUPC2014_Day2_K
RUPC2014_Day2_KRUPC2014_Day2_K
RUPC2014_Day2_Ks1190048
 
RUPC2014_Day2_I
RUPC2014_Day2_IRUPC2014_Day2_I
RUPC2014_Day2_Is1190048
 
RUPC2014_Day2_H
RUPC2014_Day2_HRUPC2014_Day2_H
RUPC2014_Day2_Hs1190048
 
RUPC2014_Day2_G
RUPC2014_Day2_GRUPC2014_Day2_G
RUPC2014_Day2_Gs1190048
 
RUPC2014_Day2_E
RUPC2014_Day2_ERUPC2014_Day2_E
RUPC2014_Day2_Es1190048
 
RUPC2014_Day2_F
RUPC2014_Day2_FRUPC2014_Day2_F
RUPC2014_Day2_Fs1190048
 
RUPC2014_Day2_D
RUPC2014_Day2_DRUPC2014_Day2_D
RUPC2014_Day2_Ds1190048
 
RUPC2014_Day2_C
RUPC2014_Day2_CRUPC2014_Day2_C
RUPC2014_Day2_Cs1190048
 
RUPC2014_Day2_B
RUPC2014_Day2_BRUPC2014_Day2_B
RUPC2014_Day2_Bs1190048
 
RUPC2014_Day2_A
RUPC2014_Day2_ARUPC2014_Day2_A
RUPC2014_Day2_As1190048
 

More from s1190048 (11)

RUPC2014_Day2_L
RUPC2014_Day2_LRUPC2014_Day2_L
RUPC2014_Day2_L
 
RUPC2014_Day2_K
RUPC2014_Day2_KRUPC2014_Day2_K
RUPC2014_Day2_K
 
RUPC2014_Day2_I
RUPC2014_Day2_IRUPC2014_Day2_I
RUPC2014_Day2_I
 
RUPC2014_Day2_H
RUPC2014_Day2_HRUPC2014_Day2_H
RUPC2014_Day2_H
 
RUPC2014_Day2_G
RUPC2014_Day2_GRUPC2014_Day2_G
RUPC2014_Day2_G
 
RUPC2014_Day2_E
RUPC2014_Day2_ERUPC2014_Day2_E
RUPC2014_Day2_E
 
RUPC2014_Day2_F
RUPC2014_Day2_FRUPC2014_Day2_F
RUPC2014_Day2_F
 
RUPC2014_Day2_D
RUPC2014_Day2_DRUPC2014_Day2_D
RUPC2014_Day2_D
 
RUPC2014_Day2_C
RUPC2014_Day2_CRUPC2014_Day2_C
RUPC2014_Day2_C
 
RUPC2014_Day2_B
RUPC2014_Day2_BRUPC2014_Day2_B
RUPC2014_Day2_B
 
RUPC2014_Day2_A
RUPC2014_Day2_ARUPC2014_Day2_A
RUPC2014_Day2_A
 

RUPC2014_Day2_J