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實踐的主要內容,以...