Regular Number HDU - 5972
Posted yijiull
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Regular Number HDU - 5972相关的知识,希望对你有一定的参考价值。
Regular Number
1 #include<stdio.h> 2 #include<bitset> 3 #include<string.h> 4 #define Ri(a) scanf("%d", &a) 5 #define Rl(a) scanf("%lld", &a) 6 #define Rf(a) scanf("%lf", &a) 7 #define Rs(a) scanf("%s", a) 8 #define Pi(a) printf("%d\n", (a)) 9 #define Pf(a) printf("%lf\n", (a)) 10 #define Pl(a) printf("%lld\n", (a)) 11 #define Ps(a) printf("%s\n", (a)) 12 #define W(a) while(a--) 13 #define CLR(a, b) memset(a, (b), sizeof(a)) 14 #define MOD 100000007 15 16 #define pii pair<int, int> 17 #define mp make_pair 18 #define pb push_back 19 #include <bits/stdc++.h> 20 using namespace std; 21 typedef long long ll; 22 const int maxn=1e6+10; 23 bitset<10>b[20],ans; 24 int n,m,k; 25 char s[5*maxn]; 26 int main() 27 { 28 29 scanf("%d",&n); 30 // for(int i=0;i<=10;i++) 31 // b[i].reset(); 32 for(int i=0;i<n;i++) 33 { 34 scanf("%d",&m); 35 for(int j=1;j<=m;j++) 36 { 37 scanf("%d",&k); 38 b[k].set(i); 39 } 40 } 41 for(int i = 0 ; i < 10; i++) cout<<b[i]<<endl; 42 getchar(); 43 gets(s); 44 int len=strlen(s); 45 for(int i=0;i<len;i++) 46 { 47 ans<<=1; 48 ans[0]=1; 49 ans &=b[s[i]-‘0‘]; 50 cout<<ans<<"----"<<endl; 51 if(ans[n-1]==1) 52 { 53 char ch=s[i+1]; 54 s[i+1]=0; 55 puts(s+i-n+1); 56 s[i+1]=ch; 57 } 58 } 59 return 0; 60 }
以上是关于Regular Number HDU - 5972的主要内容,如果未能解决你的问题,请参考以下文章
hdu 5972---Regular Number(字符串匹配)
HDU 5972 Regular Number(ShiftAnd+读入优化)
HDU5972 LA7724 Regular Number位运算+字符串匹配