各点に次数の条件を付けることで、タイルを回転してできるという条件をうまくグラフ理論の言葉に置き換えできたかのように思えます。 しかし、点の次数が2と対応するタイルは2種類あり、次数の条件だけではタイルを区別できる条件とはなっていません。 L字タイルとI字タイル 点の次数が2と対応する2種類のタイルを、L字タイル、I字タイルと名付けて呼ぶことにします。 L字タイルとI字タイルの上にある点には次数2という条件に加え、もう少し条件を付けましょう。 I字タイルの上にある点の周りの辺は、下図のどちらかになっています。 同様にL字タイルの上にある点の周りの辺は、下図のどれかになっています。 条件は上のもので正しいのですが、Graphillionでは「どれか」といったOR条件を付けるよりもAND条件を付ける方が簡単な都合上、L字タイル、I字タイルのお互いの条件を否定した条件を付けると良いです。 I字タイ
![Pythonとグラフ理論で全国小中学生プログラミング大会グランプリ作品を解く](https://cdn-ak-scissors.b.st-hatena.com/image/square/27b9e20ad5c9b7b9e51f4dde86f362d1668138df/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9UHl0aG9uJUUzJTgxJUE4JUUzJTgyJUIwJUUzJTgzJUE5JUUzJTgzJTk1JUU3JTkwJTg2JUU4JUFCJTk2JUUzJTgxJUE3JUU1JTg1JUE4JUU1JTlCJUJEJUU1JUIwJThGJUU0JUI4JUFEJUU1JUFEJUE2JUU3JTk0JTlGJUUzJTgzJTk3JUUzJTgzJUFEJUUzJTgyJUIwJUUzJTgzJUE5JUUzJTgzJTlGJUUzJTgzJUIzJUUzJTgyJUIwJUU1JUE0JUE3JUU0JUJDJTlBJUUzJTgyJUIwJUUzJTgzJUE5JUUzJTgzJUIzJUUzJTgzJTk3JUUzJTgzJUFBJUU0JUJEJTlDJUU1JTkzJTgxJUUzJTgyJTkyJUU4JUE3JUEzJUUzJTgxJThGJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmcz0xYjA3YTAzZTQxZDdmNjc2MjQ5ZDdhNDFlYzQ0YTBmOA%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBtYXNjaWkmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTdiODEwNTg1YmNiMjFhZWZlMGU0OTk1NjY3N2IyNjI4%26blend-x%3D142%26blend-y%3D436%26blend-mode%3Dnormal%26txt64%3DaW4g5qCq5byP5Lya56S-44OT44K244K544Kv%26txt-width%3D770%26txt-clip%3Dend%252Cellipsis%26txt-color%3D%2523212121%26txt-font%3DHiragino%2520Sans%2520W6%26txt-size%3D36%26txt-x%3D156%26txt-y%3D536%26s%3D5b59eae5772c83b3973385b897ecf75e)