Vijos 1232 核電站問題

2022-02-11 11:43:41 字數 848 閱讀 2236

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

現在,請你計算:對於給定的n和m,求不發生**的放置核物質的方案總數。

輸入檔案只有一行,兩個正整數n,m。

輸出檔案只有乙個正整數,表示方案總數。

4 3
13
1s

全部資料n<=50,m<=5

oibh

本題目由vijoscp v0.1.1 測試版 生成 請勿刪除此行

分析:設f[i]為第i個坑道使不**的方案數。

當i當i=m時,f[i]=2*f[i-1]-1;//減去的1是前m坑道都放的情況

當i>m時,f[i]=2*f[i-1]-f[i-m-1];//這是最難理解的部分,因為無論i-m-1的情況是什麼,它後面都可以接i-m到m都是放的情況。或者說:當到第i個坑時,則第乙個開始連著的坑其實是i-m+1,但是由於f[i-m]包括了第i-m個坑是「填」的情況,而這種情況下,已經出現了m+1個坑是連著「填」的情況,根據最優子結構,這種情況已經排除,因此我們只需要減去i-m個坑是「不填的情況」即f[i-m-1]

1 #include2 #include3 #include4

using

namespace

std;

5int

n,m;

6long

long f[100];7

intmain()

15 printf("

%lld\n

",f[n]);

16return0;

17 }

vijos1232 核電站問題

題目 大概需要更多方案數這方面dp的練習 題意 在n個位置放 m個核電站,有多少種放法使最長連續核電站數 m dp i j 定義 以第i個核電站為終點,最放連續j個核電站的方案數 這樣若j位置連續大於等於1個,則方案數為dp i j dp i 1 j 1 若位置j連續為0,則為dp i 1 這一層所...

Vijos 1232 核電站問題(遞推)

題目鏈結 好久沒有 搞遞推,這個題在dp專題,其實是赤裸裸的一維的遞推,想了好一會啊。f n 可以由第乙個不放f n 1 加第乙個放第二個不放f n 2 加。f n f n 1 f n 2 f n m 刪除中間輸出的時候,改錯了2次。1 include 2 include 3 include 4 i...

VIJOS P1232 核電站問題

jdoj 1373 乙個核電站有n個放核物質的坑,坑排列在一條直線上。如果連續m個坑中放入核物質,則會發生 於是,在某些坑中可能不放核物質。現在,請你計算 對於給定的n和m,求不發生 的放置核物質的方案總數。輸入檔案只有一行,兩個正整數n,m。輸出檔案只有乙個正整數,表示方案總數。4 3 13 全部...