TIOJ-1353
在歷史上,鴻門宴是齣很大的事件,鴻門宴上,雖不乏美酒佳肴,但卻暗藏殺機,項羽的亞父范增
一直主張殺掉劉邦,在酒宴上,三次舉起所佩玉玦,一再示意項羽發令,但項羽卻猶豫不決,
默然不應。范增召項莊舞劍為酒宴助興,趁機殺掉劉邦,項伯為保護劉邦,也撥劍起舞,掩護了劉邦,
在危急關頭,劉邦部下樊噲帶劍擁盾闖入軍門,怒目直視項羽,項羽見此人氣度不凡,只好問來者是何人,
當得知是劉邦的部將時,即命賜酒,樊噲立而飲之,樊噲還乘機說了一些劉邦的好話,項羽無言以對,劉邦乘機一走了之。
離開之後,劉邦心有不甘,所以假裝釋懷好意、盡釋前嫌,向項羽陪了不是,又邀請楚軍各大將領來參加他所舉辦的『綠門宴』,以殺掉他們的等級將領。
劉邦聽說楚軍將領的分級是按照令牌的數量來決定,而令牌上則有一些數字,很神奇的是除了1以外沒有小於他的數字能整除他,而將領們可以利用那些數字、大於等於一的次方以及乘法,來定義自己鎧甲上的號碼。
如:某A有2與3的令牌,他的鎧甲就有可能是$2^5 \times 3 = 96$
今天將領們按照其鎧甲上的號碼入座,劉邦發現他們鎧甲上的數字剛好形成一個公差為1的等差數列。
如果能殺掉他們等級最高的將領,楚軍必會動搖,而漢軍就有機可乘了!你能幫助他嗎?
輸入兩個數字$a, b$,代表第一個人與最後一個人的號碼,輸出持有最多令牌的人的令牌數量與號碼。
$a, b\le 10^6$,有多筆測資
被包裝了一下。
除了1以外沒有小於他的數字能整除他
代表令牌上的數字為質數,令牌數量為質因數的數量。
所以這問題是給$L,R$,問區間$[L,R]$中含最多質因數的數字(因為公差為1,所以是從整個區間找)。
範圍很大,對於每個數字都用根號去找不太好。
但總值域不大(只有$10^6$),所以可以用埃氏篩,埃氏篩可以記錄每個數字的所有因數或質因數,就可以在$O(nlogn)$的時間建表。
至於詢問,如果詢問數量有點多,那得用線段樹配二分搜,然而我偷懶想賭賭看詢問數很少,從執行時間來看的確很少。
複雜度:$O(nlogn+nT)$,$T$為測資數量。
1 | /* |