UVA11549 電腦謎題(Floyd判圈演算法)

來源:互聯網
上載者:User

標籤:代碼   code   無限   ext   組合   span   count   div   mat   

 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<algorithm> 6 #include<set> 7 #include<sstream> 8 using namespace std; 9 /*int next1(int n,int k)10 {11     stringstream ss;12     ss<<(long long)k*k;13     string s=ss.str();14     if(s.length()>n)s=s.substr(0,n);//結果太長,只取前n位15     int ans;16     stringstream ss2(s);17     ss2>>ans;18     return ans;19 }*/20 int buf[100];21 int next2(int n,int k)22 {23     if(!k) return 0;24     long long k2=(long long)k*k;25     int L=0;26     while(k2>0){27         buf[L++]=k2%10;k2/=10;28     }29     if(n>L)n=L;30     int ans=0;31     for(int i=0;i<n;i++)32     ans=ans*10+buf[--L];//把前min{n,L}位重新組合33     return ans;34 }35 /*int main()36 {37     int T;38     cin>>T;39     while(T--)40     {41         int n,k;42         cin>>n>>k;43         set<int>s;44         int ans=k;45         while(!s.count(k))46         {47             s.insert(k);48             if(k>ans)ans=k;49             k=next1(n,k);50         }51         cout<<ans<<endl;52     }53     return 0;54 }55 */56 int main()57 {58     int T;59     cin>>T;60     while(T--)61     {62         int n,k;63         cin>>n>>k;64         int ans=k;65         int k1=k;int k2=k;66         do{67         k1=next2(n,k1);68         k2=next2(n,k2);if(k2>ans)ans=k2;69         k2=next2(n,k2);if(k2>ans)ans=k2;70         }while(k1!=k2);71         cout<<ans<<endl;72     }73     return 0;74 }

假設有兩個小孩在一個“可以無限向前跑”的環形跑道上賽跑,同時出發,但其中一個小孩的速度是另一個小孩的速度的2倍,那麼跑的快的小孩將追上跑的慢的小孩,

注釋掉的代碼的時間要更長next1要4秒多,next2要1秒。

UVA11549 電腦謎題(Floyd判圈演算法)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.