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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

[CQOI2014]通配符匹配

發(fā)布時間:2025/3/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [CQOI2014]通配符匹配 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

https://www.zybuluo.com/ysner/note/1311407

題面

幾乎所有操作系統(tǒng)的命令行界面\((CLI)\)中都支持文件名的通配符匹配以方便用戶。
最常見的通配符有兩個,一個是星號,可以匹配\(0\)個及以上的任意字符;
另一個是問號,可以匹配恰好一個任意字符。
現(xiàn)在需要你編寫一個程序,對于給定的文件名列表和一個包含通配符的字符串,判斷哪些文件可以被匹配。

  • \(n\leq100,|S|\leq10^5\)
  • 通配符個數(shù)\(\leq10\)

    解析

    由于一些不可言妙的錯誤,我調(diào)這破題的時間跨度長達4h

狀態(tài)顯然是\(f[i][j]\)表示上面的串匹配到第\(i\)位,下面的串匹配到第\(j\)位。

然后注意到上面那串中最值得商榷的是一個通配符匹配哪些字符。
所以可以把上面的串簡化為通配符形式,通配符之間的部分用哈希與下面匹配就行。

這樣復雜度就對了,\(O(n*10|S|)\)
然后討論下轉移就行。

#include<iostream> #include<cmath> #include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #include<vector> #define ll unsigned long long #define re register #define il inline #define fp(i,a,b) for(re int i=a;i<=b;++i) #define fq(i,a,b) for(re int i=a;i>=b;--i) using namespace std; const int N=2e5+100; int n,m,tot,sta[50],top,ans; ll ht[N],hs[N],jc[N]; char T[N],S[N]; bool f[20][N]; il int gi() {re int x=0,t=1;re char ch=getchar();while(ch!='-'&&(ch<'0'||ch>'9')) ch=getchar();if(ch=='-') t=-1,ch=getchar();while(ch>='0'&&ch<='9') x=x*10+ch-48,ch=getchar();return x*t; } int main() {scanf("%s",T+1);n=strlen(T+1)+1;T[n]='?';jc[0]=1;fp(i,1,N-100) jc[i]=jc[i-1]*2333;fp(i,1,n){ht[i]=ht[i-1]*2333+T[i];if(T[i]=='*'||T[i]=='?') sta[++top]=i;}tot=gi();while(tot--){scanf("%s",S+1);m=strlen(S+1)+1;S[m]='#';fp(i,1,m) hs[i]=hs[i-1]*2333+S[i];memset(f,0,sizeof(f));f[0][0]=1;fp(i,0,top){if(T[sta[i]]=='*') fp(j,1,m) f[i][j]|=f[i][j-1];fp(j,0,m){if(!f[i][j]) continue;re int lt=sta[i]+1,rt=sta[i+1]-1,ls=j+1,rs=j+(rt-lt+1);if(ht[rt]-ht[lt-1]*jc[rt-lt+1]==hs[rs]-hs[ls-1]*jc[rs-ls+1])f[i+1][rs+(T[sta[i+1]]=='?')]|=f[i][j];}}puts(f[top][m]?"YES":"NO");}return 0; }

SOS:誰能幫我查下這份代碼問題出在哪里。。。(用來交[AHOI2005]病毒檢測)

