因為模擬法很簡單,很無腦。不用想題想的渾身難受,只需要按照題目要求設定好規則,然後就撒手不管了。就像遺傳演算法只需要設定好「遺傳變異」、「優勝劣汰」的規則,然後怎麼進化都是程式的事兒,我們吃瓜就行了
有兩種題可能會用到模擬法,一種是很直觀的直接告訴你一堆規則 ,然後瘋狂暗示就怕你不模擬 的,另一種是藏得比較深而且你不用模擬法也能做的(換句話說就是可以用模擬法偷懶而已)這裡舉幾個典型的例子
題目:裝在瓶子的蠕蟲都想從瓶子底部向瓶口處爬出去。它每分鐘向上爬行u厘公尺,之後會休息一分鐘,這一分鐘它會向下滑行d厘公尺,當蠕蟲到了瓶口或者超出瓶口後便出了瓶口,成功逃離(每分鐘計算一次位置)。編寫乙個函式,幫助蠕蟲計算它在什麼時候能夠爬出瓶子。
輸入:連續輸入多個的例項,每乙個例項輸入三個正整數分別代表n,u和d,其中d < n ,n < 1000,當輸入三個0時表明輸入停止。
輸出:針對每乙個輸入例項,計算蠕蟲跑出瓶子的時間。
樣例輸入:
10 2 1
20 3 1
0 0 0
樣例輸出:
17
19
分析:這題小學生都知道有個坑,但是由於我們懶,所以管他有啥坑哦,只要不t,模擬走起!首先分析,蟲有兩個動作,一是向上爬,二是向下掉,每個動作分別花1分鐘的時間。那好,我就以時間為單位,一分鐘一分鐘的讓程式去推演,每次推演看看蟲子爬出去沒有,爬出去了就返回推演到了多少分鐘就行了,**如下:
#include int func(int n,int u,int d);
int main()
printf("%d\n",func(n,u,d));
} return 0;
}int func(int n,int u,int d)
;int timeline[1001]; //這就是我們的時間軸!
int cmp(struct movie a,struct movie b)
{ return a.end是不是通過模擬一根時間軸就可以很簡單的把電影時間之間的衝突判斷問題解決了呢?而且理解起來是不是很直觀很容易嘛…無腦搓完,提交!哎,沒t,開心(
野生的大佬:胡說!你直接判斷電影的開始時間是否大於上乙個電影的結束時間不就完了嗎!
我(瑟瑟發抖):誒誒,鍛鍊一下思維嘛(´;ω;`)
有些題如果看起來很複雜,一時沒有頭緒,看一看輸入的資料數量級以及程式時間限制,如果感覺不會t,而且有可以模擬的思路,不妨試試模擬法 ,萬一a了呢對吧
PHP PDO 心得體會
關於pdo 我想可以不用做過多的描述,寫一寫最近的使用心得體會 首先 關於如何使用pdo 連線到資料庫 dbms mysql 使用的資料庫 host localhost 選擇的主機 dbname test 選擇的資料庫 user root 登陸的使用者名稱 password 使用者密碼 dsn dm...
銷售心得體會
銷售思維的培養 1.裝可憐讓客戶動惻隱之心是一種方法但是不適合男人 2.身處高位的銷售領導往往擁有給客戶的折扣和動用資源的優勢,不要當綠葉,要按兵不動尋找時機 3.市場上的大客戶與哪家合作就會成為標桿事件,哪家公司就會成為一線公司。4.站在客戶的角度,在業務上給予中肯的意見,得到客戶的感謝和認可。5...
面試心得體會
最近開發人手短缺成了大問題,因此招人也成了乙個重要任務。通過這幾天的面試,對這方面有了一些心得體會。一是it企業需要哪方面素質的人才。我感覺關鍵有兩條,一是能幹活,二是能合作。企業為什麼青睞有經驗的人?因為來了就能幹活。當然對於學生而言,經驗缺乏是一大缺陷,這就要展現另一方面 我具備成為幹活能手的能...