5864 桃子的長號 台州學院

2021-09-24 20:30:47 字數 1349 閱讀 4575

description

c++課上,老師講到了對映map,桃子覺得對映很神奇,可以把乙個串變成乙個數儲存,也可以把一堆很大的數字變成很小的數字。為了加深對對映的印象,桃子出了下面這個題:

桃子將給你乙個長的十進位制數a,包含n個1-9的數字,你有乙個對映函式f可以把x變成f(x)。

你可以執行以下操作不超過1次:選擇乙個非空的連續子段並把裡面的每個數字x對映成f(x)。例如a=1337,f(1)=1,f(3)=5,f(7)=3,你將選擇區間[2,3],並把3變成f(3)=5,最終得到1557。

現在你執行了操作不超過1次,你可以得到的最大數是多少。

input

第一行乙個整數t(1≤t≤95),代表有t組資料。

對於每組資料:

第一行為乙個整數n(1≤n≤2*105),為十進位制數a的長度。

第二行為n個數字組成的整數a:a1a2...an(1≤ai≤9)。

第三行為9個數字f(1),f(2),...,f(9),代表對映函式f。

資料保證∑n<=106。

output

每組資料輸出一行,代表桃子能得到的最大值。

sample input34

1337

1 2 5 4 6 6 3 1 9

511111

9 8 7 6 5 4 3 2 1233

1 1 1 1 1 1 1 1 1

sample output

1557

99999

33source

tzoj

tag

思路:實際上就是普通的貪心,對於給定的連續區間的對映,只要第乙個大於原先的值,我們就這一步開始進行

不過另外要注意的是,連續的對映,如果有等於的 也要繼續

如1 3 4 5 。。。。

那麼最大的結果肯定是3451155

#include#include#include#include#includeusing namespace std;

typedef long long ll;

int n;

int t;

const int maxn = 2e5+10;

char arr[maxn];

//bool is_ok[maxn];

int f[10];

int main()else

} printf("\n");

} return 0;

}

桃子的兒子

桃子想要乙個兒子了 因為我一直管我的電腦叫我的兒子,所以桃子也總是管我的電腦叫我們的兒子,這會兒她決定要乙個她自己的兒子了。兒子的出生日期定在禮拜天。禮拜天早上,我早早地起來了,山賊還在睡懶覺。我用掃帚挑著丸子乙個月沒洗的襪子在山賊鼻子那裡晃悠了一下,山賊馬上就醒了。在山賊發怒之前,我用乙個盒飯的代...

貪心 阿狸和桃子的遊戲

顯然,這道題目的點權很容易去分配,其關鍵便在於邊權的處理上,即如何處理兩種邊權的情況。還有乙個問題在於,什麼叫做當前的最優選擇,點權和邊權的不同意味著有不同的選擇方法,這也讓這道題變得非常的棘手。我們便來思考一下,如何解決這兩個問題呢?那麼如何將邊權轉移到點權上呢?觀察到特殊的性質,我們發現題目僅僅...

python猴子吃桃子的問題 python小練習

用兩個字串,將他們組合後輸出。str1 input 請輸入乙個人的名字 str2 input 請輸入乙個國家名字 print 世界那麼大,想去 看看。format str1,str2 使用者輸入乙個正整數n,計算從1到n 包含1和n 相加之後的結果。n input 請輸入整數n sum 0 for ...