bzoj4029 貪心 定價

2021-08-17 08:01:58 字數 1385 閱讀 9898

description

在市場上有很多商品的定價類似於 999 元、4999 元、8999 元這樣。它們和 1000 元、5000 元和 9000

元並沒有什麼本質區別,但是在心理學上會讓人感覺便宜很多,因此也是商家常用的**策略。不過在你看來,這種**十分荒謬。於是你如此計算乙個**

p(p 為正整數)的荒謬程度:

1、首先將 p 看做乙個由數字組成的字串(不帶前導 0); 2、然後,如果 p 的最後乙個字元是 0,就去掉它。重複這一過程,直到 p

的最後乙個字元不是 0; 3、記 p 的長度為 a,如果此時 p 的最後一位是 5,則荒謬程度為 2 * a - 1;否則為 2 * a。

例如,850 的荒謬程度為 3,而 880 則為 4,9999 的荒謬程度為 8。 現在,你要**一樣閒置物品,你能接受的定價在 [l,

r] 範圍內,你想要給出乙個荒謬度最低的**。

input

輸入檔案的第一行包含乙個正整數 t,表示測試資料的數目。

每個測試資料佔單獨的一行,包含兩個空格分隔的正整數 l, r,表示定價的區間。

output

對於每個測試資料,在單獨的一行內輸出結果。如果荒謬度最低的**不唯一,輸出最小的那個。

sample input

998 1002

998 2002

4000 6000

sample output

hint

對於 100% 的資料,t ≤ 100,1 ≤ l ≤ r ≤ 10^9.

題解

樸素列舉的話穩定tle

優化一下列舉

可以發現,如果對於1200,那麼他後面的1201,1202,1203… 1299都是不可能更新答案的

所以列舉的時候,每次加10的(後面有多少個0)次方就可以了。。

#include

#include

#include

#include

#include

using namespace std;

int cnt[15]=;

int l,r;

int get(int t)

int las(int t)

int sum(int t)

int main()

}printf("%d\n",ans);

}return

0;}

HEOI2015 定價 (貪心)

先說一下我對這個題目的態度 首先這一題是貪心,這個十分明顯,看了一眼其他題解都是十分優秀的貪心,可是大家都沒有想過嗎 你們貪心都是在區間 l,r 上列舉的貪心,雖然每一次可以直接加上 10 的階乘,但你們畢竟是用的 int long long 啊!這一題得正解複雜度是 log n 的,不得不說題目的...

貪心 bzoj 3008 象棋

本題的難點是 移動過程中不能出現多顆棋子同時在某一格的情況 事實上,可以忽略此條件,因為棋子是相同的,我們可以用合法的等效方案替代一棋子越過另一棋子的情況 a b c三格,a能在一步走到b,b也能在一步走到c。在a的棋子需要走到存在棋子的b,接著走到c。此情形我們可以看成在b的棋子先走到c,接著在a...

bzoj4850 貪心 燈塔

description jsoi的國境線上有n一座連續的山峰,其中第ii座的高度是hi?為了簡單起見,我們認為這n座山峰排成了連續一條 直線.如果在第ii座山峰上建立一座高度為p p 0 的燈塔,jyy發現,這座燈塔能夠照亮第jj座山峰,當且僅當滿足如 下不等式 hj hi p sqrt i j j...