首页 > 代码库 > 计蒜课/UCloud 的安全秘钥(hash)
计蒜课/UCloud 的安全秘钥(hash)
题目链接:https://nanti.jisuanke.com/t/15768
题意:中文题诶~
思路:直接hash就好了,当时zz了没想到...
代码:
1 #include <iostream> 2 #include <stdio.h> 3 #define ll long long 4 using namespace std; 5 6 const int MAXN = 1e5; 7 ll a[MAXN] = {1}; 8 ll w[MAXN]; 9 10 int main(void){ 11 ll n, m, k, x; 12 scanf("%lld", &n); 13 for(int i = 1; i <= n; i ++){ 14 w[i] = w[i-1] * 233 + 17; 15 } 16 for(int i = 1; i <= n; i ++){ 17 cin >> x; 18 a[i] = a[i-1] + w[x]; 19 } 20 scanf("%lld", &m); 21 while(m--){ 22 ll ans = 0, cnt = 0; 23 cin >> k; 24 for(int i = 0; i < k; i++){ 25 cin >> x; 26 cnt += w[x]; 27 } 28 for(int i=k; i<=n; i++){ 29 if(a[i] - a[i-k] == cnt) ans ++; 30 } 31 printf("%lld\n", ans); 32 } 33 return 0; 34 }
计蒜课/UCloud 的安全秘钥(hash)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。