ZeroJudge - c695: 藍燄番外篇——敗者之路(其一) 解題心得

Multi tool use
Multi tool use
(function(w,d,s,l,i);w[l].push('gtm.start':
new Date().getTime(),event:'gtm.js');var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
)(window,document,'script','dataLayer','GTM-KDKMGT');
(function(d, s, id) var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/zh_TW/all.js#xfbml=1&appId=668497826514848"; fjs.parentNode.insertBefore(js, fjs); (document, 'script', 'facebook-jssdk'));






if(BAHAID)
BAHAID = BAHAID.replace(/&/g, "&")
.replace(/, "<")
.replace(/>/g, ">")
.replace(/"/g, """)
.replace(/'/g, "'");

BAHAIDlow = BAHAID.toLowerCase();

document.write('');

document.write('

');
document.write('');
document.write('');
document.write('');
document.write('

');

//document.write('
');
document.write('
');
document.write('
');
document.write('
');
document.write('
');
document.write('
');
document.write('
');
document.write('
');


else
document.write('
');
document.write('');
document.write('
    ');
    document.write('
  • 我要登入
  • ');
    document.write('
  • 註冊
  • ');
    document.write('
  • ');
    document.write('
');
document.write('
');


document.write('
');

document.write(' ');

(function()
var cx = 'partner-pub-9012069346306566:kd3hd85io9c';
var gcse = document.createElement('script');
gcse.type = 'text/javascript';
gcse.async = true;
gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(gcse, s);
)();

service = new rsearch('rsearch');

if( BAHAID )
NOTIFY_getnum();
run30 = setInterval("NOTIFY_getnum()",60000);


function insideSecondaryfunc(frm, evt){
if( 0

















breadCrumbs(122, '', 'homeuid=inversion')








    breadCrumbs_listMenu(122, 0, 'homeuid=inversion')





    創作內容





    0 GP


    ZeroJudge - c695: 藍燄番外篇——敗者之路(其一) 解題心得


    作者:Not In My Back Yard│2018-09-16 11:42:12│贊助:0│人氣:10



    題目連結:

    c695: 藍燄番外篇——敗者之路(其一)

    註:這題是由本人出題








    題目大意:

    有一數列按以下的模式生成:

    在數線上從0開始,做一系列的『跳躍』。第一次跳躍跳一個單位,會落到1;第二次跳躍跳兩個單位,落到3;第三次跳三格到6;第四次則因為2尚未到過,所以優先跳回去2。

    也就是:每次跳躍的距離為上一次+1。而如果『往回跳』的點曾未到過,則往回跳;不然,往前跳(以數線來講,『往回跳』即是往數線的左側,『往前』則是往數線的右端)。因此同一個點是有可能會跳到兩次以上的。

    而對於每一次的跳躍,以起跳點與落地點為兩端點,兩點的距離為半徑,做半圓。每奇數次的跳躍,做下半圓;反之,做上半圓。
    如此這般,會畫出以下圖形(附圖非完整圖形):


    現在給你此圖形上的一些點之座標(X和Y,皆小於5000000,但 ≧ 0),求這個點是位於第幾次跳躍的時候,所畫出的半圓之上。(若有多種可能,請給出次數最小的那一次,且保證答案小於1000000)。



    若X=Y=0,則停止程式(不對此行測資做任何輸出)。









    解題思維:

    作為本題的始作俑者(?。我只能說除了題目敘述是小說、稍長以外,這題實際上並沒有什麼了不起的演算法。



    首先,就是硬A出上面數列(這數列目前沒有所謂的數學公式),照著上面的方式即可。每一次跳躍的距離是上一次的距離+1,前面(數線的左測)沒有跳過的數字優先跳回去;否則,往後跳。



    再來就是判斷給定的X、Y是在哪次跳躍上畫出的半圓。



    用迴圈按照順序跑過剛剛產生出的數列。每一項跟上一項的數字相減取絕對值和平均值。



    絕對值即是上一次的跳躍之距離,也就是上次跳躍所畫出的半圓之「直徑」。因為是直徑,而我們等等用圓的方程式是半徑,所以將絕對值除以2,並叫做R。



    而平均值即是「圓心」。因為必定在數線上,所以設座標為(H, 0)。



    讀者不需對「半圓」這件事做任何處理,因為出題者(就是我)已經保證給定的點一定在圖形上,因此要擔心「半圓」的只有我XD(這題的測試資料莫名難生)



    把X、Y代入平面空間(只有X、Y軸)的圓方程式:

    (X - H)^ 2 + Y ^ 2 = R ^ 2



    若等號左右真的成立,即代表X、Y是在這次跳躍所畫出的半圓上。











    註:

    這個數列叫做「Recamán」數列,參見OEIS的A005132。關於此數列有一猜想:所有正整數(包含0)皆會出現在此數列裡。



    但是即便算到了第10 ^ 230項,仍然不見852655這個數字的蹤影。



    如想看一些關於這個數列的一些趣事,可以看Numberphile的這部影片。



    此外,大推Numberphile這個頻道。裡面有著各式各樣的數學小知識,有的可以跟生活連結,有的則是知道了會很酷(?。總之就是個科普頻道。








    本人的程式碼(放在CodePile)


    此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。






    喜歡0
    收藏
    0
    引用
    0
    留言
    推上首頁



    檢舉








    引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4131674

    All rights reserved. 版權所有,保留一切權利





    相關創作

    同標籤作品搜尋:程式題目解題心得





    ZeroJudge - c198: 保持穩定供電 解題心得




    c468: 4th CPSC Problem 4-上色新也 解題心得




    ZeroJudge - d017: AB Circle 解題心得




    ZeroJudge - c504: 旅行者_九國遊歷記<9> 小黑去鷺國 解題心得




    ZeroJudge - d587: 參貳壹真好吃 解題心得


    留言共 0 篇留言




    Util.ChangeText('replys', Util.ChangeText.FLAG_LAZYLOAD|Util.ChangeText.FLAG_MAX_SIZE|Util.ChangeText.FLAG_BALA_PLAYER);

    我要留言提醒:您尚未登入,請先登入再留言


    0喜歡★inversion 可決定是否刪除您的留言,請勿發表違反站規文字。



    前一篇:ZeroJudge - ...

    後一篇:ZeroJudge - ...








    egg('.MSG-list8C img').each(function(elem)
    elem.className = elem.className + ' lazyload';
    );

    egg('.gallery-image').imageGallery();

    function deleteCreation(vCode)
    var content = egg('.MSG-list8C').html();
    var pattern = /]*?>/i;
    var html = '
    確定要刪除嗎?';
    var width = '200px';
    if(content.match(pattern))
    html += '
    ';

    var boxConfig =
    'closeButton': false,
    'css':
    'width': width

    ;

    egg.mutbox(html, '訊息',
    '確定': function()
    if(egg('#chkDelTruthImage:checked').size())
    egg('[name=delTruthImage]').val('yes');


    egg.cookie.del('ckHOME_CREATION','home.gamer.com.tw','/');
    egg.cookie.set('ckHOME_CREATION',vCode,'home.gamer.com.tw','/');
    document.getElementById('frmDel').submit();
    egg.lightbox.close();
    ,
    '取消': function()
    egg.lightbox.close();

    ,boxConfig);

    var buttonOk = egg('.BH-popbtns :button:eq(0)');
    if(buttonOk.size())
    buttonOk.get(0).focus();



    resizeImage(627);

    egg('.btnGp').click(function()
    $.mutbox('請先登入才能進行此動作', '訊息', '確定':function()location.href='https://user.gamer.com.tw/login.php';);
    );







    訂閱私訊


    作品資料夾


    ZeroJudge (63)


    未分類 (0)


    enchnater000ALL
    厭倦一成不變的遊戲了嗎?一起來做屬於你的遊戲吧!http:///www.chimakier.com看更多我要大聲說昨天20:53







    googletag.cmd.push(function() googletag.display('div-gpt-ad-1489070677458-0'); );



    (function(window, $)
    var $window = $(window);
    var $document = $(document);
    var $BH_slave = $("#BH-slave");
    var $BH_master = $("#BH-master");
    var $flySalve = $("#flySalve");
    var posY = $flySalve.position().top;
    var fad_style = document.getElementById("flySalve").style;
    var BH_wrapper_width = $('#BH-wrapper').width();
    var BH_topBar_height = $('.TOP-bh').height();
    $(window).on("scroll", function()
    posY = $BH_slave.height() - (fad_style.position === 'fixed' ? 0 : $flySalve.height());

    if ($document.scrollTop() > (posY + $BH_slave.offset().top - BH_topBar_height) && $BH_slave.height() < $BH_master.height())
    fad_style.position = 'fixed';
    fad_style.top = BH_topBar_height + 'px';
    if ($(window).width() < BH_wrapper_width)
    fad_style.left = (BH_wrapper_width - $BH_slave.width() - $document.scrollLeft())+'px';

    else
    fad_style.position = '';

    ).on("resize", function()
    fad_style.left = null;
    );
    )(window, jQuery);
















    face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】





    The name of the picture黑色沙漠手遊公會缺人名稱是GO歡迎大家查詢到後加入

    This page is only for reference, If you need detailed information, please check here
    The name of the pictureThe name of the picture

    7 bjUaU 6rGTAQM,lGz,ehM6fmECag0G Gbf5 yGFS7ULjGu9Pc uz,feFlHe,iXoPhRrJFhLNPTCkocmoNKprvWQSzDF6B
    lSIK93zNF6CS,bbi

    Popular posts from this blog

    【情報】本週珍珠商品重點:煉金時裝 + 艾港勞工宿舍!!

    【攻略】陳戈-謝勒汗智慧的古書 (完成)

    【問題】砍劈摔擊的問題