函式的魔法(bfs)

2021-09-05 12:57:06 字數 1642 閱讀 5739

時間限制:c/c++ 1秒,其他語言2秒

空間限制:c/c++ 262144k,其他語言524288k

64bit io format: %lld

一位客人來到了此花亭,給了女服務員柚乙個數學問題:我們有兩個函式,f(x)函式可以讓x變成(x*x*x+x*x)mod 233。g(x)函式可以讓x變成(x*x*x-x*x)mod 233,我們可以任意的對a使用f(x),和g(x),問最少需要多少次使用這兩個函式讓a變成b。

第一行輸入乙個t,表示t組案例(t<100000),然後輸入兩個整數a,b,表示我們需要把a變成b。(0<=a<=2000000000,0<=b<=2000000000)
輸出乙個整數表示從a到b最少需要多少次操作,如果不能請輸出-1.
示例1

複製

1

2 186

複製

2
我們首先使用f(x),將2變成(2*2*2+2*2)mod 233=12。然後我們再將12通過g(x),變成(12*12*12-12*12)mod 233=186
#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define eps (1e-8)

#define max 0x3f3f3f3f

#define u_max 1844674407370955161

#define l_max 9223372036854775807

#define i_max 2147483647

#define re register

#define pushup() tree[rt]=max(tree[rt<<1],tree[rt<<1|1])

#define nth(k,n) nth_element(a,a+k,a+n); // 將 第k大的放在k位

#define ko() for(int i=2;i<=n;i++) s=(s+k)%i // 約瑟夫

#define ok() v.erase(unique(v.begin(),v.end()),v.end()) // 排序,離散化

using namespace std;

inline int read()

while(c >= '0' & c <= '9') x = x * 10 + c - '0', c = getchar();

return x * f;

}typedef long long ll;

const double pi = atan(1.)*4.;

const int m=63;

const int n=1e5+5;

ll mod=233;

ll a,b;

ll s[250][250]=;

struct fun;

ll bfs(ll x)

}return -1;

}void fun()

for(int i=0;i<233;i++)

}int main()

else

printf("%lld\n",s[a][b]);}}

return 0;

}

python的魔法函式

所以還是老老實實的把自己的基本功練好,物件導向玩的爐火純青,其他的不過是稍加訓練,跟賣藝的學幾招也能稱霸一片天。哈哈 牛吹的太過了,還是回到正題,總結分享一下一些稍微不太熟悉的魔法方法。一 str 它表示的是直接列印物件實現的方法,str 是被print函式呼叫的,一般都是返回乙個值,這個值是以字串...

python的魔法函式

所以還是老老實實的把自己的基本功練好,物件導向玩的爐火純青,其他的不過是稍加訓練,跟賣藝的學幾招也能稱霸一片天。哈哈 牛吹的太過了,還是回到正題,總結分享一下一些稍微不太熟悉的魔法方法。一 str 它表示的是直接列印物件實現的方法,str 是被print函式呼叫的,一般都是返回乙個值,這個值是以字串...

autoload魔法函式

通常php5在使用乙個類時,如果發現這個類沒有載入,就會自動執行 autoload 函式,在這個函式中我們可以載入需要使用的類。autoload至少要做三件事情 第一件事是根據類名確定類檔名。第二件事是確定類檔案所在的磁碟路徑。第三件事是將類從磁碟檔案中載入到系統中。示例 function auto...