首页 > 函数的魔法
头像 Kur1su
发表于 2020-12-14 20:37:35
Description 一位客人来到了此花亭,给了女服务员柚一个数学问题:我们有两个函数,F(X)函数可以让X变成(XXX+XX)mod 233。G(X)函数可以让X变成(XXX-XX)mod 233,我们可以任意的对A使用F(X),和G(X),问最少需要多少次使用这两个函数让A变成B。 Solut 展开全文
头像 lifehappy
发表于 2020-12-14 18:55:43
函数的魔法 裸的直接写就好了。 #include <bits/stdc++.h> using namespace std; const int mod = 233; int vis[mod + 10]; typedef pair<int, int> pii; int 展开全文
头像 hnust_yangyanjun
发表于 2020-12-16 12:03:30
题意:你可以进行二种操作: 操作一:可以将x变成F(x),F(x)=(x * x * x+x * x)%233;操作二:可以将x变成G(x),G(x)=(x * x * x-x * x)%233; 求最少多少次可以使a变成b,如果无解则输出-1; 思路:先对233以内的数到233以内的数进行预处理: 展开全文
头像 BNDSBilly
发表于 2020-12-14 15:48:15
题目链接思路:BFS简单模拟两个函数,然后通过BFS不断将当前可能的两种操作放入队列,只要变成了B就说明是最小次数,代码如下: #include<bits/stdc++.h> using namespace std; #define ll long long #define lson l 展开全文
头像 MYCui_
发表于 2020-12-14 20:55:17
前言 这道题您看上去难道不是广搜题吗 ? 数学题的标签是来迷惑人的?(貌似我并不知道数学用在哪里了) 思路 首先为什么考虑广度优先搜索? 不难发现这道题目给出的模数相当的小啊,同时我们要求出最少次数。 于是我们用广搜的话,对于每一个余数我们最多遍历一次,于是时间复杂度为: O( * ) (Mod 表 展开全文
头像 Trkly
发表于 2020-12-19 14:08:39
参考代码: #include<bits/stdc++.h> #define inf 1000000007 using namespace std; int d[1000][1000]; int main(){ for (int i=0;i<233;i++) for (int 展开全文
头像 90nwyn
发表于 2019-07-19 18:05:12
题目:https://ac.nowcoder.com/acm/contest/326/C 先用bfs求从a走到b的步数,用二维数组dis保存 (dis[a][b]表示从a到b操作的最少次数) 对于a==b或者b>233的情况直接输出答案 展开全文
头像 耕云种月
发表于 2022-01-16 19:05:02
原题解链接:https://ac.nowcoder.com/discuss/150263 时间复杂度预处理O(233∗233∗233)O(233*233*233)O(233∗233∗233) 单次查询O(1)O(1)O(1) 弗洛伊德处理233∗232233*232233∗232对之间的转换最短路。 展开全文

等你来战

查看全部