bzoj1806 DP Miners 礦工配餐

2021-08-18 11:49:47 字數 1183 閱讀 1726

description

input

輸入的第一行包含乙個整數n (1 ≤ n ≤ 100 000), 表示食品車的數目。

第二行包含乙個由n個字元組成的字串,按照配送順序依次表示食品車配送的食品的型別。每個字元是以下三個大寫字母之一:』m』 (表示肉類),

『f』 (表示魚類) 或 『b』 (表示麵包)。

output

輸出乙個整數,表示最大的總產煤量。 評分 在45分的測試資料中,食品車的數目至多為20

sample input

6

mbmffb

sample output

題解

沉迷刷水無法自拔

f[i][j][k][u][v]表示第i次送餐,1號礦點倒數第一次i,倒數第二次送j,2號礦點同理的最大採礦數

瞎轉移

由於空間只給了64m,可以發現第i次只與第i-1次有關,於是滾動

#include

#include

#include

#include

#include

using

namespace

std;

bool vis[2][4][4][4][4];//倒數第一次 倒數第二次

int f[2][4][4][4][4];

int n,st;

char ch[110000];

int get(char c)

int findch(int x,int y,int c)

else

}int main()

}int ans=0;

for(int i=0;i<=3;i++)

for(int j=0;j<=3;j++)

for(int u=0;u<=3;u++)

for(int v=0;v<=3;v++)if(vis[st][i][j][u][v])ans=max(ans,f[st][i][j][u][v]);

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

return

0;}

BZOJ1806 礦工配餐

也是一道不錯的題目呢!bzoj上面的題的確很好呢,可惜我到現在才開始刷。不可以再把暴力 騙分盡量拿省一然後就投入文化課作為目標了,一是因為運氣不一定那麼好,二是我又重新發現了oi的美。如果這次可以拿到省一,我決定和之前那位大神一樣,停課準備省選,哪怕這很難。此題又涉及dp狀態設計的另乙個技巧,或者說...

BZOJ 1806 樹分塊 模板題

time limit 10 sec memory limit 162 mbsec special judge submit 2685 solved 1635 submit status discuss 餘 人國的國王想重新編制他的國家。他想把他的國家劃分成若干個省,每個省都由他們王室聯邦的乙個成 員...

BZOJ1563 詩人小G(1d1d動態規劃)

小g是乙個出色的詩人,經常作詩自娛自樂。但是,他一直被一件事情所困擾,那就是詩的排版問題。一首詩包含了若干個句子,對於一些連續的短句,可以將它們用空格隔開並放在一行中,注意一行中可以放的句子數目是沒有限制的。小g給每首詩定義了乙個行標準長度 行的長度為一行中符號的總個數 他希望排版後每行的長度都和行...