列表

详情


NC230903. 金蛇狂舞

描述

你从他的谈吐,亲近了冷漠历史、陌生远方。

使用 上取整、下取整、阶乘算术平方根 四种运算,完成对一个数字的变换。

例如从 4 变换到 6



每次阶乘计为一步,每次开根号并向上/向下取整计为一步。

请你找到从 x 变换到 y 所需的最小步数。

输入描述

第一行输入数据组数

接下来每行输入两个正整数

输出描述

每行输出一个整数,表示由 x 变换到 y 的最小步数,如果由 x 七步之内不可能变换到 y,输出  即可。

示例1

输入:

3
1 7
4 6
3 7

输出:

-1
4
-1

说明:

样例 #2,从 4 变换到 6 共需 2 次开根号,2 次阶乘,需要的步数为 2+2=4 步。

样例 #3 中,可以证明 3\rightarrow7 至少需要 9 步,因此输出 -1

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++ 解法, 执行用时: 2ms, 内存消耗: 384K, 提交时间: 2021-12-18 16:36:59

#include<bits/stdc++.h>
int ans[8][8]={0,0,0,0,0,0,0,0, 0,0,-1,-1,-1,-1,-1,-1,0,1,0,-1,-1,-1,-1,-1,0,1,1,0,7,4,1,-1,0,2,1,3,0,2,4,-1,0,2,1,1,3,0,2,6,0,2,1,1,6,3,0,-1,0,2,1,1,7,5,2,0};int T,x,y;int main(){scanf("%d",&T);while(T--){scanf("%d%d",&x,&y);printf("%d\n",ans[x][y]);	}}

上一题