• UVa 11549 Calculator Conundrum


    大白书里面的题感觉就是没有什么固定的思路,只能认真理解学习汝佳大大的代码。

    这里用的Floyd判圈法,就像插图里面的一样,两个小孩,一个快一个慢,如果实在一个环形跑道,那么快的那个最终一定会“追上”慢的那个。

    明显这里还是有重复计算的部分,但相对其他算法来说还是比较高效的吧,我猜。。

    6s的题居然只用了0.5s,Orz

     1 //#define LOCAL
     2 #include <iostream>
     3 #include <cstdio>
     4 #include <cstring>
     5 using namespace std;
     6 
     7 int buf[100];
     8 
     9 int next(int n, int k)
    10 {
    11     if(k == 0)
    12         return 0;
    13     long long k2 = (long long)k * k;
    14     int L = 0;
    15     while(k2 > 0)
    16     {
    17         buf[L++] = k2 % 10;
    18         k2 /= 10;
    19     }
    20     if(L < n)
    21         n = L;
    22     int ans = 0;
    23     for(int i = 0; i < n; ++i)
    24         ans = ans * 10 + buf[--L];
    25     return ans;
    26 }
    27 
    28 int main(void)
    29 {
    30     #ifdef LOCAL
    31         freopen("11549in.txt", "r", stdin);
    32     #endif
    33 
    34     int T;
    35     scanf("%d", &T);
    36     while(T--)
    37     {
    38         int n, k;
    39         scanf("%d%d", &n, &k);
    40         int ans = k;
    41         int k1, k2;
    42         k1 = k2 = k;
    43         do
    44         {
    45             k1 = next(n, k1);
    46             k2 = next(n, k2);
    47             if(k2 > ans)
    48                 ans = k2;
    49             k2 = next(n, k2);
    50             if(k2 > ans)
    51                 ans = k2;
    52         }while(k2 != k1);
    53         printf("%d
    ", ans);
    54     }
    55     return 0;
    56 }
    代码君
  • 相关阅读:
    spring冲刺第九天
    梦断代码读后感1
    spring冲刺第八天
    站立会议第三天
    站立会议第二天
    站立会议第一天
    购书问题
    团队项目NABCD分析
    你的灯亮着吗读书笔记3
    你的灯亮着吗读书笔记2
  • 原文地址:https://www.cnblogs.com/AOQNRMGYXLMV/p/3887239.html
Copyright © 2020-2023  润新知