首页 > 代码库 > 【哈希】CDOJ1717 京电的神秘矩阵
【哈希】CDOJ1717 京电的神秘矩阵
对每个矩阵里的元素用两个大素数做双关键字哈希,丢进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 京电的神秘矩阵
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。