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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【洛谷习题】南蛮图腾

發(fā)布時間:2025/3/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【洛谷习题】南蛮图腾 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目鏈接:https://www.luogu.org/problemnew/show/P1498


?

不好實現(xiàn)。。。

這道題在洛谷的分類是分治,我用的方法就是分治,不過卻刷新的我對分治的認(rèn)識。以前見過的分治都是用類似動態(tài)規(guī)劃中的填表法,針對當(dāng)前狀態(tài),用之前的狀態(tài)推出;而這里的做法卻類似于刷表法,針對當(dāng)前狀態(tài),去推之后的狀態(tài)。

當(dāng)大小為1時,答案是確定的,當(dāng)大小大于1時,我們可以由1時的答案推出:將已有答案向下復(fù)制一下,再向右復(fù)制一下。開一個二維數(shù)組來保存,中間的空格就可以被數(shù)組中的空字符代替,只需要控制行首的空格就可以了。

補充一點,這種圖形叫做謝爾賓斯基三角形。

1 #include <cstdio> 2 3 const int maxl = 1050; 4 5 char mt[maxl][2 * maxl]; 6 7 int main() { 8 mt[1][1] = '/'; 9 mt[1][2] = '\\'; 10 mt[2][1] = '/'; 11 mt[2][2] = '_'; 12 mt[2][3] = '_'; 13 mt[2][4] = '\\'; 14 int n; 15 scanf("%d", &n); 16 for (int i = 1; i <= n; ++i) { 17 int h = 1 << i; 18 for (int j = 1; j <= h; ++j) 19 for (int k = 1; k <= 2 * h; ++k) 20 mt[h + j][k] = mt[h + j][2 * h + k] = mt[j][k]; 21 } 22 for (int i = 1; i <= (1 << n); ++i) { 23 for (int j = (1 << n) - i; j >= 1; --j) putchar(' '); 24 for (int j = 1; j <= (1 << (n + 1)); ++j) 25 putchar(mt[i][j] ? mt[i][j] : ' '); 26 putchar('\n'); 27 } 28 return 0; 29 } AC代碼

?

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

總結(jié)

以上是生活随笔為你收集整理的【洛谷习题】南蛮图腾的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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