Zut round 6周賽通過題題解

2021-10-04 22:26:33 字數 2014 閱讀 8919

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,否...