藍橋杯試題 剪郵票 C語言

2021-07-30 04:54:34 字數 1311 閱讀 2846

剪郵票

如【圖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,改為...