UVA 12034 Race (動態規劃)

2021-08-04 21:52:09 字數 982 閱讀 2571

time limit:1000 ms os:linux

現在有n匹馬,要求安排出場順序,可以有多匹馬同時出場,問一共有多少種方式。

設一共i匹馬時,出場次序數量為 j 時的出場方式為 a[i][j] 

1匹馬的情況:a[1][1]=1 沒啥好說的

2匹馬的情況:a[2][1]=1 , 對於a[2][2] 只能在a[1][1]的基礎上把第二匹馬放到前面或後面,

所以a[2][2]=a[1][1]*2=2

3匹馬的情況:a[3][1]=1 , 對於 a[3][2],就可以在a[2][1]的基礎上前後加一條,也可在a[2][2]的基礎上任選和其中一匹馬同時跑,由此

a[3][2]=a[2][1]*2+a[2][2]*2

圖雖然畫的比較難看。。還是看圖吧

總之由上面的規律就能得出狀態轉移方程 dp

[i][

j]=d

p[i−

1][j

−1]∗

j+dp

[i−1

][j]

∗j

#include 

#include

#include

#include

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

using

namespace

std;

const

int maxn=1005;

const

int mod=10056;

int dp[maxn][maxn];

int main()

}int t;

cin>>t;

for(int ca=1;ca<=t;ca++)

UVA1203Argus(優先佇列)

題目 uva1203argus 優先佇列 題目大意 給你多個專案,每個專案有它發生的週期和對應的q num值。現在要求給出前k個專案,時間優先,同一時刻發生的先輸出q num值小的。解題思路 先將這幾個專案排下順序,一開始這些專案的發生時間就是週期,按照時間優先和同一時刻的q num優先的原則將這個...

UVA 1203 Argus 優先佇列

參看 題目大意 給定多個命令,每個命令如register 2004 200 對應於編號為2004的事件,每隔200秒發生一次 首次發生是在200秒 然後在給你乙個k,要你輸出前k個發生事件的編號.如果幾個事件同時發生,輸出事件編號小的.思路分析 劉汝佳訓練指南p188例題.每次從佇列中取出時間最小且...

12 03學習計畫

1 處理蒲朗克常量的資料。2 準備專業應用軟體考試。1 蒲朗克常量的測量方法吧雖然很簡單,但是對於這個資料不得不說,太多了。當時做實驗的時候就是,講完了做法測了一節課的資料。處理資料就是要做 畫散點圖,擬合曲線,求方程,求交點,求斜率,再求誤差。現在來講講處理的過程中遇到的一些問題吧!由於當時測量的...