Regular Number HDU - 5972

Posted yijiull

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Regular Number HDU - 5972相关的知识,希望对你有一定的参考价值。

Regular Number

 HDU - 5972 

 

技术分享
 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 }
View Code

 

以上是关于Regular Number HDU - 5972的主要内容,如果未能解决你的问题,请参考以下文章

hdu 5972 Regular Number

hdu 5972---Regular Number(字符串匹配)

HDU 5972 Regular Number(ShiftAnd+读入优化)

HDU5972 LA7724 Regular Number位运算+字符串匹配

Regular Number hdu-5972(bitset+Shift-And算法)

Shift - And字符串快速处理 hdu5972+cf