åä¾›ã‹ã‚‰å¤§äººã¾ã§è„³ãƒˆãƒ¬ç³»ãƒ‘ズルゲームãŒæµè¡Œã—ã¦ã„ã¾ã™ã€‚我々もé…れをå–らã¬ã‚ˆã†ã€ãƒ‘ズルゲームを作ã£ã¦ã¿ã‚“ãªã§éŠã¶ã“ã¨ã«ã—ã¾ã—ãŸã€‚
我々ãŒè€ƒãˆãŸã®ã¯ã‚¸ã‚°ã‚½ãƒ¼ãƒ‘ズルã®ã‚²ãƒ¼ãƒ ã§ã€æœªå®Œæˆã®éƒ¨åˆ†ã‚’埋ã‚ã‚‹ã®ã«å¿…è¦ãªãƒ”ースをé¸ã¶ã¨ã„ã†ã‚‚ã®ã§ã™ã€‚図 1 (a) ã¯ãƒ‘ズルã®æž ã®ä¾‹ã§ã™ã€‚é»’ãŒåŸ‹ã¾ã£ã¦ã„る部分ã€ç™½ãŒæœªå®Œæˆã®éƒ¨åˆ†ã§ã™ã€‚ã“ã®ãƒ‘ズルを完æˆã™ã‚‹ã®ã«ä½¿ãˆã‚‹ãƒ”ースãŒå›³ 1 (b) ã®ã‚ˆã†ã«ä¸Žãˆã‚‰ã‚Œã¾ã™ã€‚ã“ã®ä¸ã‹ã‚‰ã€æž ã®ç™½ã„部分を埋ã‚ã‚‹ã“ã¨ãŒã§ãã‚‹é»’ã„ピースを 1 ã¤ä»¥ä¸Šé¸æŠžã—ã¾ã™ã€‚例ãˆã°ã€å›³ 2 ã®é¸æŠžä¾‹ 1 ã®ã‚ˆã†ãªçµ„ã¿åˆã‚ã›ãªã‚‰æ£è§£ã¨ãªã‚Šã¾ã™ã€‚一方ã€é¸æŠžä¾‹ 2 ã®ã‚ˆã†ãªçµ„ã¿åˆã‚ã›ã§ã¯ãƒ‘ズルã¯å®Œæˆã—ãªã„ã®ã§ä¸æ£è§£ã¨ãªã‚Šã¾ã™ã€‚ã¾ãŸã€é¸æŠžã—ãŸãƒ”ースãŒä½™ã£ã¦ã—ã¾ã†å ´åˆã‚‚ä¸æ£è§£ã§ã™ã€‚ã“ã®ã‚ˆã†ã«ã€ãƒ—レイヤーã¯é©åˆ‡ãªãƒ”ースをé¸æŠžã™ã‚‹ã“ã¨ã§ã‚²ãƒ¼ãƒ をクリアã—ã¾ã™ã€‚
ãã“ã§ã“ã®ãƒ‘ズルゲームã§ç”¨ã„る判定プãƒã‚°ãƒ©ãƒ を開発ã™ã‚‹ã“ã¨ã«ãªã‚Šã¾ã—ãŸã€‚未完æˆã®ãƒ‘ズルã€ãƒ”ースã®å€™è£œã€ãã—ã¦ãƒ—レイヤーãŒé¸ã‚“ã ピースã®çµ„ã¿åˆã‚ã›ã‚’入力ã¨ã—ã€ãƒ—レイヤーãŒé©åˆ‡ãªãƒ”ースをé¸ã¶ã“ã¨ãŒã§ãã¦ã„れ㰠YES ã‚’ã€ãã†ã§ãªã‘れ㰠NO ã¨å‡ºåŠ›ã™ã‚‹ãƒ—ãƒã‚°ãƒ©ãƒ を作æˆã—ã¦ãã ã•ã„。
ã“ã®å•é¡Œã§ã¯ã€ãƒ‘ズルã®æž 㯠H × W ã®é…列ã§è¡¨ã—ã€æœªå®Œæˆã®éƒ¨åˆ†ã‚’ . (åŠè§’ピリオド)ã€å®Œæˆã—ã¦ã„る部分を # (åŠè§’シャープ)ã«ã‚ˆã£ã¦ä¸Žãˆã¾ã™ã€‚パズルã®æž ã®å¤§ãã•ã¯æœ€å¤§ 20 × 20 ã¨ã—ã¾ã™ã€‚ã¾ãŸã€å„ピース㯠h × w ã®é…列ã§è¡¨ã—ã€ãƒ”ースを構æˆã™ã‚‹éƒ¨åˆ†ã‚’ # ã€ãã†ã§ãªã„部分を . ã«ã‚ˆã£ã¦ä¸Žãˆã¾ã™ã€‚与ãˆã‚‰ã‚Œã‚‹å„ピースã¯ã€å…ƒã®çŠ¶æ…‹ã‹ã‚‰ 90 度ã€180 度ã€270 度ã ã‘回転ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã¾ãŸã€å„ピースã®å¤§ãã•ã¯æœ€å¤§ 20 × 20 ã¨ã—ã€ä¸Žãˆã‚‰ã‚Œã‚‹ãƒ”ースã®æ•° n ã¯æœ€å¤§ 10 ã¨ã—ã¾ã™ã€‚
複数ã®ãƒ‡ãƒ¼ã‚¿ã‚»ãƒƒãƒˆãŒä¸Žãˆã‚‰ã‚Œã¾ã™ã€‚å„データセットã¯ä»¥ä¸‹ã®å½¢å¼ã§ä¸Žãˆã‚‰ã‚Œã¾ã™ã€‚
H W g1,1g1,2...g1,W g2,1g2,2...g2,W : gH,1gH,2...gH,W n h1 w1 c11,1c11,2...c11,w1 c12,1c12,2...c12,w1 : c1h1,1c1h1,2...c1h1,w1 : : hn wn cn1,1cn1,2...cn1,wn cn2,1cn2,2...cn2,wn : cnhn,1cnhn,2...cnhn,wn p k1 t1 t2 ... tk1 k2 t1 t2 ... tk2 : kp t1 t2 ... tkp
1 行目ã«ã€ãƒ‘ズルã®æž ã®å¤§ãã• H(縦) 㨠W(横) ãŒä¸Žãˆã‚‰ã‚Œã¾ã™ã€‚ 2 行目ã«ã€æ–‡å— gi,j (. ã¾ãŸã¯ #) ã‹ã‚‰ãªã‚Šãƒ‘ズルã®ç›¤é¢ã‚’表㙠1 è¡Œ W æ–‡å—ã®æ–‡å—列㌠H 行与ãˆã‚‰ã‚Œã¾ã™ã€‚
続ã„ã¦ãƒ”ースã®æ•° nã€n 個ã®ãƒ”ースã®æƒ…å ±ãŒä¸Žãˆã‚‰ã‚Œã¾ã™ã€‚å„ピースã®æƒ…å ±ã¨ã—ã¦ã€l 番目ã®ãƒ”ースã®é…列ã®ã‚µã‚¤ã‚º hl (縦) 㨠wl (横)ã€l 番目ã®ãƒ”ースã®é…列ãŒä¸Žãˆã‚‰ã‚Œã¾ã™ã€‚l 番目ã®ãƒ”ースã®é…列ã¨ã—ã¦æ–‡å— cli,j (. ã¾ãŸã¯ #) ã‹ã‚‰ãªã‚‹ 1 è¡Œ wl æ–‡å—ã®æ–‡å—列㌠hl 行与ãˆã‚‰ã‚Œã¾ã™ã€‚
続ã„ã¦ãƒ—レイヤーã®äººæ•° pã€i 番目ã®ãƒ—レイヤーã®é¸æŠžã—ãŸãƒ”ースã®æ•° ki ã¨é¸æŠžã—ãŸãƒ”ースã®ç•ªå· tj ãŒä¸Žãˆã‚‰ã‚Œã¾ã™ã€‚
入力ã¯ï¼’ã¤ã® 0 ã‚’å«ã‚€è¡Œã§çµ‚了ã—ã¾ã™ã€‚データセットã®æ•°ã¯ 10 を超ãˆã¾ã›ã‚“。
å„データセットã”ã¨ã«ã€i 番目ã®ãƒ—レイヤーãŒé¸æŠžã—ãŸãƒ”ースã®æ£å¦ YES ã¾ãŸã¯ NO ã‚’ i 行目ã«å‡ºåŠ›ã—ã¦ãã ã•ã„。
14 20 #################### ###.............#### ####..........###### #######.....######## ########.....####### ###..###......###### ###..####......##### #########......##### ###########.....#### ############.....### ###.########......## ###.#######...###.## ##...###....#####.## #################### 10 12 15 #############.. .##########.... ....#####...... .....#####..... .....######.... ......######... ......######... ........#####.. .........#####. .........###### ........###...# .....####.....# 3 3 #.. ### #.. 2 2 ## ## 4 10 ....#####. ....###### ...###...# ####.....# 6 5 ....# ..### ##### ##.## #..## #..#. 6 4 ...# .### #### ##.# ##.# #... 2 6 ###### .##### 2 7 ..##### ####### 2 13 ############# .##########.. 6 9 #####.... .######.. .######.. ..######. ...#####. ....##### 8 3 1 2 3 4 1 2 3 4 7 2 3 4 5 6 7 8 5 2 3 10 7 8 6 2 3 9 5 6 4 8 2 3 4 6 9 5 4 10 4 4 5 6 9 5 10 2 3 4 9 0 0
YES NO YES NO YES NO NO YES