剪郵票
如【圖1.jpg】, 有12張連在一起的12生肖的郵票。
現在你要從中剪下5張來,要求必須是連著的。
(僅僅連線乙個角不算相連)
比如,【圖2.jpg】,【圖3.jpg】中,粉紅色所示部分就是合格的剪取。
請你計算,一共有多少種不同的剪取方法。
思路:先找到5個數的組合,然後從第乙個數字開始遍歷,經過上下左右操作檢測5個數是否都被訪問一遍,如果5個數都可以遍歷到則種類+1。
圖中向上為-4,向下為+4,向左為-1,向右為+1,但是遇到3 4 5 7 8這種4+1=5但是這種情況不符合,需注意。
答案:116
#include #include #include int record[100000][5] = ;
int new_record[5] = ;
int visit[13] = ;
int count = 0;
bool judge(int x)//判斷是否相鄰,相鄰返回true
else if( (abs(new_record[x] - new_record[i]) == 1) || (abs(new_record[x] - new_record[i]) == 4) )//相鄰
return true;
}return false;
}bool judgeend(int count)//判斷是否重複,不重複返回true
; for(int i = count - 1; i >= 0; i--)
;for(int j = 0; j < 5; j++)
}int flag = 0;//重複
for(int j = 0; j < 5; j++)
}if(!flag)//重複
return false;
}for(int i = count - 1; i >= 0; i--)
//不重複
return true;
}void fun(int x)
return;
}for(int i = 1; i <= 12; i++)
}int main()
return 0;
}
DFS 藍橋杯試題 剪郵票
填空題 如 圖1.jpg 有12張連在一起的12生肖的郵票。現在你要從中剪下5張來,要求必須是連著的。僅僅連線乙個角不算相連 比如,圖2.jpg 圖3.jpg 中,粉紅色所示部分就是合格的剪取。請你計算,一共有多少種不同的剪取方法。請填寫表示方案數目的整數。注意 你提交的應該是乙個整數,不要填寫任何...
藍橋杯 剪郵票
剪郵票如 圖1.jpg 有12張連在一起的12生肖的郵票。現在你要從中剪下5張來,要求必須是連著的。僅僅連線乙個角不算相連 比如,圖2.jpg 圖3.jpg 中,粉紅色所示部分就是合格的剪取。請你計算,一共有多少種不同的剪取方法。請填寫表示方案數目的整數。注意 你提交的應該是乙個整數,不要填寫任何多...
藍橋杯 剪郵票
這道題,第一眼看知道是從12個數中選擇5個,然後dfs,但是就是不知道怎麼寫才好,看了一些別人寫的,大部分都是用c c 寫的,參考別人的,再自己修改,寫了這樣的,應該算是很好理解的,附上參考的package lanqiaocuprealtest 這裡也和別人的一樣,把數字改過了,5,6,7,8,改為...