社区讨论

HACK

P9062 [Ynoi2002] Adaptive Hsearch&Lsearch参与者 3已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@m25lsigv
此快照首次捕获于
2024/10/12 11:35
去年
此快照最后确认于
2025/11/04 17:24
4 个月前
查看原帖
Hack @Renshey 的题解。
使用如下代码生成 hack 数据:
CPP
#include<bits/stdc++.h>
using namespace std;
struct st{
	int x,y;
}a[11];
int main(){
	a[1]={127,0};
	a[2]={127,67};
	a[3]={99,127};
	a[4]={32,127};
	a[5]={0,68};
	a[6]={0,0};
	a[7]={64,32};
	a[8]={193,0};
	cout<<131072<<" "<<16384<<endl;
	for(int i=1;i<=128;i++) for(int j=1;j<=128;j++) for(int k=1;k<=8;k++) printf("%d %d\n",a[k].x+i,a[k].y+j);
	for(int i=1;i<=16384;i++) printf("%d %d\n",i*8-7,i*8);
	return 0;
}
输出应当是 16384163844356
原理:
如果使用 2k2^k 进行划分,只检查 33 个点是错误的。在这个数据里,需要检查 77 个点才能通过。如果初始随机平移也没有关系,我们可以枚举平移量并且每个平移量都塞一个。

回复

4 条回复,欢迎继续交流。

正在加载回复...