2016春季學習(2) 遞推

2021-07-10 06:14:35 字數 500 閱讀 8760

第乙個遞推還是蠻水的,雖然並不知道具體數學,但是還是水過去了。。。

畫外:2011 alibaba-cup campus contest。。。是不是比格很高啊。。。

這裡面有乙個技巧:

我們先假設,我們可以表示了1~n中的所有數,那麼下面,如果我們要去湊出n+1,有兩種情況,我們直接就有n+1的項,要麼就是沒有用光前面的數,還有一些可以轉化。

我們不妨考慮,我們只要記錄下所有的和sum[n],我們就可以排除第二種情況,再看有沒有n+1即可判斷我們是否可以表示出n+1。。。注意我們不用掃面,對於p[n]排序後,只要考慮p[n]和sum[n-1]的關係就好了。。。

ac**(vj):

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

const int maxn=1010;

int p[maxn];

int sum[maxn];

int main()

cout<

2016春季訓練 貪心

這一題理解題意是乙個問題,也就說,我們先知道了全年的情況,下面我們只要連續五個月計算盈虧,那麼賺了,則一定是s,虧了就一定是d,所以理論上,我們可以計算出前五個月的情況的。include include using namespace std int main long long s,d while...

2016春季訓練 搜尋和優先佇列

bfs這裡不用說,搜尋去求乙個最優情況的,往往使用bfs 下面分析一下優先佇列的作用 由於我們是要尋找到達的最小時間,這裡面是有乙個權值的不同的,所以我們不能簡單的認為先出佇列發就是我們權值最小的 佇列中往往是這樣,先出佇列的是我們先到的 但是這一次不是這樣,所以要對於權值進行排序。vj inclu...

2016春季練習 曼哈頓和的問題

這個題目很巧妙的相當於沒有給測試資料,因為程式要求自己做出模擬的資料,所以要自己寫。同時,自己出資料計算量將非常大,這個時候只能考慮演算法的完全正確了。歡迎大神給出這種情況下給出資料的情況。然後關鍵的東西我在注釋裡面說 include include include include using na...