当前位置: 首页 > news >正文

[题解]P13292 [GCJ 2013 #1C] Pogo

思路

要求步数最少的操作方案,先考虑操作 \(n\) 步能走到 \((x,y)\) 的条件:

  1. \(\frac{n(n + 1)}{2} \geq |x| + |y|\)。显然成立,走到 \((x,y)\) 至少需要走过 \(|x| + |y|\) 个单位长度。
  2. \(\frac{n(n + 1)}{2} \equiv |x| + |y| \pmod 2\)。因为对于第 \(i\) 步会使当前位置的横坐标或纵坐标加 \(i\) 或减 \(i\),对于横坐标和纵坐标在模 \(2\) 意义下的影响,无论是 \(+i\) 还是 \(-i\) 均为 \(i \mod 2\)。最后在 \(n\) 步过后能走到 \((x,y)\) 那么 \(n\) 步过后能走到一个 \((x',y')\) 满足 \(x' \equiv x \pmod 2,y' \equiv y \pmod 2\) 的点显然是原命题的一个必要条件。

不妨猜测上面两个必要条件加起来是充要的,考虑归纳法证明:

  • \(n = 1\) 时,可能走到的点只有 \((0,1),(0,-1),(1,0),(-1,0)\),这些点均满足条件。
  • \(n = 2\) 时,可能走到的点只有 \((1,0),(2,1),(2,-1),(3,0)\),这些点也均满足条件。
  • \(n > 2\) 时,假定 \(n' = n - 1\) 时成立,为了方便叙述,这里假设 \(x \geq |y|\) 其余情况证明方式同理。不妨用这一步操作将 \((x,y)\) 走到 \((x - n,y)\)。若 \(x \geq n\),那么有 \(\frac{n(n + 1)}{2} - n \geq |x| + |y| - n\) 以及 \(\frac{n(n + 1)}{2} - n \equiv x - n + |y| \pmod 2\);若 \(x < n\),那么有 \(n - x + |y| \leq n \leq \frac{n(n + 1)}{2} - n\) 以及 \(\frac{n(n + 1)}{2} - n \equiv n - x + |y| \pmod 2\)

Q.E.D.

证出充要性只需要照着证明过程,从 \((x,y)\) 倒着走回 \((0,0)\) 就行了。

Code

#include <bits/stdc++.h>
#define re register
#define int long longusing namespace std;int x,y;
const int dx[] = {-1,1,0,0};
const int dy[] = {0,0,-1,1};
const char ch[] = {'E','W','N','S'};inline int read(){int r = 0,w = 1;char c = getchar();while (c < '0' || c > '9'){if (c == '-') w = -1;c = getchar();}while (c >= '0' && c <= '9'){r = (r << 3) + (r << 1) + (c ^ 48);c = getchar();}return r * w;
}inline bool check(int n,int x,int y){int sum = (n + 1) * n / 2;return (sum >= abs(x) + abs(y) && sum % 2 == (abs(x) + abs(y)) % 2);
}inline void solve(int tid){int n = 0;vector<char> ans;x = read(),y = read();while (!check(n,x,y)) n++;for (re int i = n;i;i--){for (re int w = 0;w < 4;w++){int tx = x + dx[w] * i,ty = y + dy[w] * i;if (check(i - 1,tx,ty)){x = tx,y = ty;ans.push_back(ch[w]);break;}}} reverse(ans.begin(),ans.end());printf("Case #%lld: ",tid);for (char c:ans) putchar(c);puts("");
}signed main(){int T = read();for (re int i = 1;i <= T;i++) solve(i);return 0;
}
http://www.jsqmd.com/news/308207/

相关文章:

  • 2026年环保设备行业权威推荐:郑州东宏机械设备有限公司领跑行业创新
  • 如何打造开源媒体播放器:5个专业技巧构建个人媒体中枢
  • 2026年外立面ODM源头厂家热门排行,可靠之选别错过!现代外墙砖/罗马柱瓷砖/大门柱子/文化石外墙砖,外立面厂家排行
  • 2026豆包排名优化公司有哪些?行业选择参考
  • 腾讯混元0.5B:超轻量AI边缘推理新标杆
  • 学术研究智能化:AI辅助开题报告内容精修
  • 使用Jenkins持续集成的一些经验总结
  • 智能黑苹果配置:从硬件兼容性检测到EFI自动生成的全流程指南
  • 超越Selenium!揭秘自动化测试新王牌:Playwright
  • CTFAK 2.0游戏资产解编工具全解析:从入门到精通的逆向工程利器
  • 健身房预约小程序开发全解析:实操要点与风控方案
  • GitLab+Jenkins 实现 Webhook 自动化触发构建
  • 黑苹果配置3步突破:用OpCore Simplify打造高性能游戏主机
  • 多线程下载引擎与跨平台文件管理:Ghost Downloader技术架构深度解析
  • IDM(Internet Download Manager)最新安装下载+永久免费版教程,一次安装免费使用
  • 学Simulink--电机电磁兼容与可靠性​场景示例:基于Simulink的电机轴电压与轴电流抑制仿真
  • 学Simulink--电机电磁兼容与可靠性​场景示例:基于Simulink的电机机械共振抑制仿真
  • 水泵噪音根治:FanControl三级降噪方案实现40%静音优化
  • 颠覆传统:智能化配置引领黑苹果OpenCore优化新革命
  • 3个步骤解锁Windows字体自由:用No!! MeiryoUI打造专属视觉体验
  • 2024新手必看:零基础掌握Mindustry开源塔防游戏安装与配置技巧
  • 解锁3D互动抽奖黑科技:3个场景焕新企业活动体验
  • 微信聊天记录解密与导出完全指南:从入门到精通
  • AI论文工具排名显示,6种兼具写作和降重功能的平台效果显著
  • 流媒体解析与视频本地化全攻略:探索m3u8_downloader的高效应用指南
  • 因果性与自洽性的统一,才是数学的意义和价值
  • mysql优化语句时,关注哪几列 extra要关注吗
  • 中央厨房工厂整包哪个品牌好?实力源头厂家与性价比优选综合指南
  • 国内导视系统设计制作公司哪家好?2026年5家硬核技术派深度解析
  • OpCore Simplify智能EFI构建工具完全指南:从硬件检测到系统优化的进阶之路