Gym - 100947G Square Spiral Search

題目大意

科學(xué)家目前正在開發(fā)一種稱為“方形螺旋搜索”的算法。該算法按以下順序搜索存儲(chǔ)器位置(也在圖中示出):



現(xiàn)在他想知道:使用方形螺旋搜索到達(dá)地址(x毁渗,y)的內(nèi)存位置需要多少步璃弄。
圖中藍(lán)色數(shù)字為所走步數(shù)肝断。
這題其實(shí)是一個(gè)江恩螺旋四方形迂尝,這個(gè)四方形有個(gè)套路:

  1. 右下對(duì)角線上的數(shù)字是 1鞠评、9茂蚓、25、49剃幌、81聋涨、121、169负乡、225......分別是1牍白、3、5抖棘、7茂腥、9、11切省、13.....這些單數(shù)的平方最岗。

res = (2st+1)(2*st+1)-1(st為其所在圈數(shù))

而在本題中其右下方分別是1、3朝捆、5般渡、7、9芙盘、11驯用、13.....這些單數(shù)的平方-1。

  1. 左上對(duì)角線上的數(shù)字減1是 4何陆、16晨汹、36、64贷盲、100淘这、144剥扣、169......分別是2、4铝穷、6钠怯、8、10曙聂、12晦炊、14.....這些雙數(shù)的平方。

res = (st×2)*(st×2) = 4 ×st

于是筆者把它分類討論了一下宁脊,


斜線右上方的取第二圈最大值點(diǎn)16(-2断国, 2) ,第一圈最大值點(diǎn)4(-1榆苞,1 )
斜線左下方的取第二圈最大值點(diǎn)24(2稳衬,-2),第一圈最大值點(diǎn)8(-1坐漏,1)
屬于右上分塊同一圈的其余點(diǎn)的步數(shù)就等于薄疚,該圈最大步數(shù)減去所求點(diǎn)(x1, y1)到最大步數(shù)點(diǎn)的距離。
然后兩個(gè)分塊的處理上有些細(xì)節(jié)

輸入分析

3
1 0//此點(diǎn)屬于右下-第一圈赊琳,步數(shù)最大值點(diǎn)4(-1街夭,1),△x = |(-1)-1|=2躏筏,△y=|1-0|=1板丽,此點(diǎn)步數(shù)=4-△x-△y=1
1 1
-2 1//此點(diǎn)屬于左下-第二圈,步數(shù)最大值點(diǎn)24(2寸士, -2)檐什,△x= |(-2)-2|=4碴卧,△y=|-2-1|=3弱卡,此點(diǎn)步數(shù)=24-△x-△y=17

代碼分析

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int t;
    long long x, y, st, xx, yy, res;
    scanf("%d", &t);
    while(t--)
    {
        scanf("%lld%lld", &x, &y);
        xx = abs(0-x);  
        yy = abs(0-y);
        st = max(xx, yy); //選出x,y中大的數(shù)字確認(rèn)該點(diǎn)位于第st圈
        if (x + y == 0) //該點(diǎn)在線上
        {
            if (x >= 0) res = (2*st+1)*(2*st+1)-1;//屬于左下段
            else res = (2*st)*(st*2);//屬于右上段
        }
        else if (x+y > 0) //該點(diǎn)位于斜線右上方
        {
            res = (2*st)*(st*2);//該圈中步數(shù)的最大值
            res = res - abs(x+st) - abs(st-y); //求出該點(diǎn)位置
        }
        else
        {
            res = (2*st+1)*(2*st+1)-1;
            res = res - abs(x-st) - abs(st+y);
        }
        printf("%lld\n", res);
    }
    return 0;
}

ps

這題數(shù)據(jù)范圍
-?1,?000,?000,?000?≤?X?≤?1,?000,?000,?000

-?1,?000,?000,?000?≤?Y?≤?1,?000,?000,?000
不能用int 要用long long

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市住册,隨后出現(xiàn)的幾起案子婶博,更是在濱河造成了極大的恐慌,老刑警劉巖荧飞,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凡人,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡叹阔,警方通過查閱死者的電腦和手機(jī)挠轴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來耳幢,“玉大人岸晦,你說我怎么就攤上這事欧啤。” “怎么了启上?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵邢隧,是天一觀的道長。 經(jīng)常有香客問我冈在,道長倒慧,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任包券,我火速辦了婚禮纫谅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘溅固。我一直安慰自己,他們只是感情好发魄,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著汰寓,像睡著了一般。 火紅的嫁衣襯著肌膚如雪苹粟。 梳的紋絲不亂的頭發(fā)上有滑,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音毛好,去河邊找鬼。 笑死肌访,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的艇劫。 我是一名探鬼主播吼驶,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼店煞!你這毒婦竟也來了蟹演?” 一聲冷哼從身側(cè)響起顷蟀,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎羞反,沒想到半個(gè)月后哮兰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體苟弛,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年右遭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了缤削。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片窘哈。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡亭敢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出让腹,到底是詐尸還是另有隱情,我是刑警寧澤骇窍,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布锥余,位于F島的核電站,受9級(jí)特大地震影響驱犹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜雄驹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望荠医。 院中可真熱鬧桑涎,春花似錦彬向、人聲如沸攻冷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凿蒜。三九已至胁黑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間丧蘸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來泰國打工刽漂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人贝咙。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓拂募,卻偏偏與公主長得像,于是被迫代替她去往敵國和親陈症。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容

  • 【1】7徙缴,9嘁信,-1于样,5潘靖,( ) A、4卦溢;B、2单寂;C、-1宣决;D、-3 分析:選D尊沸,7+9=16贤惯;9+(-1)=8;(...
    Alex_bingo閱讀 18,861評(píng)論 1 19
  • 第一章數(shù)和數(shù)的運(yùn)算 一概念 (一)整數(shù) 1整數(shù)的意義 自然數(shù)和0都是整數(shù)孵构。 2自然數(shù) 我們?cè)跀?shù)物體的時(shí)候烟很,用來表示...
    meychang閱讀 2,592評(píng)論 0 5
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個(gè)線程,因...
    小菜c閱讀 6,376評(píng)論 0 17
  • 那個(gè)時(shí)候我也是個(gè)文藝小女子精盅,害羞的小姿態(tài)谜酒,洋洋灑灑的文字叹俏,總是能夠在寫作的時(shí)候?qū)懗霈F(xiàn)在我再也寫不出來的東西僻族。...
    小照閱讀 172評(píng)論 0 1
  • I: 從這一個(gè)段落中,我們能夠?qū)W習(xí)到處理日常事務(wù)優(yōu)先級(jí)的四個(gè)步驟(配以A4紙表格清晰): 優(yōu)先級(jí)排第一位的述么,當(dāng)然就...
    Sonya雅恕閱讀 239評(píng)論 0 0