点击跳转例题
题意:
寻找资料中对应的密码,(密码是乱序的)
思路:
我们可以储存资料中对应的所有密码可能(用map)。但是问题在于,处理一个密码的时候,有A88种组合,所以我们需要优化,由于密码只要组成的字母相同,密码就可以匹配,所以我们储存的时候,可以规定一个顺序,优化了A88。
代码:
#include <bits/stdc++.h> #define int long long //(有超时风险) #define PII pair<int,int> #define endl '\n' #define LL __int128 using namespace std; const int N=2e5+10,M=1e3+10,mod=998244353,INF=0x3f3f3f3f; int a[N],b[N],c[N],pre[N]; signed main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); string s;cin>>s; int n;cin>>n; map<string,int>mp; for(int i=0;i<s.size();i++) { string tmp=s.substr(i,8); if(tmp.size()!=8) break; sort(tmp.begin(),tmp.end()); mp[tmp]++; } int ans=0; for(int i=1;i<=n;i++) { string str;cin>>str; sort(str.begin(),str.end()); ans+=mp[str]; } cout<<ans<<endl; return 0; }
P8630 [蓝桥杯 2015 国 B] 密文搜索--2024蓝桥杯冲刺省一
最新推荐文章于 2024-04-09 17:41:07 发布