最近acm沒有學什麼新演算法,只是做了一些題,相當於補了一些以前掌握不好的知識點。接下來總結一下近期做題過程中所學。
最近在洛谷上做了一道黑色星期五的問題,通過這道題我掌握了:
i. 為了方便用陣列儲存每月的天數,且月份符合實際意義,我們一般這樣定義陣列
int a[13]=; 即將a[0]設為0,正常的a[1]=31,符合實際意義。寫到這裡,以後需要注意,陣列的第乙個數為a[0],不是a[1].
ii. 可以通過上個月的13號是星期幾推出這個月的13號是星期幾
從某月1號開始,到下個月1號,要經過的天數為這個月的天數,分為兩種情況:
for(int j=1;j<=12;++j)//j代表月份
在貪婪的送禮者這道題目中,當乙個量具有多種性質時,我們可以用乙個結構體組織起來,這樣也方便對其中的某乙個性質對所有量進行排序。
i. 當兩個量具有對應關係時,我們要擅用map建立對應關係
ii. 當建立char型別與int型別的map對映時,我們要注意:
map m;
m['a']=2;m['b']=2;m['c']=2;
在寫char型別時不要忘記加單引號,在寫string型別時不要忘記加雙引號
iii. 將4734當做字元陣列進行儲存時,char b[5], 則b[i]-'0'才可以轉換為i+1位所在的數字
iv. 在bool check()函式中,我們要擅用return 0,return 1,flag=1,flag=0等標誌性變數
v. 字元陣列一般在主函式定義,這樣可以開大點
這都是區間問題,套路都一樣 ,寫乙個struct node函式,begin,end兩個變數。對node 的begin進行乙個cmp排序。
判斷是否是回文數
bool judge(char v)
注意:不要忘記加單引號,這才能將數字轉換為字元陣列。
至於其他所做的題目,主要就是認真分析題意,考慮完整每種情況。要先對題目有完整的思路,再打**。
ACM之近期學習總結
1.定義 搜尋演算法是利用計算機的高效能來有目的地窮舉乙個問題的部分或所有的可能情況,從而求出問題的解的一種方法。2.相比於列舉演算法的優點 相比於單純的列舉演算法有了一定的方向性和目標性。演算法是在解的空間裡,從乙個狀態轉移 按照要求拓展 到其他狀態,這樣進行下去,將解的空間中的狀態遍歷,找到答案...
ACM近期之學習總結
先說一下這幾天的學習情況吧。這幾天雖然vjudge上的題目不能提交啦,但是還是要以前沒有看過的題補一遍。其中,做了幾道dfs和bfs的題目,還看了幾道bfs bit位運算結合,以及full tank 最短路徑 dp 最短路徑變形的問題。我感覺這兩個知識點掌握的不是很好,只是略懂皮毛,沒有理解的很透徹...
學習總結 近期acm學習的總結
開學已經乙個月了,對acm的學習也乙個月了,做了一下總結 對自己不好的地方的反省 1.開學一開始學的是stl,不得不說stl是乙個很好的東西,熟練的運用stl大大的減少了 量,也使演算法容易實現。但是我在用stl後使自己產生了一種惰性思維。在兩個星期的stl練習後,我發現自己變得越來越懶,不願意自己...