为什么这代码一个点都过不了
查看原帖
为什么这代码一个点都过不了
1165831
zuilp楼主2024/11/3 20:06
#include<bits/stdc++.h>
using namespace std;
string dc;
int arr[1005][5005];
int haha(string x){
    int c;
    for(int i=0;i<x.length();i++)
        c+=(x.at(i)*(i+1))%5000;
    return c;
    }//随便写的哈希函数,没考虑哈希冲突问题
int  main(){
    int T,B;cin>>T;
    for(int j=1;j<=T;j++)
        {
        int n;cin>>n;//输入该片课文单词数
        for(int i=0;i<n;i++)
            {
                cin>>dc;
                arr[j][haha(dc)]=1;//第j篇课文中,单词dc出现过了
            }
        }
    cin>>B;
    while(B--){
        cin>>dc;
        for(int i=1;i<=T;i++){
            if(arr[i][haha(dc)])cout<<i<<' ';//如果在第i篇课文中dc出现了,就打印该篇课文的编号
        }
        cout<<endl;
    }
    }

刚学哈希,想找个题练练,结果题解全是用字典树做的

2024/11/3 20:06
加载中...