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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

洛谷P1155 双栈排序

發(fā)布時(shí)間:2024/4/14 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 洛谷P1155 双栈排序 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這題什么毒瘤......之前看一直沒(méi)思路,然后心說(shuō)寫個(gè)暴搜看能有多少分,然后就A了??!

題意:給你一個(gè)n排列,求它們能不能通過(guò)雙棧來(lái)完成排序。如果能輸出最小字典序方案。

[update]這里面加了一個(gè)錯(cuò)誤的剪枝。這是個(gè)假算法。

解:首先我們發(fā)現(xiàn)有一個(gè)策略,就是可以出棧的時(shí)候出棧,否則就在兩個(gè)棧中選棧頂大于它且棧頂盡量小的那個(gè)入棧。如果這樣還GG就無(wú)解。

但是這樣不能保證字典序最小。因?yàn)槿霔m斴^小的可以保證決策包容性,但是可能你入另一個(gè)棧不會(huì)引起沖突。

于是想到搜索,T飛。

加上剪枝:如果先入的棧頂較小,那么不用入另一個(gè)棧。AC。

然后發(fā)現(xiàn)過(guò)不了hack數(shù)據(jù):

5 2 4 1 3 5

這組數(shù)據(jù)在最后要先入棧5,再出棧4。

稍微調(diào)整一下搜索順序就行了。AC。

1 #include <cstdio> 2 #include <algorithm> 3 4 const int N = 10010, INF = 0x3f3f3f3f; 5 6 int a[N], b[N], c[N], d[N], ta, tb, tc, td, p[N << 2], tp, n; 7 8 void DFS(int k) { 9 /* 10 printf("k = %d tb = %d tc = %d td = %d \n", k, tb, tc, td); 11 printf("b: "); 12 for(int i = 1; i <= tb; i++) { 13 printf("%d ", b[i]); 14 } 15 printf("\nc: "); 16 for(int i = 1; i <= tc; i++) { 17 printf("%d ", c[i]); 18 } 19 printf("\ned: "); 20 printf("%d \n", td); */ 21 22 if(td == n) { 23 // 24 for(int i = 1; i <= tp; i++) { 25 putchar(p[i] + 'a' - 1); 26 if(i < tp) { 27 putchar(' '); 28 } 29 } 30 exit(0); 31 return; 32 } 33 if(a[k] == d[td] + 1) { 34 d[++td] = a[k]; 35 p[++tp] = 1; 36 p[++tp] = 2; 37 DFS(k + 1); 38 td--; 39 tp--; 40 tp--; 41 return; 42 } 43 44 if(a[k] < b[tb] && k <= n) { 45 b[++tb] = a[k]; 46 p[++tp] = 1; 47 DFS(k + 1); 48 tp--; 49 tb--; 50 if(b[tb] < c[tc]) { 51 return; 52 } 53 } 54 55 if(b[tb] == d[td] + 1) { 56 d[++td] = b[tb]; 57 tb--; 58 p[++tp] = 2; 59 DFS(k); 60 tp--; 61 b[++tb] = d[td]; 62 td--; 63 return; 64 } 65 66 if(a[k] < c[tc] && k <= n) { 67 c[++tc] = a[k]; 68 p[++tp] = 3; 69 DFS(k + 1); 70 tp--; 71 tc--; 72 return; 73 } 74 if(c[tc] == d[td] + 1) { 75 d[++td] = c[tc]; 76 tc--; 77 p[++tp] = 4; 78 DFS(k); 79 tp--; 80 c[++tc] = d[td]; 81 td--; 82 return; 83 } 84 85 return; 86 } 87 88 int main() { 89 scanf("%d", &n); 90 for(int i = 1; i <= n; i++) { 91 scanf("%d", &a[i]); 92 } 93 94 b[0] = INF; 95 c[0] = INF + 1; 96 97 DFS(1); 98 99 printf("0"); 100 return 0; 101 } 102 /** 103 10 104 10 2 8 1 7 9 3 4 5 6 105 106 a a c a b b c a a b a b a b a b d d b b 107 108 */ AC代碼

?

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

總結(jié)

以上是生活随笔為你收集整理的洛谷P1155 双栈排序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

主站蜘蛛池模板: 成人午夜精品福利 | 日本韩国欧美一区二区 | 欧美自拍第一页 | 国产中出| 久久中文字幕高清 | 欧美色图在线播放 | 黄色自拍网站 | 黄色网日本 | 免费一级网站 | 国产精品无码一区 | 日韩成人在线播放 | 激情偷乱人成视频在线观看 | 国产福利小视频在线 | 国产成人欧美一区二区三区的 | 日韩wwww | 青青草视频污 | 青春草视频在线免费观看 | 一及黄色大片 | 天天看毛片 | 亚洲美免无码中文字幕在线 | 中日韩免费视频 | 亚洲大尺度网站 | 性爱免费在线视频 | 激情a| 欧美日韩在线一区二区三区 | 中文在线一区 | a在线免费观看 | 久久精品国产亚洲av嫖农村妇女 | 91丨porny丨尤物 | 日韩欧美大陆 | 黑人精品欧美一区二区蜜桃 | 蜜臀av无码精品人妻色欲 | 黄色a视频 | 在线中文av| 亚洲精品污 | 手机在线播放av | 国产经典一区二区 | 精品日本一区二区 | 成人免费毛片高清视频 | 永久视频在线 | 小视频黄色 | 日韩av在线影院 | av免费视屏 | www.视频一区 | 中文字幕观看在线 | 性欧美巨大乳 | 少妇一级1淫片 | 国产一区二区三区免费观看 | 国产免费黄色网址 | 欧美日韩一区在线观看 | 青娱乐国产在线 | 窝窝午夜视频 | 黄在线观看免费 | 看全黄大色黄大片美女人 | 日本五十肥熟交尾 | 亚洲淫视频| 天天插综合网 | 91亚洲精品久久久蜜桃网站 | 欧美色涩在线第一页 | 懂色一区二区二区av免费观看 | 成人在线免费看视频 | 在线黄色网| 欧美你懂的 | 午夜免费福利网站 | 亚洲精品久久久久久宅男 | 天天人人| 成人做爰69片免费看 | 亚洲av无码一区二区三区四区 | 好吊妞在线观看 | 国产a免费观看 | 无码人妻久久一区二区三区 | 日韩美女视频在线观看 | 天天躁狠狠躁狠狠躁夜夜躁68 | 亚洲乱码少妇 | 毛片入口 | 九热视频在线观看 | 色妞色视频一区二区三区四区 | 国产乱人对白 | 中文视频在线 | 日本少妇与黑人 | 亚洲图片在线播放 | 内射国产内射夫妻免费频道 | 日日日干干干 | 红桃成人在线 | www.xxx日韩 | 欧美成人精品欧美一级 | 三级不卡 | 国产麻豆一区二区 | 韩日黄色片 | 亚洲成a人片 | 国产欧美激情 | xxxx999| 一级肉体全黄裸片中国 | 第四色男人天堂 | 一区二区三区精品国产 | 欧美专区视频 | jizjiz中国少妇高潮水多 | 国产三区在线成人av | 毛片2|