考試前把讀入優化和庫以及檔案寫好做好準備工作,另外放鬆心態,太慌張了肯定考不好··將本人的注意力集中起來
考試的根本戰略是對於每道題先想個20分鐘,假如想不出個靠譜的辦法就趕緊暴力,一定要打暴力,想不出正解要打暴力,想出了正解對拍也要打暴力,而且把暴力打了之後心裡都踏實得多··最少保底了,打完後再想正解.
先要肯定大致方向:模仿(常常只要第一題),策略(貪婪等),數學,資料構造,圖論,dp,字串,樹,二分,三分,搜尋,(多半會加上剪枝折半記搜或者迭代加深)
合理應用並查集,雜湊,倍增,差分,鍊錶,優先佇列,dfs序,桶,單調佇列,單調棧等輔助演算法
充沛應用標題給的資料範圍思索可能用到的演算法,畢竟n2,nlogn,nlogn2,n還是比擬好判別的
不要一看到資料構造就往線段樹上面想,可能會沒有那麼'費事'
dp的時分多想想平常本人用到的套路,如最大子串和,最長不降落序列,最長公共子串行,各種揹包問題,樹形dp思索求樹的直徑,重兒子,最大次大值等,區間dp的列舉斷點,另外複雜度假如不對要思索dp優化(滾動陣列或者決策單調性),有時也會用資料構造優化dp
圖論的話普通在比擬簡單的狀況下只會考最短路和最小(大)生成樹,和拓撲排序,tarjan求強連通重量邊雙連通割點,但圖論題比擬難的一點是經過條件間的邏輯關係轉化成圖論題,這時除了上述演算法以外常常會用匈牙利差分約束等演算法處理
字串自身演算法很少,只要kmp,雜湊,trie,ac自動機,manecher,因而有時它會和其他演算法一同考,如dp;
想題的時分思想要靈敏點··假如往乙個方向想不斷沒停頓的話就要思索放棄了
有時分想不出正解時可能暴力就是正確的,本人在計算複雜度時可能思索了許多多餘的狀況(所以要一定打暴力啊)
鑑於在noip考場上它演算法可能不會考多難··但肯定會用思想難度來補償,假如能夠恰當地用noi的一些演算法來降低思想難度的話能夠思索思索
倒插點/邊,乘法轉對數,xor的上下位貪婪,均勻數轉最長和大於0,加邊權求特定匯合最小生成樹,拆點,列舉邊計算奉獻,
打**時一定要集中肉體,不然很容易出錯··假如打完**後還是除錯半天找出很多錯誤闡明打**時肯定沒認真···
打**前要想想這道題能否有什麼邊境條件還沒有思索.分類討論能否全面,有時由於乙個邊境條件可能就錯完了,打**時也要好好思索,比方mod的時分假如是負數要加起來,用到除法的時分除數能否思索了0,能否需求判別無解狀況,有沒有可能訪問了非法的位置(爆陣列或者訪問了負的位置,用桶的時分特別留意),有沒有可能爆int,有沒有可能double寫成了整數型
留意本人的演算法能否爆空間,用cout《假如擔憂爆int就開long long,不要偷懶!!
用mod的時分留意mod透沒有
inf用0x3f3f3f3f很優秀!
盡量保證本人**的簡約度,能不分類討論就不要分類討論(當然是在保證正確性的狀況下),有時假如要判別某些邊境狀況很費事的話能夠在邊境加上不影響答案的元素,比方在splay的題中我們常常在裡面放乙個-inf和乙個inf··平常就要多參考其別人寫的比擬漂亮簡約的**··不然除錯的時分可能會暈
留意多組資料下的清0操作
合理運用stl中的檔案,如vector,queue(queue,deque,priority_queue),set,map(這玩意兒有點不靠譜··能手打hash表還是手打吧)
假如變數很多的話變數名就打長一點,好區分···真實不行打拼音··
打**時留意本人能否用到了非法的變數名,像y1,x1,next,index,hash啥的一定要留意··假如平常用這些變數名用習氣了的話能夠在第一行打乙個」改動量名「,這樣的話編譯的時分能提示本人
打完後能夠加個register進步**速度,(有可能會re,加完後運轉程式看一看)
不要讀入剪枝!!!
看看能否用到了o2優化,用了的話用本人編輯器開o2跑一跑程式
考完後重點再次檢查上述的錯誤,陣列開小沒?能否需求開int?能否需求開double?能否需求改動量名?能否需求思索邊境?
最後好好檢查檔案輸出輸入,錯了就完了··
獲取 下幾個月的今天
param date 傳入的日期 param month 下幾個月 return 接下來幾個月每個月的今天 最後乙個月 向前推一天 可根據需要確定是否向前推 傳入string的方法如下 public static list string getdateby string date,integer m...
從前幾個月上的課中的收穫
前幾周上了 機器學習 運籌學 高階資料庫 但是感覺最有用的還是 高階資料庫 可能是因為我找工作的方向偏應用,所以比較偏愛實踐的課。感覺 機器學習 沒什麼收穫,就是記住了幾個演算法。連基本了解都沒有。可能也是因為機器學習太難了吧。將來有機會還是願意去深入學習的,運籌學 給我們上課的是經管學院的老師,對...
最近幾個月總結(17年12月)
最近一段時間發生了很多事,我選擇一些比較重要的事情來記錄一下 1 完成了大四的課程。收穫包括兩方面 1.完成了 市場營銷學 的課程,對現代的商業有了更多理解和感悟。2.完成了 演算法設計與分析 的課程,並完成了b樹的基本操作這一課程設計,並自學了資料庫索引等內容,對資料庫,演算法的應用有了更深的理解...