bzoj3097 hash killer 1——构造题
2024-09-01 09:54:59
题意
在 $u64$ 自然溢出下,请输出一串字符串和 $L$,使得对任意 $Base$ 都能找到两个长度为 $L$ 的字串的 $Hash$ 值相同。
分析
$u64$ 自然溢出等价于两个哈希值模 $2^{64}$ 相等。
如果 $Base$ 为偶数,只需构造两串长度至少为65的串且只有最高位不同, 因为偶数肯定含有因子2。
如果 $Base$ 为奇数,构造 $i=12$ 的串和其反串。
详细过程推荐 博客
#include<bits/stdc++.h>
using namespace std; char s[( << ) + ]; int main()
{
s[] = 'a';
int n = ;
for(int i = ;i <;i++)
{
for(int j = ;j < n;j++)
{
if(s[j] == 'a') s[j+n] = 'b';
else s[j+n] = 'a';
}
n <<= ;
}
int l = n >> ;
printf("%d %d\n", n + + l, l);
printf("%s", s);
for(int i = ;i < l+;i++) printf("a");
printf("\n");
return ;
}
最新文章
- react native 刷新机制----通知
- 【Mail】Tomcat提供JNDI方式支持JavaMail(三)
- AngularJS 使用ngOption实现下拉列表
- Kafka 快速起步(作者:杜亦舒)
- C#获取汉字拼音
- Beej网络socket编程指南
- 关于NSNull和nil
- AsyncTask和Handler的对比
- 从事web前端两年半后的迷茫
- Introduction to SharePoint hierarchy
- python 之 批量替换文件中文本后缀
- java.text.DateFormat 多线程并发问题
- 少侠学代码系列(一)->;JS起源
- Pains and Sickness 学习笔记
- 网络编程(1)—TCP
- 如何查看memcache的性能
- (转载)用C#实现MySQL建库及建表
- 为什么要用Markov chain Monte Carlo (MCMC)
- Netty5.x 和3.x、4.x的区别及注意事项(官方翻译)
- @JsonIgnore的源码说明