首页 > 代码库 > UVA11549 Calculator Conundrum 计算器谜题
UVA11549 Calculator Conundrum 计算器谜题
就觉得这题的暴力解法时间复杂度应该会很高,可能循环节会比较小吧
比较好的收获就是这个Floyd判环法
#include <set>#include <cstdio>#include <iostream>#include <algorithm>using namespace std;typedef long long LL;const int maxn = 100005;const int INF = 0x3f3f3f3f;LL pow10 (int n){ LL ans = 1; for(int i = 1;i<=n;++i)ans*=10; return ans;}LL m;LL next(LL k){ k*=k; while(k>=m)k/=10; return k;}int main(){// freopen("in.txt","r",stdin); int T;scanf("%d",&T); while(T--) { LL n,k; cin>>n>>k; m = pow10(n); LL k1 = k,k2 = k,ans = k; do { k1 = next(k1); k2 = next(k2);ans=max(ans,k2); k2 = next(k2);ans=max(ans,k2); } while(k1!=k2); cout<<ans<<endl; } return 0;}
UVA11549 Calculator Conundrum 计算器谜题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。