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

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

生活随笔

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

编程问答

BZOJ-1009-GT考试-HNOI2008

發(fā)布時(shí)間:2025/3/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BZOJ-1009-GT考试-HNOI2008 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

描述

阿申準(zhǔn)備報(bào)名參加GT考試,準(zhǔn)考證號(hào)為N位數(shù)X1X2….Xn(0<=Xi<=9),他不希望準(zhǔn)考證號(hào)上出現(xiàn)不吉利的數(shù)字。他的不吉利數(shù)學(xué)A1A2…Am(0<=Ai<=9)有M位,不出現(xiàn)是指X1X2…Xn中沒(méi)有恰好一段等于A1A2…Am. A1和X1可以為0


分析

  • f[i][j] 表示前i個(gè)數(shù)字里匹配到了j位
  • 開(kāi)始想到一個(gè)很不完善的方程, f[i][j] = f[i-1][j-1], f[i][0] = sum{f[i-1]}
  • 這樣肯定是不對(duì)的了, 因?yàn)閺膉-1不一定只能轉(zhuǎn)移到j(luò), 還有可能換一個(gè)數(shù)字后第j位不匹配了但跟原串的其他位還是匹配的.
  • 所以要考慮從匹配到第j-1位的狀態(tài)可以轉(zhuǎn)移到哪些狀態(tài).
  • 由此聯(lián)想到KMP里的失配函數(shù). 枚舉第j位的數(shù)字(0..9), 當(dāng)?shù)趈位失配后, 沿失配指針走直到和枚舉的數(shù)字相同或者失配指針來(lái)到0. 如果第k位重新匹配了, 說(shuō)明j狀態(tài)可以轉(zhuǎn)移到k狀態(tài), 即第j位放置模板串中第k位的數(shù)字.
  • 當(dāng)然上面的描述有的地方不準(zhǔn)確因?yàn)闆](méi)有明確從0做下標(biāo)還是從1…
  • 有了狀態(tài)轉(zhuǎn)移方程就可以用矩陣乘法來(lái)快速求解. O(m^3 * log(n))
  • 根據(jù)矩陣乘法的性質(zhì)算算看怎么建立矩陣.

代碼

https://code.csdn.net/snippets/622317

總結(jié)

以上是生活随笔為你收集整理的BZOJ-1009-GT考试-HNOI2008的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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