比赛 期末考试0 评测结果 AATTTTTTTT
题目名称 学姐的下午茶 最终得分 20
用户昵称 ychyyx 运行时间 17.069 s
代码语言 C++ 内存使用 3.75 MiB
提交时间 2026-02-07 10:42:17
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
int n;
string s[25];
const int P=1000000007;
int p,cnt;
int trie[2005][2];
void insert(string s){
    p=1;
    for(int i=0;i<s.size();i++){
        int ch=s[i]-'0';
        if(!trie[p][ch])
            trie[p][ch]=++cnt;
        p=trie[p][ch]; 
    }
}
int ans;
void dfs(int k,int now){
    if(k==n+1){
        cnt=1;
        for(int i=1;i<=2000;i++){
            for(int j=0;j<=1;j++){
                trie[i][j]=0;
            }
        }
        for(int i=1;i<=n;i++){
            insert(s[i]);
        }
        ans=(ans+cnt)%P;
        return ;
    }
    if(now==s[k].size()){
        dfs(k+1,0);
    }else{
        if(s[k][now]=='?'){
            s[k][now]='1';
            dfs(k,now+1);
            s[k][now]='0';
            dfs(k,now+1);
            s[k][now]='?';
        }else{
            dfs(k,now+1);
        }
    }
}
int main(){
    freopen("lowtea.in","r",stdin);
    freopen("lowtea.out","w",stdout);
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        cin>>s[i];
    }
    dfs(1,0);
    printf("%d",ans);
    return 0;
}