博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
金中欢乐赛 C题
阅读量:6645 次
发布时间:2019-06-25

本文共 1169 字,大约阅读时间需要 3 分钟。

这道题 hash就可以写了 弄了半天有点智障 强行压一压就okay了的说

#include
#include
#include
using namespace std;const int M=150007,mod=23333333;int read(){ int ans=0,f=1,c=getchar(); while(c<'0'||c>'9'){
if(c=='-') f=-1; c=getchar();} while(c>='0'&&c<='9'){ans=ans*10+(c-'0'); c=getchar();} return ans*f;}int first[mod],tot,next[mod],sum;struct node{
int v,next,pos;}e[M],q[M];int n,m,k,a[M];int gethash(int x){ int w=x%mod; for(int i=first[w];i;i=e[i].next) if(e[i].v==x) return i; tot++; e[tot].v=x; e[tot].next=first[w]; first[w]=tot; return tot;}int push_hash(int x){ int w=x%mod; for(int i=first[w];i;i=e[i].next) if(e[i].v==x) return i; return 0;}void insert(int a,int b){sum++; q[sum].v=b; q[sum].next=next[a]; next[a]=sum;}int main(){ n=read(); m=read(); for(int i=1;i<=n;i++) a[i]=read(); for(int i=n;i;i--) insert(gethash(a[i]),i); for(int i=1;i<=m;i++){ k=push_hash(read()); if(!k||!next[k]) printf("-1 "); else printf("%d ",q[next[k]].v),next[k]=q[next[k]].next; } return 0;}
View Code

 

转载于:https://www.cnblogs.com/lyzuikeai/p/7080084.html

你可能感兴趣的文章
xtoi (Hex to Integer) C function - Nanoseconds Network
查看>>
如何识别移动硬盘
查看>>
T400换风扇解决开机fan error问题
查看>>
Unitils+hibernate+Spring+PostgreSql做dao层测试遇到的错误
查看>>
关于MVC使用Code-First代码优先来先建实体类中间添加新字段不需要重新建立数据库的方法...
查看>>
【SAS NOTES】字符串处理函数
查看>>
constellio——基于solr的开源搜索引擎系统源码研究(四)
查看>>
PS制作流星效果
查看>>
Windows Phone HttpWebRequest
查看>>
建造者模式 - 设计模式学习
查看>>
企业搜索引擎开发之连接器connector(七)
查看>>
.NET应用加载容器KGlue
查看>>
A.9- ASP.NET 中的验证控件(Validator)
查看>>
Ext JS 下载 及 是否收费
查看>>
DIV CSS 网页兼容全搞定 (IE6 IE7 IE8 IE9 火狐 谷歌)
查看>>
Ring buffer
查看>>
linux下网络问题综述
查看>>
Ember.js 1.0 RC3 发布,JavaScript 框架
查看>>
数字百位nbut 1407 1到n的数中 1出现的次数
查看>>
输出问题问题一百二十八:IBM Minus One
查看>>