飛彈攔截(貪心問 動態規劃問)

2021-08-07 05:54:07 字數 1267 閱讀 4051

題目描述

某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷:雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的飛彈來襲。由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有的飛彈。

輸入飛彈依次飛來的高度(雷達給出的高度資料是不大於30000的正整數,飛彈數不超過1000),計算這套系統最多能攔截多少飛彈,如果要攔截所有飛彈最少要配備多少套這種飛彈攔截系統。

輸入輸入飛彈依次飛來的高度(雷達給出的高度資料是不大於30000的正整數,飛彈數不超過1000)

輸出輸出有2行。

第1行是最多能攔截的飛彈數,第2行是要攔截所有飛彈最少要配備的系統數。

樣例輸入

389 207 155 300 299 170 158 65

樣例輸出

6

#include #include #include #include using namespace std;

int main()

,m,j=0,dp[1005][3];

while(scanf("%d",&a[i])!=eof)

else

}if(k==j+1)

}else

,mins=30010,f=-1;

for(k=0;k<=j;k++)

}b[f]=a[i];

}} //以上,貪心問

i++;

}int n=i;

for(i=n-1;i>=1;i--)

dp[i][2]=l+1;

dp[i][3]=k;

}int maxs=0;

for(i=1;i<=n;i++)

maxs=max(maxs,dp[i][2]); //以上,動態規劃問題

printf("%d\n%d\n",maxs,s);//maxs dp ;s 貪心。

return 0;

}//以上,貪心問

i++;

}int n=i;

for(i=n-1;i>=1;i--)

dp[i][2]=l+1;

dp[i][3]=k;

}int maxs=0;

for(i=1;i<=n;i++)

maxs=max(maxs,dp[i][2]); //以上,動態規劃問題

printf("%d\n%d\n",maxs,s);//maxs dp ;s 貪心。

return 0;

}

動態規劃 飛彈攔截

某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷 達捕捉到敵國的飛彈來襲。由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有 的飛彈。輸入資料 第一行為乙個整數 ...

飛彈攔截 動態規劃

描述 某國為了防禦敵國的飛彈襲擊,開發出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的飛彈來襲,並觀測到飛彈依次飛來的高度,請計算這套系統最多能攔截多少飛彈。攔截來襲飛彈時,必須按來襲飛彈襲擊的...

動態規劃之飛彈攔截

題目描述 某國為了防禦敵國的飛彈襲擊,發展一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於等於前一發的高度。某天,雷達捕捉到敵國飛彈來襲。由於該系統還在試用階段,所以只用一套系統,因此有可能不能攔截所有的飛彈。輸入資料 第一行輸入測...