Vijos1617 超級教主

2022-07-27 02:54:14 字數 1498 閱讀 1080

orz4-3 jump

lhx教主很能跳,因為orz他的人太多了。教主跳需要消耗能量,每跳1公尺就會消耗1點能量,如果教主有很多能量就能跳很高。

教主為了收集能量,來到了乙個神秘的地方,這個地方凡人是進不來的。在這裡,教主的正上方每100公尺處就有乙個能量球(也就是這些能量球位於海拔 100,200,300……公尺處),每個能量球所能提供的能量是不同的,一共有n個能量球(也就是最後乙個能量球在n×100公尺處)。教主為了想收集能 量,想跳著吃完所有的能量球。教主可以自由控制他每次跳的高度,接著他跳起把這個高度以下的能量球都吃了,他便能獲得能量球內的能量,接著吃到的能量球消 失。教主不會輕功,教主不會二段跳,所以教主不能因新吃到的能量而變化此次跳躍的高度。並且教主還是生活在地球上的,所以教主每次跳完都會掉下來。

問教主若要吃完所有的能量球,最多還能保留多少能量。

第1行包含兩個正整數n,m,表示了能量球的個數和lhx教主的初始能量。

第2行包含n個非負整數,從左到右第i個數字依次從下向上描述了位於i×100公尺位置能量球包含的能量,整數之間用空格隔開。

僅包括乙個非負整數,為教主吃完所有能量球后最多保留的能量。

3 200

200 200 200

400

對於10%的資料,有n≤10;

對於20%的資料,有n≤100;

對於40%的資料,有n≤1000;

對於70%的資料,有n≤100000;

對於100%的資料,有n≤2000000。

保證對於所有資料,教主都能吃到所有的能量球,並且能量球包含的能量之和不超過2^31-1。

時限1s。

第1次跳100公尺,得到200能量,消耗100能量,所以落地後擁有300能量。

第2次跳300公尺,吃到剩下的第3棵能量球,消耗擁有的300能量,得到400能量。

若第1次跳200公尺,第2次跳300公尺,最後剩餘300能量。

這些天一直沒做題。。感覺狀態真是不能更逗比。

單調佇列的裸題

#include#include#include#include#include#include#include#includeusing namespace std;

const int n = 2000010;

#define rep(i,n) for(int i=1;i<=n;i++)

#define for(i,l,r) for(int i=l;i<=r;i++)

int a[n],sum[n],n,m,q[n],dp[n];

int main()

dp[0]=m;

int left=0,right=0;

rep(i,n)

printf("%d\n",dp[n]);

return 0;

}

演算法導論16 1

又是一道動態規劃的題,真的類似於0 1揹包問題.在提示之下解決了,總算是解決了.雖然沒費多少勁.這個東西,沒有用物件導向的方式寫.體驗了一把,結構化.對於引數傳遞,共享資料,的確不及類方便.這種問題的狀態轉移方程,沒有寫對.我找錯了狀態.這段時間看 大全 感覺自己的 風格有所好轉.雖然覺得過去的也不...

C 程式設計報告(16 1)

程式頭部注釋開始 程式的版權和版本宣告部分 檔名稱 salary 加salary 作 者 楊壇壇 完成日期 2011 年 06 月 6 日 版 本號 對任務及求解方法的描述部分 輸入描述 問題描述 程式輸出 程式頭部的注釋結束 include includeusing namespace std v...

1 6 1 有名管道附屬

這是友善之臂的 和備註。希望初學者有用 一.簡介 本列程是由友善之臂說明書中的管道列程的備註版。有助於大家了解select函式以及程式的實現方式。二 重點掌握函式 select struct timeval結構體 fd zero fd set 三 要求水平 可使用內來進行程序通訊。include i...