noip飛揚的小鳥

2022-05-31 06:00:12 字數 830 閱讀 5756

題解:

挺簡單的題目

f[i][j]表示x座標為i,y座標為j的最小值

會發現那個東西是個完全揹包

從f[i][j-a[i]]轉移一下就是o(1)轉移的了

另外上界為m這個要特判一下

我把sum[a[i]]寫成了sum[i]還過了樣例拿了65分真的是神奇

另外注意一下要先計算再判斷不可行的

因為他是在前一格瞬間跳到那麼高

**:

#include using

namespace

std;

#define rint register int

#define il inline

#define rep(i,h,t) for (rint i=h;i<=t;i++)

#define dep(i,t,h) for (rint i=t;i>=h;i--)

const

int n=2e4;

int f[2][2000],n,m,k,a[n],b[n],sum[n],t[n][2

];struct

rec[n];

const

int inf=1e9;

void minn(int &x,int

y)int

main()

} cout

<<1

rep(i,

1,m) minn(ans,f[n%2

][i]);

cout

return0;

}

NOIP2014 飛揚的小鳥

題目 分析 乙個揹包問題。i,j 是跳上來的情況時 可以由 i,j k 得到,則問題得到解決。注意 f陣列要先進行上公升操作,再進行下降操作,否則 i,j k 有可能是下降得到的,從而得到錯解 吸取我的教訓吧,調了好長時間 include include using namespace std co...

NOIP2014飛揚的小鳥

天哪細節問題調了乙個鐘,手速不夠快思路不夠清晰寫了乙個鐘,感覺一道第三題就要花掉我2個鐘那我比賽的時候腫麼辦qaq 說下這道題,首先純暴力,70分到手,然後我們把01揹包的轉移變成有上界的完全揹包,還有一些特殊情況特殊轉移,還是比較好看的,去年比賽不知是電腦問題還是什麼一直沒輸出,蠢到家了然後這題爆...

NOIP2014 飛揚的小鳥

傳送門 為了簡化問題,我們對遊戲規則進行了簡化和改編 1.遊戲介面是乙個長為n,高 為m的二維平面,其中有k個管道 忽略管道的寬度 2.小鳥始終在遊戲介面內移動。小鳥從遊戲介面最左邊任意整數高度位置出發,到達遊戲介面最右邊時,遊戲完成。3.小鳥每個單位時間沿橫座標方向右移的距離為1,豎直移動的距離由...