码迷,mamicode.com
首页 > 其他好文 > 详细

【哈希】CDOJ1717 京电的神秘矩阵

时间:2017-07-04 18:31:59      阅读:271      评论:0      收藏:0      [点我收藏+]

标签:make   amp   space   矩阵   UI   efi   元素   insert   printf   

技术分享

对每个矩阵里的元素用两个大素数做双关键字哈希,丢进set即可。

#include<cstdio>
#include<iostream>
#include<set>
using namespace std;
#define MOD1 1000000007ll
#define MOD2 1000000009ll
typedef long long ll;
ll m,n,a,b;
ll Quick_Pow(ll a,ll p,ll MOD){
	if(!p){
		return 1ll;
	}
	ll res=Quick_Pow(a,p>>1,MOD);
	res=res*res%MOD;
	if(p&1ll){
		res=(a%MOD*res)%MOD;
	}
	return res;
}
set<pair<ll,ll> >S;
int main(){
	cin>>m>>n>>a>>b;
	for(ll i=1ll;i<=m;++i){
		for(ll j=1ll;j<=n;++j){
			ll x1=Quick_Pow(a+j-1ll,b+i-1ll,MOD1);
			ll x2=Quick_Pow(a+j-1ll,b+i-1ll,MOD2);
			S.insert(make_pair(x1,x2));
		}
	}
	printf("%d\n",S.size());
	return 0;
}

【哈希】CDOJ1717 京电的神秘矩阵

标签:make   amp   space   矩阵   UI   efi   元素   insert   printf   

原文地址:http://www.cnblogs.com/autsky-jadek/p/7117458.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!