马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 zhangjinxuan 于 2022-11-4 20:21 编辑
每周一练第10期 : Root M leaper
大家好,今天是【每周一练】的第10期
这次的每周一练由我帮助用户 @高山 发帖
题面(翻译来自baidu)
有一个 N * N 的棋盘,
我们用 (i,j) 表示顶部第 i 行的格子和左侧第 j 列的格子。
最初,有一个棋子放置在(1,1)上。您可以重复以下操作任意次数:
设(i,j)为棋子当前所在的格子,将棋子移动到距离(i,j)恰好为 M ^ 0.5 的正方形
这里,我们将正方形(i,j)和正方形(k,l)之间的距离定义为 :((i - k) ^ 2 + (j - l) ^ 2) ^ 0.5
对于所有格子(i,j),确定棋子是否可以达到(i,j),如果可以,请找到执行此操作所需的最小操作数。
数据范围:
1 <= n <= 400
1 <= m <= 1000000
保证输入中的所有值都是整数。
输入格式:
输入来自标准输入,格式如下:
输出格式:
打印 N 行,第 i 行应包含N个整数,
如果棋子可以达到(i,j),
则第 i 行中的第 j 个整数应该是这样做所需的最小操作数;否则,应该是-1.
样例输入1:样例输出1:样例输入2:样例输出2:0 3 2 3 2 3 4 5 4 5
3 4 1 2 3 4 3 4 5 6
2 1 4 3 2 3 4 5 4 5
3 2 3 2 3 4 3 4 5 6
2 3 2 3 4 3 4 5 4 5
3 4 3 4 3 4 5 4 5 6
4 3 4 3 4 5 4 5 6 5
5 4 5 4 5 4 5 6 5 6
4 5 4 5 4 5 6 5 6 7
5 6 5 6 5 6 5 6 7 6
解析
[/hide]
完整代码
[/hide](多么突兀的嵌套隐藏啊)
上一篇:分割单词
下一篇:鸡兔同笼 |