【哈希】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;
}
时间: 2024-10-12 07:43:15

【哈希】CDOJ1717 京电的神秘矩阵的相关文章

【数论】【欧拉函数】CDOJ1724 为了我们心爱的京电

京州电子科技大学遭遇废校危机,为了保护我们心爱的学校,N位魔法少女站了出来,她们能做的就是--成为偶像! 每个魔法少女都拥有一定的人气,他们中的每个人的人气计算方式如下: 假设某个魔法少女的学号为a,学号从1到a-1的共a-1位同学都会为她应援,学号为i的同学能让这位魔法少女增加gcd(a,i)的人气值. 这N位魔法少女最终能否拯救我们的学校呢,试着计算一下他们的总人气值吧!  Input 第一行有一个数字N,表示魔法少女的个数 第二行共有N个数字,分别是a[i],表示第i为魔法少女的学号 其中

poj 3690 字符矩阵匹配----HASH算法

http://poj.org/problem?id=3690 UVA还有一道也是这样的题,LRJ给的算法是AC自动机----我还没写过,今天用HASH搞了这道题 思路很清晰,但是处理起来还因为HASH函数写混WA了几次... 文本矩阵n*m    T个匹配矩阵p*q 思路: 1.把每一行处理出长为q的hash值 2.对于1中得到的p个哈希值在算一次哈希,这样就把一个矩阵用一个hash值替代了 3.把所有的匹配矩阵压入multiset,然后对于文本矩阵的每一个p*q的子矩阵,算出矩阵哈希值,从mu

神秘农场APP源码

神秘农场APP源码,神秘农场APP源码系统APP开发找梁经理(153微2202电6891)神秘农场APP源码软件APP开发,神秘农场APP源码系统APP开发,神秘农场APP源码源码APP开发,类似神秘农场APP源码APP开发. 神秘农场APP源码,神秘农场APP源码系统APP开发找梁经理(153微2202电6891)神秘农场APP源码软件APP开发,神秘农场APP源码系统APP开发,神秘农场APP源码源码APP开发,类似神秘农场APP源码APP开发. 神秘农场APP源码,神秘农场APP源码系统A

省常中模拟 Test3 Day1

tile 贪心 题意:给出一个矩形,用不同字母代表的正方形填充,要求相邻的方块字母不能相同,求字典序(将所有行拼接起来)最小的方案. 初步解法:一开始没怎么想,以为策略是每次填充一个尽量大的正方形.但是很快就能找到反例.比如当一个 4*2 的矩形左半部分填充了一个 2*2 的 A 后,不应该在右半部分填充 2*2 的 B,而是应该先填一个 1*1 的 B,然后继续用 A 填充,如图. 上面这个例子中,第二种方案虽然用到了 C,但是如果按照题意将每一行拼接起来之后第二种方案的字典序显然更小. 正解

【机器学习具体解释】线性回归、梯度下降、最小二乘的几何和概率解释

线性回归 即线性拟合,给定N个样本数据(x1,y1),(x2,y2)....(xN,yN)当中xi为输入向量,yi表示目标值,即想要预測的值.採用曲线拟合方式,找到最佳的函数曲线来逼近原始数据.通过使得代价函数最小来决定函数參数值. 採用斯坦福大学公开课的样例:假如一套房子的价格仅仅考虑由房屋面积(Living area)与卧室数目(bedrooms)两个因素决定,如今拿到手有m个样本,例如以下图所看到的. 此例中.输入x=(x1,x2)为2维向量.分别相应房屋面积和卧室数目,y相应价格.如今想

BZOJ 1142 POI2009 Tab Hash

题目大意:给定两个矩阵,保证矩阵内所有元素都不相同,求第一个矩阵通过交换行和列是否可以得到第二个矩阵 令每一行的哈希值为这一行的元素排序后的RK哈希值,将行按照哈希值排序 然后把每一列按顺序哈希一下,排个序取RK哈希作为整个矩阵的哈希值 判断两个矩阵的哈希值是否相等即可 由于矩阵中元素不重复所以可以保证第一步的哈希值不会出现重复 然后...我都写完了它告诉我是2B题???? 算了反正POI官网上能过就是了= = #include <cstdio> #include <cstring>

题解 P4398 【[JSOI2008]Blue Mary的战役地图】

题目链接:LuoguP4398 二维哈希 \(+\) 哈希表 \[\Large\texttt{description}\] 给出一个\(n\),再给出\(2\)个\(n * n\)的矩阵 求最大的\(k\)满足\(2\)个矩阵中都有\(k * k\)的矩阵相同 数据范围 \(n \leq 50\) \[\Large\texttt{Solution}\] \(\bullet\) 做法\(1:\) 我们枚举一个边长\(k\), 枚举第一个矩阵的一个坐标\((x, y)\),再枚举第二个矩阵的一个坐标

UVA 11019 字符矩阵哈希

思路:以前没做过字符矩阵的哈希,所以这题是看别人博客写的. #pragma comment(linker, "/STACK:1024000000,1024000000") #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<map> #include<queue> #include<set>

HDU4887_Endless Punishment_BSGS+矩阵快速幂+哈希表

2014多校第一题,当时几百个人交没人过,我也暴力交了几发,果然不行. 比完了去学习了BSGS才懂! 题目:http://acm.hdu.edu.cn/showproblem.php?pid=4887 Endless Punishment Time Limit: 30000/15000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 52    Accepted Submissi