日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第八届蓝桥杯决赛 磁砖样式

發(fā)布時間:2025/7/14 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第八届蓝桥杯决赛 磁砖样式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

標題:磁磚樣式

小明家的一面裝飾墻原來是 3*10 的小方格。
現(xiàn)在手頭有一批剛好能蓋住2個小方格的長方形瓷磚。
瓷磚只有兩種顏色:黃色和橙色。
小明想知道,對于這么簡陋的原料,可以貼出多少種不同的花樣來。
小明有個小小的強迫癥:忍受不了任何2*2的小格子是同一種顏色。
(瓷磚不能切割,不能重疊,也不能只鋪一部分。另外,只考慮組合圖案,請忽略瓷磚的拼縫)
顯然,對于 2*3 個小格子來說,口算都可以知道:一共10種貼法,如【p1.png所示】
但對于 3*10 的格子呢?肯定是個不小的數(shù)目,請你利用計算機的威力算出該數(shù)字。

注意:你需要提交的是一個整數(shù),不要填寫任何多余的內(nèi)容(比如:說明性文字)


?

思路

  去年比賽時被這題坑了,一直想用輪廓線動態(tài)規(guī)劃去做。。。其實直接暴力搜索就可以。

  依次枚舉每一個格子,每擺放滿一行,再嘗試去擺放下一行。在位置$(x,y)$處有兩種擺放方式:橫向和縱向。

  當擺滿所有格子的時候就檢查是否出現(xiàn)某個2*2的小格子是同一種顏色,以及這種擺放方式是否已經(jīng)計算過。我是采用二進制來表示每一種能鋪滿的情況,黃色用0表示,橙色用1表示,再用map來記錄和判斷是否重復計算。

?


?

詳細代碼

1 #include <stdio.h> 2 #include <string.h> 3 #include <map> 4 #include <algorithm> 5 using namespace std; 6 const int w = 3, h = 10; 7 int graph[w][h]; 8 int ans = 0; 9 10 map<int, int> Hash; 11 12 //檢查2x2格子顏色是否相同 13 bool check_color() { 14 for(int i = 0; i < w; i++) 15 for(int j = 0; j < h; j++) { 16 if(i+1 < w && j+1 < h) { 17 if((graph[i][j]+graph[i][j+1]+graph[i+1][j]+graph[i+1][j+1]) % 4 == 0) 18 return false; 19 } 20 } 21 return true; 22 } 23 24 void fill_with_tile(int x, int y) { 25 if(graph[x][y] == -1) { 26 //橫向擺放 27 if(y+1 < h && graph[x][y+1] == -1) { 28 29 for(int i = 0; i < 2; i++) { 30 graph[x][y] = graph[x][y+1] = i; 31 if(y == h-1) { //鋪下一行 32 fill_with_tile(x+1, 0); 33 } else { //鋪當前行的下一個格子 34 fill_with_tile(x, y+1); 35 } 36 graph[x][y] = graph[x][y+1] = -1; 37 } 38 39 } 40 //縱向擺放 41 if(x+1 < w && graph[x+1][y] == -1) { 42 for(int i = 0; i < 2; i++) { 43 graph[x][y] = graph[x+1][y] = i; 44 if(y == h-1) { //鋪下一行 45 fill_with_tile(x+1, 0); 46 } else { //鋪當前行的下一個格子 47 fill_with_tile(x, y+1); 48 } 49 graph[x][y] = graph[x+1][y] = -1; 50 } 51 } 52 } else { 53 if(x == w-1 && y == h-1) { //成功鋪滿 54 if(check_color()) { 55 //判斷是否出現(xiàn)重復情況 56 int ret = 0, bit = 1; 57 for(int i = 0; i < w; i++) 58 for(int j = 0; j < h; j++) { 59 ret += graph[i][j] * bit; 60 bit *= 2; 61 } 62 if(!Hash.count(ret)) { 63 Hash[ret] = 1; 64 ans++; 65 } 66 } 67 return; 68 } 69 if(y == h-1) { //鋪下一行 70 fill_with_tile(x+1, 0); 71 } else { //鋪當前行的下一個格子 72 fill_with_tile(x, y+1); 73 } 74 } 75 } 76 77 int main() { 78 memset(graph, -1, sizeof(graph)); 79 fill_with_tile(0, 0); 80 printf("%d\n", ans); 81 return 0; 82 }

?

只需要1s就算出來答案了,合理的鋪放方式共有101466種。

?


如有不當之處歡迎指出!

?

轉(zhuǎn)載于:https://www.cnblogs.com/flyawayl/p/8503152.html

總結(jié)

以上是生活随笔為你收集整理的第八届蓝桥杯决赛 磁砖样式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲成人不卡 | 亚洲少妇一区 | 亚洲香蕉久久 | heyzo国产 | 性生活一级大片 | 伊人成年网 | 欧美精品一区二区三区四区 | 69xxxx国产 | 一区二区在线观看视频 | 亚洲精品456 | 欧美一级黄色片视频 | 成人免费观看网址 | 国产成人精品影院 | 日韩 欧美 综合 | 亚洲一级伦理 | 亚洲草逼 | 欧美日韩亚洲国产 | 激情视频在线观看免费 | 日韩欧美一卡 | 精品黄色一级片 | 欧美精品999| 五月婷婷亚洲 | 欧美色射| 成人一级黄色片 | 亚洲精品成人无码熟妇在线 | 欧美日韩电影一区二区三区 | 日本xx视频 | 无码少妇精品一区二区免费动态 | 热逼视频| 91免费片| 玖玖精品国产 | 日韩成人无码影院 | 亚洲精品乱码久久久久久蜜桃欧美 | 亚洲天堂视频在线观看 | 欧美少妇性生活 | 97福利网| 欧美精品一区二区在线观看 | 又色又爽又黄18网站 | 欧美大片在线免费观看 | 成人免费视频国产免费 | 天天av天天操| 国产成人在线观看网站 | 国产学生美女无遮拦高潮视频 | 操欧洲美女 | 伊人视频 | 国产99久久久久久免费看 | 免费在线性爱视频 | 久久久久国 | 午夜xxx | 亚洲一区二区精品在线 | 国产真实乱人偷精品视频 | 青青青免费在线视频 | 在线观看涩涩 | 182在线视频 | 日本在线免费观看视频 | 性欧美video另类hd尤物 | 丰满人妻一区二区三区免费视频棣 | 最新激情网 | 成年人黄色录像 | 亚洲国产色图 | 伊人网伊人网 | 美国美女群体交乱 | 国产欧美一区二区三区四区 | 日韩欧美在线看 | 都市激情第一页 | 97麻豆视频 | 性视频在线播放 | 欧美精品videos另类 | 欧美一区二区在线视频 | 尹人久久| 日韩色网站 | 超碰最新网址 | 少妇av在线 | 毛片久久久久久久 | 午夜精品福利视频 | 男人天堂avav | 久久综合久久综合久久综合 | 伊人久久五月 | 亚洲成人第一区 | 国产在线免费视频 | 日韩在线一卡 | 欧美天天影院 | 男人操女人动漫 | 久久久视频在线观看 | 一级黄色片在线播放 | 超能一家人电影免费喜剧在线观看 | 国产妇女馒头高清泬20p多 | 色亚洲色图 | 成人免费一区二区三区在线观看 | www.好了av| 成人瑟瑟| 久久精品伊人 | 伊人婷婷在线 | 91久久精品日日躁夜夜躁欧美 | 原来神马电影免费高清完整版动漫 | 麻豆剧场| 免费看黄在线观看 | 亚洲国产免费视频 | 色噜噜狠狠狠综合曰曰曰 |