473 核電站問題

2021-09-07 09:50:31 字數 970 閱讀 4810

★   輸入檔案:nucle.in   輸出檔案:nucle.out   簡單對比

時間限制:1 s   記憶體限制:128 mb

【問題描述】

乙個核電站有 n 個放核物質的坑,坑排列在一條直線上。如果連續 m 個坑中放入核物質,則會發生**,於是,在某些坑中可能不放核物質。

任務:對於給定的 n 和 m ,求不發生**的放置核物質的方案總數。

【輸入格式】 

輸入檔案(nucle.in)只一行,兩個正整數 n , m( 1【輸出格式】 

輸出檔案 (nucle.out) 只有乙個正整數 s ,表示方案總數。

【輸入輸出樣例】

輸入:

nucle.in

4 3輸出:

nucle.out13

思路:若用f[i]儲存在這個坑時的已經計算過的所有情況

對於乙個坑,有三種情況

1:n放與不放。於是此時所有的情況就是2*f[i-1]

2:n==m

這種情況下也可以選擇放與不放,但是當放的時候,若前n-1個已經放了物質,則第n個不能放

於是所有的情況就是2*f[i-1]-1

3:n>m

當選擇不放的時候,就是加上f[i-1]的所有情況

當選擇放的時候,要考慮若放上會**的情況,我們先想若放上之後不**的情況,就是f[i-1],再減去放上之後會**的情況。那麼放上之後會**的情況是什麼呢?如果我們放上會**,那麼i-m-1個一定沒有放。所以放上會**的情況就是f[i-m-1].

so這種情況下的所有情況就是2*f[i-1]-f[i-m-1]

1 #include2

using

namespace

std;

3int

main()

417 cout18return0;

19 }

473 核電站問題

輸入檔案 nucle.in 輸出檔案 nucle.out 簡單對比 時間限制 1 s 記憶體限制 128 mb 問題描述 乙個核電站有 n 個放核物質的坑,坑排列在一條直線上。如果連續 m 個坑中放入核物質,則會發生 於是,在某些坑中可能不放核物質。任務 對於給定的 n 和 m 求不發生 的放置核物...

核電站問題

乙個核電站有n個放核物質的坑,坑排列在一條直線上。如果連續m個坑中放入核物質,則會發生 於是,在某些坑中可能不放核物質。任務 對於乙個核電站有n個放核物質的坑,坑排列在一條直線上。如果連續m個坑中放入核物質,則會發生 於是,在某些坑中可能不放核物質。任務 對於給定的n和m,求不發生 的放置核物質的方...

核電站問題

題目描述 乙個核電站有n個放核物質的坑,坑排列在一條直線上。如果連續m個坑中放入核物質,則會發生 於是,在某些坑中可能不放核物質。任務 對於給定的n和m,求不發生 的放置核物質的方案總數。輸入描述 輸入檔案只一行,兩個正整數n,m 1 n 50,2 m 5 輸出描述 輸出檔案只有乙個正整數s,表示方...