{"id":121,"date":"2010-02-23T00:59:00","date_gmt":"2010-02-22T16:59:00","guid":{"rendered":"http:\/\/localhost\/?p=121"},"modified":"2010-02-23T00:59:00","modified_gmt":"2010-02-22T16:59:00","slug":"sgu_455","status":"publish","type":"post","link":"https:\/\/www.shuizilong.com\/wjmzbmr\/?p=121","title":{"rendered":"SGU 455"},"content":{"rendered":"<p> \u5c31\u662f\u8bf4\u7ed9\u4f60\u4e00\u4e2a\u5e8f\u5217\u3002\u7b2c0\u9879\u662f1\u5176\u4f59\u7531\u4e0a\u4e00\u9879\u51b3\u5b9a\u3002\u3002<br \/>\u5982\u679c\u7b2c\u4e00\u4e2a\u4e0e\u524d\u9762\u7684\u6570\u91cd\u590d\u7684\u6570\u7684\u7f16\u53f7\u5c0f\u4e8e2000000\u3002\u3002\u5c31\u8f93\u51fa\u8fd9\u4e2a\u7f16\u53f7\u3002\u3002\u5426\u5219\u5c31\u8f93\u51fa-1.\u3002<br \/>\u5206\u6790\uff1a\u4e00\u5f00\u59cb\u6211\u5f53\u7136\u60f3\u7684\u662f\u7528hash\uff0cset\u4e4b\u7c7b\u7684\u6570\u636e\u7ed3\u6784\u6765\u641e\u5b9a\u3002\u3002\u7ed3\u679cTLE\u7684\u8ddf\u9b3c\u4e00\u6837\u3002\u3002<br \/>\u540e\u6765\u6211\u5728wiki\u4e0a\u770b\u5230\u4e86\u5bfb\u627e\u5faa\u73af\u8282\u7684O\uff081\uff09\u7a7a\u95f4\u7b97\u6cd5\u3002\u3002\u8fd9\u624d\u604d\u7136\u5927\u609f\u3002\u3002\u771f\u7684\u5f88\u795e\u5947\u3002<br \/>Link\uff1a<a href=\"http:\/\/en.wikipedia.org\/wiki\/Cycle_detection#Tortoise_and_hare\" target=\"_blank\">Cycle Finding<\/a><br \/>\u7b80\u5355\u7684\u4ecb\u7ecd\u4e00\u4e0b\u5427\u3002\u3002\u8bbeFx\u662f\u5e8f\u5217\u4e2d\u7684\u7b2cx\u4e2a\u6570\u3002\u3002\u5f04\u4e24\u4e2a\u6307\u9488\u3002\u3002\u4e00\u4e2a\u6307\u5411Fi\u3002\u3002\u4e00\u4e2a\u6307\u5411F2*i\u3002\u3002<br \/>\u6bcf\u6b21\u8bb2i\u52a0\u4e00\uff0c\u90a3\u4e48\u7b2c\u4e00\u4e2a\u6307\u9488\u524d\u8fdb1\u4e2a\u3002\u7b2c\u4e8c\u4e2a\u524d\u8fdb\u4e24\u4e2a\u3002\u76f4\u5230Fi=F2*i\u4e86\u3002\u3002i\u5c31\u662f\u4e00\u4e2a\u5faa\u73af\u8282\u4e86\u3002\u3002<br \/>\u7136\u540e\u4ece\u7b2c0\u4e2a\u6570\u5f00\u59cb\u63a8\u8d77\u3002\u3002\u627e\u51fa\u7b2c\u4e00\u4e2ax\u4f7fFx=Fx+i\u3002\u3002<br \/>\u7136\u540e\u518d\u4ecex\u5f80\u540e\u63a8\u3002\u3002\u627e\u5230\u7b2c\u4e00\u4e2a\u4e0e\u5176\u76f8\u7b49\u7684\u3002\u5c31\u662f\u7b54\u6848\u4e86\u3002\u3002<br \/>Code\uff1a<\/p>\n<p><strong><em>#include&lt;iostream&gt;<br \/><\/em><\/strong><strong><em>using namespace std;<br \/>typedef long long ll;<br \/>ll A,B,C;<br \/>const int maxn=2e6;<br \/>ll next(const ll&amp;x)<br \/>{<br \/>    return (A*x+x%B)%C;<br \/>}<br \/>void init()<br \/>{<br \/>    cin&gt;&gt;A&gt;&gt;B&gt;&gt;C;<br \/>}<br \/>bool solve()<br \/>{<br \/>    ll l=next(1),r=next(l);<br \/>    for(int i=1;i&lt;=maxn+1;i++)<br \/>    {<br \/>        if(l==r) break;<br \/>        l=next(l);<br \/>        r=next(r);r=next(r);<br \/>    }<br \/>    if(l!=r) return false;<br \/>    l=1;int f=0;<br \/>    while(l!=r)<br \/>    {<br \/>        l=next(l);<br \/>        r=next(r);<br \/>        f++;<br \/>    }<br \/>    r=next(l);<br \/>    for(int n=f+1;n&lt;=maxn;n++)<br \/>    {<br \/>        if(l==r){cout&lt;&lt;n&lt;&lt;endl;return true;}<br \/>        r=next(r);<br \/>    }<br \/>    return false;<br \/>}<br \/>int main()<br \/>{<br \/>    init();<br \/>    if(!solve())cout&lt;&lt;-1&lt;&lt;endl;<br \/>}<\/em><\/strong><br \/>\u672c\u9ad8\u4eae\u4ee3\u7801\u4f7f\u7528codeHl\u751f\u6210\uff0c <\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5c31\u662f\u8bf4\u7ed9\u4f60\u4e00\u4e2a\u5e8f\u5217\u3002\u7b2c0\u9879\u662f1\u5176\u4f59\u7531\u4e0a\u4e00\u9879\u51b3\u5b9a\u3002\u3002\u5982\u679c\u7b2c\u4e00\u4e2a\u4e0e\u524d\u9762\u7684\u6570\u91cd\u590d\u7684\u6570\u7684\u7f16\u53f7\u5c0f\u4e8e2000000\u3002\u3002\u5c31\u8f93\u51fa\u8fd9\u4e2a\u7f16\u53f7\u3002\u3002\u5426\u5219\u5c31\u8f93\u51fa-1.\u3002\u5206\u6790\uff1a\u4e00\u5f00\u59cb\u6211\u5f53\u7136\u60f3\u7684\u662f\u7528hash\uff0cset\u4e4b\u7c7b\u7684\u6570\u636e\u7ed3\u6784\u6765\u641e\u5b9a\u3002\u3002\u7ed3\u679cTLE\u7684\u8ddf\u9b3c\u4e00\u6837\u3002\u3002\u540e\u6765\u6211\u5728wiki\u4e0a\u770b\u5230\u4e86\u5bfb\u627e\u5faa\u73af\u8282\u7684O\uff081\uff09\u7a7a\u95f4\u7b97\u6cd5\u3002\u3002\u8fd9\u624d\u604d\u7136\u5927\u609f\u3002\u3002\u771f\u7684\u5f88\u795e\u5947\u3002Link\uff1aCycle Finding\u7b80\u5355\u7684\u4ecb\u7ecd\u4e00\u4e0b\u5427\u3002\u3002\u8bbeFx\u662f\u5e8f\u5217\u4e2d\u7684\u7b2cx\u4e2a\u6570\u3002\u3002\u5f04\u4e24\u4e2a\u6307\u9488\u3002\u3002\u4e00\u4e2a\u6307\u5411Fi\u3002\u3002\u4e00\u4e2a\u6307\u5411F2*i\u3002\u3002\u6bcf\u6b21\u8bb2i\u52a0\u4e00\uff0c\u90a3\u4e48\u7b2c\u4e00\u4e2a\u6307\u9488\u524d\u8fdb1\u4e2a\u3002\u7b2c\u4e8c\u4e2a\u524d\u8fdb\u4e24\u4e2a\u3002\u76f4\u5230Fi=F2*i\u4e86\u3002\u3002i\u5c31\u662f\u4e00\u4e2a\u5faa\u73af\u8282\u4e86\u3002\u3002\u7136\u540e\u4ece\u7b2c0\u4e2a\u6570\u5f00\u59cb\u63a8\u8d77\u3002\u3002\u627e\u51fa\u7b2c\u4e00\u4e2ax\u4f7fFx=Fx+i\u3002\u3002\u7136\u540e\u518d\u4ecex\u5f80\u540e\u63a8\u3002\u3002\u627e\u5230\u7b2c\u4e00\u4e2a\u4e0e\u5176\u76f8\u7b49\u7684\u3002\u5c31\u662f\u7b54\u6848\u4e86\u3002\u3002Code\uff1a #include&lt;iostream&gt;using namespace std;typedef long long ll;ll A,B,C;const int maxn=2e6;ll next(const ll&amp;x){ return (A*x+x%B)%C;}void init(){ cin&gt;&gt;A&gt;&gt;B&gt;&gt;C;}bool solve(){ ll l=next(1),r=next(l); for(int i=1;i&lt;=maxn+1;i++) { if(l==r) break; l=next(l); r=next(r);r=next(r); } if(l!=r) return false; l=1;int f=0; while(l!=r) { l=next(l); r=next(r); f++; } r=next(l); for(int n=f+1;n&lt;=maxn;n++) { if(l==r){cout&lt;&lt;n&lt;&lt;endl;return true;} r=next(r); } return false;}int main(){ init(); if(!solve())cout&lt;&lt;-1&lt;&lt;endl;}\u672c\u9ad8\u4eae\u4ee3\u7801\u4f7f\u7528codeHl\u751f\u6210\uff0c<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[10],"tags":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=\/wp\/v2\/posts\/121"}],"collection":[{"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=121"}],"version-history":[{"count":0,"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=\/wp\/v2\/posts\/121\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=121"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=121"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=121"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}