2017蓝桥杯省赛---java---A---4(方格分割)
生活随笔
收集整理的這篇文章主要介紹了
2017蓝桥杯省赛---java---A---4(方格分割)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
思路分析
dfs
題目要求沿著格子的邊線剪成兩個部分,仔細觀察,剪開的邊線是關于中心點(3,3)對稱的,于是我們從(3,3)開始搜索,直到搜到邊界則退出。需要注意的是要從(3,3)點開始向兩個方向同時搜索,并且這里兩個方向是相反的。最后得出的結果要除以4,因為旋轉堆成的屬于同一種分割法。
代碼實現
package lanqiao;public class Main {static int dir[][] = {{0,1}, {0,-1}, {1,0}, {-1,0}};static int vis[][]=new int[7][7];static int ans = 0;public static void dfs(int x, int y){if(x == 0 || y == 0 || x == 6 || y == 6){//到邊界的時候返回ans++;return ;}for(int i = 0; i < 4; i++){int x1 = x + dir[i][0];int y1 = y + dir[i][1];int x2 = 6 - x1;int y2 = 6 - y1;if(x1 >= 0 && y1 >= 0 && x1 <= 6 && y1 <= 6){if(vis[x1][y1]!=1){//回溯vis[x1][y1] = vis[x2][y2] = 1;dfs(x1,y1);vis[x1][y1] = vis[x2][y2] = 0;}}}}public static void main(String[] args) {vis[3][3] = 1;dfs(3,3);System.out.println(ans/4);}}答案
509
總結
以上是生活随笔為你收集整理的2017蓝桥杯省赛---java---A---4(方格分割)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 比博燃是什么意思 怎么理解比博燃的意思
- 下一篇: bci棉是什么意思 bci棉解释