http://i.imgur.com/lpY0c1t.jpg
http://i.imgur.com/YZZTKem.jpg
我就是那个笨蛋
我知道把A、B当成圆的直径
圆周上每一点都可以变直角三角形
但是再然后怎么求点座标……
作者:
chinnez (棱靘)
2025-11-08 21:11:00作者:
ainamk (腰包王道)
2025-11-08 21:17:00编译器就是那个八云蓝 不用太担心
作者:
e5a1t20 (吃饭)
2025-11-08 21:21:00a^2+b^2=c^2 验证简单,但要怎么找比较快我就不知道了
仔细看了题意 他只是要你找一个座标给笨蛋探险而已那里到底有没有宝藏不在你的责任范围内
作者:
GY426 (GY426)
2025-11-08 21:26:00直接穷举 计算有没有符合毕氏定理吧 再快就是圆跟两条切线
真正麻烦的应该是输入两点在同一行或同一列上然后彼此距离是奇数 这样可能会真的要穷举搜寻不同行列 或 同一行列但距离偶数 直接传简单解就好了
作者:
ainamk (腰包王道)
2025-11-08 21:30:00不在同一行或同一列的话就A点的x座标+B点的y座标
作者:
emptie ([ ])
2025-11-08 21:31:00AB都是格子点,所以(x,y) (z,w) 作为斜边的话, (x,w) 与
作者: kaomark 2025-11-08 21:31:00
若x1!=x2且y1!=y2那x1,y2或者x2,y1就是解了
作者:
ainamk (腰包王道)
2025-11-08 21:32:00座标完全一样要在输入那边就排除 这个倒是简单
写搜寻的会大中计 因为可能会搜不到解但实际上只要输入合法就一定有解测试资料一定会准备这种横向搜寻会爆的内容来堵人
作者:
ainamk (腰包王道)
2025-11-08 21:39:00其实这出题也有点微妙 东方+程设应该要算三途川的宽度才对
这范围意思是保你int32够用然后如果你中计了想用暴力搜寻 你会觉得要用int64(用浮点数的话大数字平方精确度会报掉)结果第一笔测试资料是0 0 0 1 你搜寻不出来 整题零分
作者:
ainamk (腰包王道)
2025-11-08 21:47:00我程设只有皮毛 int64会出什么问题?
不是int64的问题 是你以为输入两点必是斜边的问题题目实际上没这个条件 所以他敢保证一定有解但你一定是误以为有这个条件才会走到毕氏定理搜寻
作者:
e5a1t20 (吃饭)
2025-11-08 22:01:00我刚刚想到只要一组解,最快就是找等腰直角三角形像0 0 4 2,就直接给2 -4,出界还有三组解可以试
作者:
ainamk (腰包王道)
2025-11-08 22:02:00他给你的点AB未必会有等腰直角三角形的格子点解
作者:
e5a1t20 (吃饭)
2025-11-08 22:03:00对,的确不能保证有解
作者:
ainamk (腰包王道)
2025-11-08 22:05:00转90度虽然是很简单暴力的作法但很容易超出范围
作者:
e5a1t20 (吃饭)
2025-11-08 22:08:00实际解应该是两条垂直线,还有以两点为直径的圆
作者:
ainamk (腰包王道)
2025-11-08 22:09:00他给你的是两个格子点所以两条垂直线你已经有了 不需要圆
作者:
e5a1t20 (吃饭)
2025-11-08 22:14:00可是刚刚才说格子点不一样有解,有可能出界,然后给你狠一点来个xy互质的座标,保证中间找不到整数点*不一定有解
一定有解 题目的保证有解的意思其实是这样:“如果你能想到其实这么简单,那当然一定有解”范围是正方形不是圆形 不同行列输入你就吐一个直角点同行列输入你就转90度加一或减一(确认边界方向)
作者:
ainamk (腰包王道)
2025-11-08 22:18:00不只保证有解而且保证两个 但讲出有两个等于破梗XD
如果是其它制造直角三角形的方式 出题者的测试资料一定会准备那种方式会爆掉的输入只要你任何一笔资料答不出来 他甚至有理由给整题零分
作者:
jpadesky (何も知らない老人(′・ω・‵)
2025-11-08 22:21:00他的问题对人很好耶,在实数上求点
作者:
ainamk (腰包王道)
2025-11-08 22:21:00xy座标轴上不会出现实数以外的东西吧…
这题比较微妙的是 他是程式题 程式沿着一个方向搜寻是很合理的想像 但这题只要一想到搜寻就是死
作者:
ainamk (腰包王道)
2025-11-08 22:23:00比较大的问题是原po给了一个很大的杂音让人会想要搜寻XD不然你看例题里的输入输出应该很直觉会想到拉长方形
我看到例题有想到当斜边就很简单 然后“如果同行列的话就没这么简单了” 然后就爆了
作者:
ainamk (腰包王道)
2025-11-08 22:44:00平移到原点可能会让另一点跑出定义范围 直接取(x1,y2)就好
作者:
usoko (time to face reality)
2025-11-08 23:18:00“有多解输出任意一组即可” 那就超简单了 又不是要你算有几种解....
斜边的情况x1!=x2 y1!=y2输出x1 y2就好反过来说ifx1==x2 的情况就是输出x1+1 y1同理处理y1==y2 暴力破解法但这种题目很可能会有10^9做边的情况去gank +1所以要选座标小的那边去加 应该就能符合条件了
作者:
soem (æµæ°´)
2025-11-09 10:22:00加个判断,尽量往原点歪过去就好了;阿但是2^32不会爆啦喔对喔,超出定义域了,还是要避开