Hash Killer II(卡掉单值hash)

Hash Killer II(卡掉单值hash)

题意:构造一组卡单值 h a s h , m o d = 1 e 9 + 7 hash,mod=1e9+7 的数据。

思路:

如果一个房间里有23个或23个以上的人,那么至少有两个人的生日相同的概率要大于50%。

生日攻击:在 n n 个数中随机选取, n \sqrt{n} 的概率选到相同的数。

因为 m o d = 1 e 9 + 7 mod=1e9+7 , m o d < 1 e 5 \sqrt{mod}<1e5 .

考虑取 n = 1 e 5 , l = 30 n=1e5,l=30 即可。

保证 l l 的方案个数超过 m o d \sqrt{mod}

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e3+5,M=2e4+5,inf=0x3f3f3f3f,mod=1e9+7;
#define mst(a) memset(a,0,sizeof a)
#define lx x<<1
#define rx x<<1|1
#define reg register
#define PII pair<int,int>
#define fi first
#define se second
#define pb push_back
int n=1e5,l=20;
int main(){
	printf("%d %d\n",n,l);
	for(int i=1;i<=n;i++)
		printf("%c",char(rand()%26+'a'));
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_45750972/article/details/107471457