LXH的暑假訓練

2021-10-08 15:05:06 字數 3808 閱讀 6925

7/27

今天做了以前沒有想出來的題目,自己就用c++的stl裡面的map做出來ac了,然後看看大佬們的題解,用map的少不過繼續努力吧。題目p1603

#include

#include

#include

using

namespace std;

string a[6]

;int

main()

}sort

(a,a+len);if

(sum==

0) cout<<0;

//這裡沒加只得了80分

for(i=

0;i.size()

;i++)if

(a[0

][i]

=='0'

&&flag)

cout<<0;

else

if(a[0]

[i]!=

'0')

flag=

1,cout<[i];

for(i=

1;i) cout<;return0;

}

ps:很少用到stl裡面的容器,因為自己做題太少了,很容易卡題,還是多做點自己不會的題目,多學習!

date:7/28 今天學到了動態規劃中求最大上公升子串行問題:這是一種線性動態規劃問題,比較簡單容易理解。然後就做了洛谷裡面的p1091

題解:合唱隊形要求身高中間最高兩邊以此遞減,這個問題很容易就理解。我們需要求出最大的序列。可以把問題分開來看,先求從左往右公升序列,然後求從右往左的降序列,最後兩個相加得出dp1[i]+dp2[i]-1(因為dp1和dp2都包括了a[i]這個數所以要減)就是合唱團人數最多的序列

#include

#include

using

namespace std;

int a[

105]

,dp1[

105]

,dp2[

105]

;int

main()

//求最大上公升子串行

for(i=n-

1;i>=

0;i--

)//求最大下降子串行

for(i=

0;i) max=

max(max,dp1[i]

+dp2[i]);

//計算出最大的序列(為謀取最大先公升後降的序列)

cout

}

ps:今天開始入手比較難的動態規劃,還是多寫多練才能行啊!

7/28下午做了一道以前望而生畏的二分題洛谷p1182 數列分段

這題和n本書分成連續的m組,使每一組書厚度之和最小 這樣的經典例題有著異曲同工之妙

思路:利用二分的思想求最大數列和,但是l卻不能取得0或者1,因為我一直在第四個點wa就很煩。所以l就取得了最大值,r取得了sum總和。

還是自己二分用的太少了,judge函式裡面cnt從0開始就錯了!!!

#include

#include

#include

using

namespace std;

const

int maxn=

100000+5

;int a[maxn]

,n,m,max=-1

;long

long sum=0;

bool

judge

(long

long num)

long

long

binary_find()

return r;

}int

main()

/*coutbinary_find()

;return0;

}

ps:還是得去細細品味cnt和m的關係,以及judge函式中為什麼r=mid(目的是若mid過大了,使右邊界左移 ),judge函式還是從書中看見的,這種思路模板得記住,這題寫了也多加深二分法的思想。

7/30 根據看了動態規劃裡面的lcs和lis問題,我自己想著動手去寫乙個dp題目試試,然後找到了這個**洛谷p1802 **

類似與揹包問題,就想著寫了一下,加深記憶和**構架

#include

#include

#include

using

namespace std;

struct nodea[

1000+5

];long

long dp[

1000+5

];///最後乙個資料沒有寫long long導致資料溢位

intmain()

ps:剛開始這題只得了90分,然後把資料下下來一看,資料溢位了。所以改了個long long,最終ac了。

7/31經過了這幾天的動態規劃的訓練,腦袋中有了一些關於動態規劃的一些思路和想法,的確動態規劃能夠實際解決許多問題,利用貪心和動態規劃做題目然後ac的確讓人快樂!

這題使洛谷p1616 這題就是可以無限次的裝入同一樣物品

#include

#include

#include

using

namespace std;

const

int maxn=

1e4+

5,maxdp=

1e7+5;

int m,t,i,j;

long

long dp[maxdp]

;struct nodea[maxn]

;int

main()

8/1今天就8月一日了,時間都過去一半了。今天還是一直在看動態規劃,不得不說看的頭皮發麻,動態規劃題目還是很難啊尤其是狀態轉移太費腦細胞了!!!!! 今天做了一道dp題目 還是很有意思的洛谷p1002

#include

#include

#include

#include

using

namespace std;

unsigned

long

long dp[25]

[25]=

;int

main()

flag=1;

for(

int i=

0,j=

1;j<=y1;j++

)for

(int i=

1;i<=x1;i++

) cout<[y1];}

///這題主要思路是dp[i][j]=dp[i-1][j]+dp[i][j-1]

///因為卒只能向右走或者向下走,因此dp[i][j]只能從dp[i-1][j]向下走,或者dp[i][j-1]向右走而來

思路:這題目以前在b站看過類似的題目,思路還是比較清晰的

//狀態轉移方程:dp[i][j]=dp[i-1][j]+dp[i][j-1] //

找到了這個方程解題目還是挺容易的,但是的注意在i=1或者j=1時如果有馬在上面或者馬能夠擋住這條路,則後面的路全為0。就是沒有想到這裡最後兩個資料點wa了,下了資料才發現!哎吐了

暑假訓練總結 SSL暑假訓練總結

第一周過的還算好吧,覺得飯堂伙食也挺好的,同學也挺好。學習的東西感覺比小學難好多,有種覺得以前學的東西太簡單了的感覺,但多虧了小學的時候基礎打得還算紮實,學得還行,但總是感覺自己就是個菜雞,就是乙個蒟蒻,哎,室友真的太強了。第一周總結 第二週自我感覺挺不錯的,總算追上了部分室友,成績也開始 這一切都...

暑假訓練隨筆

七月的流火好像還在灼燒著上海,八月的微風已稍有顯露 好吧。不扯了。現在多校訓練已經進行到一小半了,但是自己賽場上做不出來好氣,比賽完補題不會更生氣,就這樣迴圈往復過了半個暑假了。哎,每個學期開頭都是雄心壯志要好好做人,結果到了後面總是難有乙個好的結果。想想acm對我也差不多有了兩年了,大一的什麼都不...

暑假訓練總結

社會實踐調查報告 題目 關於暑假acm訓練的實踐與總結 專業班級 數學與應用數學專業1班 姓名 李雙智 學號 20164249 2017年8 月25日 摘要 31.樹狀陣列和圖論 42.二分三分以及單調佇列 53.樹狀陣列與單調佇列 54.總結6 摘要 本文主要總結了這個暑假acm實踐的主要內容,以...