怎麼培養自己的發散思維,高效刷題?
寫到這個題目HDU1176,起初一看,一點思路都沒有,真的!感覺不會很難,去Discuss裡面看了一下,看到一個人代碼,他說這是數塔問題!我認真的看了一下他的代碼,然後又去詳細的查了一下關於數塔的知識。(渣渣別吐槽)自己在仔細想想,這個題目跟我們之前做的數塔的題目那就是一個模子里出來的啊,就變了一下型,為什麼我就想不到了呢。真的,這讓我很迷茫。每次寫到這種題目,明明考的知識點就是那麼基礎的東西,為什麼自己獨立思考就怎麼都想不出來呢。這也是我最近一直在思考的問題。總感覺我做題做的太死,沒有一點變通,沒有了高中做數學題的那種舉一反三的感覺,似乎我很不適合去刷題,沒有一點的進步。最近壓力又這麼大,沒有一點的進步,我該怎麼做??
這些天,我一直在想,我該怎樣高效的去刷題,而不是一味的只追求數量。我覺得這不只是我一個人的問題,我相信這對於很多人來說,這都是必須去明白的。因為這取決於你能在這條路上走多遠,能夠爬上多高的高度。對於每一種類型模型題,我們必須熟悉,他的思路,代碼,我們需要能夠隨時的說出來,用在我們高考那會老師說的,就是半夜叫你起來,你也能隨口說出來的程度。但是現在的問題關鍵就是加入一道模型題你懂了,你也明白了,但是當我用另外的一種描述,另外的一種形式考你,你能找出他的模型來么,你能輕鬆的解決這道題目么?我想這是我們每一個ACMer需要考慮的問題。
前幾天,我們操作系統的老師說,一個人刷100道題然後和刷另一個刷1000道題的人考的分數一樣,那說明這個刷100道題的人更聰明,的確,我承認,這其中是會有更聰明和不聰明之分,但是我覺得則更多是的是對方法的掌握,對一種類型的題目發散性思維的培養,因為我一直認為,一個人的大腦使用率才這麼點,每個能在同一個環境學習的人,智力是不會相差很大,但最後結果相差卻那麼大,根本原因就是每個人使用的方法不一樣,走的路徑不樣,效率不一樣。
然而,現在的我,卻還沒有找到一種更好的方法,讓我自己的思維更加的發散,可以更加的活躍起自己的思維,因為我不想花別人幾倍的時間乃至更多的時間去做一件別人輕而易舉就完成的事,因為我很懶,我需要的是我花比別人更少的時間去完成更多的事情,來彌補我的懶惰,我的貪玩。(以上是前幾天自己寫的)
剛剛也在別人的帖子看到,幾個問題,真的,思考問題的方式根本不是我們這樣的常規思維,這種思維對於一個程序員,乃至更多人,我覺得很重要,如果能讓自己多一些這樣的思維,肯定會離成功更進一步。
說說我剛剛看到的一個題目:現有20個雞蛋,和一個會下蛋的雞,這隻雞每天下一個蛋,小明每天吃兩個雞蛋,問,小明能吃多少天?
常規思維:10+5+2+1+1+1=20
另一種思維:每天吃一個舊雞蛋和一個新雞蛋,可以吃20天
我想這就是一個簡單的不同思維,也是我真正需要的。
少一點真誠,多一點套路……
建議多思考自己認為可能稍難但是可以觸及的題,比如(我是說比如= =)你現在cf div2比賽中能做掉ABC,就可以試著去思考DE甚至切掉,慢慢你就會發現,全都是套路。
曾經有這麼一個題,用1,5,10,25這四種數湊出x(&<=1e18),1+5和5+1是一種方案,求方案數%1e9+7,現場我是推了半天公式強行切掉的,然而矩陣快速冪直接就一波帶走了,當時作為新人選手表示這種做法非常excited,現在覺得都是套路,畢竟當時too young。
利益相關:ACM從入門到放棄多練一些難度在自己會做的極限左右的題目,練多了就發現以前覺得某些題目非常神奇的解法。。。要麼是普通套路,要麼是歪門邪道比如題主舉的例子,我會認為10+5+2+1+1+1這種是沒入門級別的暴力想法,一天一個舊雞蛋一個新雞蛋是取巧,我覺得正常人都是20+x=2x解出x=20的。。。
恩,個人感覺有兩種蒻,第一種是見的少的蒻,第二種是明明見多識廣,但是就是不會做的蒻。
所以說呀,人的命運呀,當然要靠自我奮鬥,但是也要考慮到歷史的行程。所以對症下藥很關鍵,而且吃錯藥很麻煩的。
當然我一直都屬於第一類……(所以長年外號鐵匠10+5+2+1+1+1我覺得這個才不是常規,這個只能算是「吃法」。
做題常規應該是20+x=2x吧。。。每天一個新一個舊是那種思路比較跳躍的吧,快但是並不時時靠譜的類型。
其實我覺得發散思維就是多練,思維不是隨便發散的,而是靠或有意或無意的積累。你得知道有這條路的存在,才可能在下一次考慮有沒有用上的可能。知道的路越多,能拓展的路徑就越多,有點子排列組合的味道。(紙上談兵黨,看看就好)推薦閱讀:
※古人有那些愚蠢的做法或想法延續至今?
※什麼是邏輯思維?怎麼判斷一個人的邏輯思維是否清晰?通過談話問問題能否判斷之?
※對於一個優秀的人,怎麼樣才可以學習到他的思維模式?
※大家是怎樣看待(大學本科)學數學的女生的?
※除了邏輯思維,人類還有哪些比較重要的思維模式?