雜湊.模擬離散化.AcWing.840
阿新 • • 發佈:2020-12-27
code:
1.set或map
#include<bits/stdc++.h>//xfl using namespace std; map<int,bool>a; int main() { int n; cin>>n; for(int i=1;i<=n;++i) { int x;char c; cin>>c>>x; if(c=='I')a[x]=1; else{ if(a[x])puts("Yes");else puts("No"); } } return 0; } #include<bits/stdc++.h>//xfl using namespace std; int main() { set<int>a; int n; scanf("%d\n",&n); char c;int x; for(int i=1;i<=n;++i) { scanf("%c %d\n",&c,&x); if(c=='I')a.insert(x);else{if(a.count(x))puts("Yes"); else puts("No");} } return 0; }
2.題目要求:雜湊
cdoe:
#include<bits/stdc++.h> using namespace std; const int mod = 100007; int h[mod+5],ne[mod+5],d[mod+5]cnt; void add(int x) { int u=(x%mod+mod)%mod; d[++cnt]=x; ne[cnt]=h[u]; h[u]=cnt; }bool find(int x) { int u=(x%mod+mod)%mod; for(int i=h[u];i;i=ne[i]) if(d[i]==x)return 1; return 0; } int main() { int n,x; cin>>n; char c; for(int i=1;i<=n;++i) { cin>>c>>x; if(c=='I')add(x); else{ if(find(x))puts("Yes"); else puts("No"); } } return 0; }