2018第九屆藍橋杯B組決賽題解第五題 搭積木

2021-08-20 07:59:48 字數 1175 閱讀 1377

此處可以交題~

思路:本題應該是dp題,當時到最後乙個小時才慢慢想清本題到底考什麼模型.

我們清楚每一層都有乙個可行的最大高度,他說每一層必須連續也就是說我們取的l到r區間的高度不能有高度先下降後上公升的情況,也就是我們可以列舉每乙個合法不含x的l,r區間,然後對於區間內的第i個柱子,高度從1開始列舉,搜尋所有情況。

當然直接搜尋複雜度是很高的 ,但是我們發現對於第i個高度取h,並且後面可以上公升還是只能下降也是確定的,那麼後面的情況數我們是可以記憶化來做的。

下面是我的**,100×100的圖400ms左右

**:

#include#define mem(a,b) memset(a,b,sizeof(a))

#define mod 1000000007

using namespace std;

typedef long long ll;

const int maxn = 2e5+5;

const double esp = 1e-12;

const int ff = 0x3f3f3f3f;

map::iterator it;

int n,m,l,r;

int h[233];

ll dp[2][133][133];

char mp[233][233];

void get_height()//得到每一列的高度

h[i] = hi; }

return ;

}ll dfs(int pos,int sta,int last)

else

}return dp[sta][pos][last] = sum;

}int main()

int j = i;

while(j<= m&&mp[n][j] == '.')

j--;

//i,j為不含x的區間

for(r = j;r>= i;r--)//把r固定調整l,這樣搜過的還能繼續用,節省時間

}i = j+1;//更新i }

printf("%lld\n",(ans+1)%mod);

return 0;

}

2018第九屆藍橋杯B組決賽題 雷射樣式 dfs

x星球的盛大節日為增加氣氛,用30台機光器一字排開,向太空中打出光柱。安裝除錯的時候才發現,不知什麼原因,相鄰的兩台雷射器不能同時開啟!國王很想知道,在目前這種bug存在的情況下,一共能打出多少種雷射效果?顯然,如果只有3臺機器,一共可以成5種樣式,即 全都關上 sorry,此時無聲勝有聲,這也算一...

藍橋杯第九屆決賽

x星球的鈔票的面額只有 100元,5元,2元,1元,共4種。小明去x星旅遊,他手裡只有2張100元的x星幣,太不方便,恰好路過x星銀行就去換零錢。小明有點強迫症,他堅持要求200元換出的零鈔中2元的張數剛好是1元的張數的10倍,剩下的當然都是5元面額的。銀行的工作人員有點為難,你能幫助算出 在滿足小...

第九屆藍橋杯決賽大學A組

已知三角形三個頂點在直角座標系下的座標分別為 2.3,2.5 6.4,3.1 5.1,7.2 求該三角形的面積。注意,要提交的是乙個小數形式表示的浮點數。要求精確到小數後3位,如不足3位,需要補零。答案 include include using namespace std struct dian ...