hdu 5745 La Vie en rose 2016多校第二场1012
生活随笔
收集整理的這篇文章主要介紹了
hdu 5745 La Vie en rose 2016多校第二场1012
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意: ?串s 串p , ?挑出p中 k個不 相鄰 的位置, 都與右邊的交換 ,算產生一個串 看
sisi+1...si+m?1
如果是產生的其中一個串,ans[i]=1 ,否則 ans[i] = 0;
官方題解:O(N*M)
暴力的:枚舉左端點,暴力向后匹配
#include<bits/stdc++.h> using namespace std; char s[100010]; char p[5005]; int n, m; int ans[100020]; bool judge(int beg) {int i,j;for( i = beg,j = 0; i<beg+m;){if(s[i]==p[j]){i++;j++;}else if(j+1<m&&i+1<n&&s[i]==p[j+1]&&s[i+1]==p[j]){i+=2;j+=2;}else{break;}}if(i==beg+m)return true;elsereturn false; } int main() {int T;scanf("%d",&T);while(T--){scanf("%d%d",&n,&m);scanf("%s",s);scanf("%s",p);for(int i = 0; i<n; i++){ ans[i] =0;if(i<=n-m&&judge(i)){ans[i] =1;}cout<<ans[i];}cout<<endl;} }
總結
以上是生活随笔為你收集整理的hdu 5745 La Vie en rose 2016多校第二场1012的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 南方人过冬有多难?用Python带你分析
- 下一篇: 天翼物联获中国信通院2022 AIoT先