#include<iostream> #include<cmath> #include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #include<vector> #define ll unsigned long long #define re register #define il inline #define fp(i,a,b) for(re int i=a;i<=b;++i) #define fq(i,a,b) for(re int i=a;i>=b;--i) using namespace std; const int N=1005; int n,m,tot,f[N][N],sta[N],top,jc[N],ans; ll ht[N],hs[N]; char T[N],S[N]; il int gi() {re int x=0,t=1;re char ch=getchar();while(ch!='-'&&(ch<'0'||ch>'9')) ch=getchar();if(ch=='-') t=-1,ch=getchar();while(ch>='0'&&ch<='9') x=x*10+ch-48,ch=getchar();return x*t; } int main() {scanf("%s",T+1);n=strlen(T+1)+1;T[n]='?';jc[0]=1;fp(i,1,1000) jc[i]=jc[i-1]*2333;fp(i,1,n){ht[i]=ht[i-1]*2333+T[i];if(T[i]=='*'||T[i]=='?') sta[++top]=i;}tot=gi();while(tot--){scanf("%s",S+1);m=strlen(S+1)+1;S[m]='#';fp(i,1,m) hs[i]=hs[i-1]*2333+S[i];memset(f,0,sizeof(f));f[0][0]=1;fp(i,1,top){re int l=sta[i-1]+1,r=sta[i]-1;fp(j,r-l+1,m){if(ht[r]-ht[l-1]*jc[r-l+1]==hs[j]-hs[j-(r-l+1)]*jc[r-l+1])f[i][j+(T[sta[i]]=='?')]|=f[i-1][j-(r-l+1)];}if(T[sta[i]]=='*') fp(j,1,m) f[i][j]|=f[i][j-1];}ans+=1-f[top][m];}printf("%d\n",ans);return 0; }

轉載于:https://www.cnblogs.com/yanshannan/p/9795666.html

總結

以上是生活随笔為你收集整理的[CQOI2014]通配符匹配的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产男男gay体育生网站 | 中文精品在线 | 哈利波特3在线观看免费版英文版 | 人人干超碰| 欧美视频网址 | 性v天堂 | 手机av网址| 四虎免费久久 | 亚洲综合久久av一区二区三区 | 国产色视频在线 | 69成人网 | 男男av网站 | 精品777| 在线免费观看视频你懂的 | 奇米影视奇米色 | 91精品国产欧美一区二区成人 | 色偷偷综合| 在线观看亚洲网站 | 欧美在线视频不卡 | 成人91免费视频 | 制中文字幕音影 | 一边顶弄一边接吻 | 四虎永久免费影院 | 精品午夜一区二区 | 亚洲夜夜操 | 一区二区免费在线 | 国产网红在线 | 麻豆精品国产传媒av绿帽社 | 2025国产精品| 国精产品一区一区三区在线 | 在线中文字幕播放 | 午夜日韩电影 | 91大神在线观看视频 | 黄色在线观看免费视频 | 欧美精品午夜 | 日本少妇xxxx软件 | 亚洲一区二区三区综合 | 青青草综合在线 | 国产精品视频在线免费观看 | www.好了av | 欧美日韩久久久久久 | 香蕉免费在线视频 | 玖玖在线播放 | 午夜成人鲁丝片午夜精品 | 日韩激情电影在线 | 免费欧美一区 | 一呦二呦三呦精品网站 | 7799精品视频天天看 | 亚洲中文字幕第一区 | 亲切的金子餐桌片段的金子 | 免费日韩在线视频 | 福利在线一区二区三区 | 91看片免费版| 最新中文字幕av专区 | 亚洲最大视频网 | av不卡在线播放 | 哪里看毛片 | 国产精品午夜影院 | 日本免费福利视频 | 五月激情小说网 | 亚洲日日夜夜 | 国产免费又黄又爽又色毛 | 欧美大尺度视频 | 被扒开腿一边憋尿一边惩罚 | 国产精品视频久久久久久 | 伊人久久影视 | 91资源站 | 久久亚洲一区二区 | 亚洲自拍偷拍欧美 | 2021av在线 | 麻豆精品视频在线观看 | 公侵犯人妻一区二区三区 | 99热精品国产| 亚洲av日韩av不卡在线观看 | 国产精品午夜电影 | 国产suv精品一区二区6 | 青青在线视频观看 | 欧美日韩性 | 国产一级大片在线观看 | 18无码粉嫩小泬无套在线观看 | 97人人爽| 超碰免费看 | 麻豆传媒在线观看视频 | 91精品国产高清91久久久久久 | 一区二区三区影院 | 香蕉茄子视频 | 69精品在线观看 | 欧美大胆视频 | 青青青免费视频观看在线 | 国产又大又黄的视频 | 91亚洲国产成人精品一区二区三 | 欧洲黄色片 | 亚洲第一欧美 | 97干干干 | 亚洲国产成人自拍 | 国产精品第一国产精品 | 日韩怡红院 | 日日爱886| 久久亚洲高清 |