头像

欢迎来到我的博客

分享题解与总结

T781740 兰顿蚂蚁

https://www.luogu.com.cn/problem/T781740?contestId=337980

思路:

  1. 弄清坐标系
  2. 把encode(x,y)成64位整数,用于哈希
  3. 找规律(周期)
  4. 模拟,分段处理

注意处理方向dir的技巧

图解:

兰顿蚂蚁S

找规律:

	bool flag;
	for(int k=1;k<=500;++k){//枚举周期 
		flag=true;
		//周期是k的情况下
		//pos[i]于pos[i+k]的坐标偏移量是恒定的
		starti=11000;
		dx=pos[starti+k].first-pos[starti].first;
		dy=pos[starti+k].second-pos[starti].second;
		for(int i=starti;i<=12500;++i){
			if(pos[i+k].first-pos[i].first!=dx||pos[i+k].second-pos[i].second!=dy){
				flag=false;
				break;
			}
		}
		if(flag){
			printf("T=%d\n",k);
			exit(0);
		}
	}
//  T=104

代码:

posted @ 2026-07-14 10:07  king_steph1209  阅读(3)  评论(0)    收藏  举报