加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

富豪凯匹配串

发布时间:2020-12-14 04:39:01 所属栏目:大数据 来源:网络整理
导读:bitset的用法:https://www.cnblogs.com/magisk/p/8809922.html https://blog.csdn.net/caipengbenren/article/details/90443961 例题汇总?https://blog.csdn.net/weixin_38686780/article/details/89377729 连接:富豪凯匹配串 题解:根据与运算的特点,只

bitset的用法:https://www.cnblogs.com/magisk/p/8809922.html

https://blog.csdn.net/caipengbenren/article/details/90443961

例题汇总?https://blog.csdn.net/weixin_38686780/article/details/89377729

连接:富豪凯匹配串

题解:根据与运算的特点,只有为两个1时为1,否则为0。根据题意当‘_’遇到0/1时都是匹配成功的,我们不妨把‘‘_’设置为0,其余设置为1,然后让这个数组和输入的n个数组运算,得到的然后判断得到的串与输入的串是否相同。

AC代码:

#include<bits/stdc++.h>
using namespace std;
const int N=1E3+7;
bitset<N>arr[N],q,p;
int main(){
    int n,m;
    cin>>n>>m;
    char s[N];
    for(int i=1;i<=n;i++) {
        scanf("%s",s);
        for(int j=0;j<m;j++){
            if(s[j]==0)    arr[i][j]=0;
            else arr[i][j]=1;
        }
    }
    
    int qq;
    cin>>qq;
    while(qq--){
        string s;
        cin>>s;        
        for(int i=0;i<m;i++){
            if(s[i]==_) q[i]=p[i]=0;
            else {
                p[i]=1;//将p串除了"_"外,其余全都设置为1,然后让其余输入的做与运算,并判断和输入的q是否相同 
                if(s[i]==1) {
                    q[i]=1;
                }
                else q[i]=0;
            }
        }
        int ans=0;
        for(int i=1;i<=n;i++){
            if((p&arr[i])==q)     ans++;
        }
        cout<<ans<<endl;
    }
    return 0;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读