1.a - lis o(n^2) 模板 poj - 2533
直接模板代入就可以了
#include
using
namespace std;
int dp[
1005];
int a[
1005];
intmain()
for(
int i=
0;i)for
(int j=
0;j(a[j]
) dp[i]
=max
(dp[i]
,dp[j]+1
);int max=0;
for(
int i=
0;i(max) max=dp[i]
; cout
}
2.b - 一維線性dp ++ hdu - 2059
利用dp陣列起始位置到每一加電站的最小時間,陣列最後乙個就是最短時間。每兩個加電站之間的最短距離有兩種情況:1.兩點距離大於滿電情況能通過距離2.兩點距離小於滿電情況能通過距離
#include
#include
using
namespace std;
intmain()
dp[i]
=min;}if
(1.*l/vr>dp[n+1]
) cout<<
"what a pity rabbit!"
cout<<
"good job,rabbit!"
<}}
3.c - frog jumping codeforces - 1077a
判斷總的步數是奇數還是偶數,分情況加減就ok了。
#include
using
namespace std;
intmain()
else
cout<}return0;
}
4.d - disturbed people codeforces - 1077b
直接根據題意寫出來就行了。左右是1,中間是0的情況下需要將右邊的燈熄滅,統計一下出現次數就行了。
#include
using
namespace std;
int a[
110]
;int
main()
} cout
}
e - good array codeforces - 1077c
建立兩個陣列,陣列 a 記錄輸入的數,陣列 b 記錄數字出現的次數,再建立乙個陣列c用來儲存符合要求的數字的下標,列舉每乙個數字,用乙個sum記錄每個數字相加的和,用sum減去該數字的大小,如果a**現了減去過後的一半,則滿足條件
#include
#include
#include
#include
#include
using
namespace std;
long
long a[
1000005
],b[
1000005
],c[
1000005];
long
long sum,t;
intmain()
int j=0;
int len=0;
for(
int i =
0;i < n;i++)}
cout
int i =
0;i < len;i++
) cout<}return0;
}
LeetCode刷題 部分周賽題
哈哈,今天整活上癮了.複習了一下最近兩場周賽感覺能做出來但是實際沒有做出來的題目 感覺有幾點不足,希望以後可以逐漸改過來 1.基礎知識不紮實,有時候會在細節上栽跟頭 2.有時候容易腦子一熱,想到一部分就開始寫,簡單題還能處理,中等或困難就有點難搞了,太區域性,不全面 3.心態還是需要調整一下,不能提...
49周周賽I題
else if a這題本質上不難,但是乙個記憶化搜尋的典型例題,由於在某些情況下,會導致遞迴次數非常多,會爆棧。因此採用記憶化搜尋,記憶化搜尋就是用陣列儲存每一次遞迴時得到的資料,這樣下次遞迴需要這些資料時就不需要重複計算了。這題使用了三維陣列,使得每乙個 a,b,c 分別對應乙個值。同時昨天看了乙...
12 9周賽第四題
time limit1000 ms memory limit32768 kb 給定三條邊,請你判斷一下能不能組成乙個三角形。輸入資料第一行包含乙個數m,接下有m行,每行乙個例項,包含三個正數a,b,c。其中a,b,c 1000 對於每個測試例項,如果三條邊長a,b,c能組成三角形的話,輸出yes,否...