题目:
这题的思路就是哈希,利用vector和取模来解决冲突问题。然后找。
代码如下:
#include <iostream> #include <cstdio> #include <string> #include <cstring> #include <stdlib.h> #include <math.h> #include <ctype.h> #include <queue> #include <map> #include <set> #include<algorithm> using namespace std; int a[710000]; struct node { int x, num; }; vector <node> vec[110000]; const int mod=1e5+7; int main() { int n, q, i, j, y, l, r, x; scanf("%d",&n); node tmp; for(i=1;i<=n;i++) { scanf("%d",&a[i]); tmp.x=a[i]; tmp.num=i; vec[a[i]%mod].push_back(tmp); } scanf("%d",&q); while(q--) { scanf("%d%d%d",&l, &r, &x); if(a[l]==x||a[r]==x) { printf("1"); continue ; } int len=vec[x%mod].size(), flag=0; for(i=0;i<len;i++) { if(vec[x%mod][i].x==x&&vec[x%mod][i].num>=l&&vec[x%mod][i].num<=r) { flag=1; break; } } if(flag) { printf("1"); } else printf("0"); } printf("\n"); return 0; }
Ural 1613 For Fans of Statistics(vector应用),布布扣,bubuko.com
Ural 1613 For Fans of Statistics(vector应用)
原文地址:http://blog.csdn.net/scf0920/article/details/38373401