博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Warsaw University Contest Petrozavodsk, Thursday, January 31, 2008 F题,Gym100096F
阅读量:5052 次
发布时间:2019-06-12

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

 

 

题目分析:

集合双Hash

1 #include
2 #define Mod1 1000000009 3 #define Mod2 1000000007 4 #define maxn 510 5 #define LL long long 6 #define mp make_pair 7 #define Pii pair
8 #define fi first 9 #define se second10 #define push_back11 using namespace std;12 LL hash1[maxn],hash2[maxn];13 int n,seg[maxn];14 LL ksm(LL base,LL m,LL mod){15 LL res=1;16 while(m){17 if(m&1) res=(res*base)%mod;18 base=(base*base)%mod;19 m>>=1;20 }21 return res;22 }23 void pre_hash(){24 int ans1=0,ans2=0;25 for(int i=0;i<=500;i++){26 hash1[i]=ksm(i,i+5,Mod1);27 hash2[i]=ksm(i,i+5,Mod2);28 }29 }30 Pii getHash(set
&str){31 set
::iterator it;32 LL ans1=0,ans2=0;33 for(it=str.begin();it!=str.end();++it){34 ans1=(ans1+hash1[*it])%Mod1;35 ans2=(ans2+hash2[*it])%Mod2;36 }37 return mp(ans1,ans2);38 }39 set
s;40 set
ss;41 int main(){42 freopen("numbereater.in","r",stdin);43 freopen("numbereater.out","w",stdout);44 pre_hash();45 cin>>n;46 for(int i=1;i<=n;i++) scanf("%d",&seg[i]);47 for(int i=1;i<=n;i++){48 s.clear();49 for(int j=i;j<=n;j++){50 s.insert(seg[j]);51 ss.insert(getHash(s));52 }53 }54 cout<

 

转载于:https://www.cnblogs.com/poler/p/7342871.html

你可能感兴趣的文章
HandlerThread&Looper&MessageQueue
查看>>
ROM的一种写法
查看>>
VIM Taglist + ctags
查看>>
supervisord
查看>>
ubuntu10.04安装x264库
查看>>
●数组及应用举例
查看>>
个人作业2——英语学习APP案例分析
查看>>
Oracle中的数据字典技术初级入门
查看>>
Java Build Practice 1:Ant
查看>>
3.RxJava详解
查看>>
【小波变换】STL版 一维离散小波变换(DWT)库,完全按matlab的wavelet toolbox 的API实现的...
查看>>
作业六:小学生四则运算之NABCD模型与产品Backlog。
查看>>
__int128的实现
查看>>
R 读取clipboard内容 (MAC)
查看>>
Problem - 1118B - Codeforces(Tanya and Candies)
查看>>
jdk1.8 api 下载
查看>>
svn 图标不显示
查看>>
getElement的几中属性介绍
查看>>
iOS 使用Quartz 2D画虚线 【转】
查看>>
平面最接近点对
查看>>