NOIP2014 飛揚的小鳥

2022-05-07 20:09:08 字數 817 閱讀 3434

實現詭異類\(dp\)

這裡是可愛的鏈結菌

設狀態\(f[i][j]\)表示到第\(i\)個位置高度為\(j\)為止,所用的最小步數。

轉移時注意向上移是個完全揹包,向下移是個\(01\)揹包。

同時對\(f[i][m]=max(f[i][m],f[i][j])(1\leq j\leq m+x[i])\)

轉移完後處理一下管道的情況(將有管道的地方變為\(\text\))

最後統計答案即可。

#includeusing namespace std;

namespace ae86

return*s++;

} inline int read() }

const int n=1e4+10;

const int m=2e3+10;

int n,m,k,ans;

int f[n][m],x[n],y[n];

struct channel lin[n];

int main()

memset(f,0x3f,sizeof(f));

for(int i=1;i<=m;i++) f[0][i]=0;

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

ans=f[0][0];

for(int i=1;i<=m;i++) ans=min(ans,f[n][i]);

if(ans=1;i--)

for(int j=1;j<=i;j++) ans+=(bool)lin[j].jud;

printf("0\n%d\n",ans);

}}

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,豎直移動的距離由...