這道題是一道動態規劃題
for (int j = 0; j
上面是該題的式子。。。
例如:
測試資料:
315 199 155 301 215 170 150 25
當發射第二顆飛彈時i=2,我們另j=0。
首先a[j]>=a[i],即a[0]>=a[2],成立。
於是我們看一下ans[j]+1>ans[i];
ans[0]+1>ans[2];
即 1 + 1 > 1
所以當前ans[2]=2
當j=1時,重複上述過程,此時ans[2]變成了3,
也就是,當發射三枚飛彈時,都能夠攔截下來。
ans[i]這個陣列存放的就是發射第i枚飛彈時能攔截的數目
以下為**:
# include
using
namespace
std;
int main()
}if (ans[i]>max)
max = ans[i];
}cout
<< max << endl;
return
0;}
聖誕老人的禮物
問題描述 聖誕節來臨了,在城市a中聖誕老人準備分發糖果,現在有多箱不同的糖果,每箱糖果有自己的價值和重量,每箱糖果都可以拆分成任意散裝組合帶走。聖誕老人的馴鹿最多只能承受一定重量的糖果,請問聖誕老人最多能帶走多大價值的糖果。輸入 第一行由兩個部分組成,分別為糖果箱數正整數n 1 n 100 馴鹿能承...
貪心 聖誕老人的禮物
聖誕節來臨了,聖誕老人準備分發糖果,現在有多箱不同的糖果,每箱糖果有自己的價值和重量,每箱糖果都可以拆分成任意散裝組合帶走。聖誕老人的馴鹿雪橇最多只能裝下重量w的糖果。請問聖誕老人最多能帶走多大價值的糖果。第一行由兩個部分組成,分別為糖果箱數正整 n 1 n 100 馴鹿能承受的最大重量正整數 w ...
UOJ UR 4追擊聖誕老人
傳送門考慮直接維護乙個堆,然後往裡面丟鏈,並且取出k個堆頂就行了。然後就需要分類討論啥的,給你的三個點變成兩條鏈,每次取出一條鏈之後選擇權值最小的再劈成兩條鏈丟進去。卡空間 所以樹剖,不選擇倍增 複雜度o n k logn include include include define mn 5000...