陶陶摘蘋果 & 送禮
都是模擬題就不貼**了
壞掉的項鍊
題意:從項鍊的乙個地方拆開,從一端收集相同顏色的珠子,白色的珠子可以看成是紅色也可以看成是藍色,問從兩端收集的珠子個數最多為多少
題解:模擬記錄就行,但是有一些小細節要處理一下,首先是賦值一串字串在後面(首尾相連),記錄下要搜尋的珠子顏色,然後遇到w(白色珠子)就記錄個數,若不是就加到當前的記錄裡並清空w,遇到不同的珠子時比較最大值並記錄下乙個要搜尋的顏色還有最大值。
#include
#include
#include
using namespace std ;
intmain()
else}if
(mx < last+cnt+w)
mx = last+cnt+w ;
cout <<
min(mx,n)
<< endl ;
return0;
}
守望者的逃離
題意:有乙個人在島上,該島在t秒後將會沉沒,該人距離出口有s公尺並且有m點魔法值,每秒可以跑17公尺,如果放技能會消耗10點魔法值但是可以一秒內移動60公尺,原地不動休息的時候每秒恢復4點的魔法值,如果該人能夠逃離小島則列印出yes還有最早逃出的時刻,否則列印出no和能跑最遠的距離。
題解:f[i]為第i秒的時候能跑的最遠的距離,先考慮最快的放技能,能放就先放,不能就休息,然後再用跑步插縫比較最大值。
#include
#include
using namespace std ;
const
int n =
3e5+5;
int f[n]
;int
main()
for(
int i=
1; i <= t ;
++ i)
f[i]
=max
(f[i]
,f[i-1]
+17);
for(
int i=
1; i <= t ;
++ i)
} printf (
"no\n%d\n"
,f[t]);
return0;
}
p1108 低價購買
題意:求最長下降子串行和以及其方案數
題解:最長下降子串行就是經典的dp了,主要是這個方案數,其實就是在求出最長下降子串行dp的基礎上求各個方案數f , 首先將dp[i]==1的賦值為1(單獨乙個是乙個方案),如果後乙個的長度為前乙個的長度加一並且其值小於前乙個(dp[i]==dp[j]+1&&a[i]#include
#include
#include
#include
#include
using namespace std ;
const
int n =
5005
;int a[n]
,dp[n]
,f[n]
;int
main()
int mx =
*max_element
(dp+
1,dp+n+1)
, cnt =0;
for(
int i=
1; i<=n ;
++ i)
if(dp[i]
== mx) cnt +
=f[i]
;//等於最長序列記錄方案數
} cout << mx <<
" "<< cnt << endl ;
return0;
}
洛谷練習題1 2
分段函式 include using namespace std intmain if k 151 sum sum 0.4463 k sum int sum 10 0.5 sum sum 10 cout 簡單的判斷 include using namespace std intmain cout 注...
洛谷普及練習場 廣度優先搜尋
p1162 填塗顏色 includeusing namespace std int mp 35 35 bool inq 35 35 int n pairnode 0,0 int dr 8 2 void bfs inq newx newy true int main bfs for int i 1 i...
洛谷試煉場 普及練習場 貪心
1.p1090合併果子 noip2004 優先佇列 貪心 題目鏈結 題目鏈結 2.p1181數列分段 貪心 題目鏈結 蒟蒻題解 3.p1208 usaco1.3 貪心 題目鏈結 蒟蒻題解 4.p1223排隊接水 貪心 題目鏈結 蒟蒻題解 5.p1094紀念品分組 noip2007普及 貪心 題目鏈結...