1樓:匿名使用者
最大子矩陣,最大連續子陣列進階,動態規劃初級,poj1050
題目描述:現給出一個n*n矩陣,要求求出擁有最大和的子矩陣的和。
例如:這樣的一個矩陣,最大子矩陣的和為15;
分析:最大子矩陣可以看為求最大連續子陣列拓展到二維陣列上,因為矩陣的性質同樣在橫向豎向上需要連續,那麼可以想辦法將這個二維陣列簡化為求連續子陣列。
思考:1.要求最大子矩陣,必須保證每個矩陣都被瀏覽到,為了保證執行時間儘可能不要重複瀏覽同一矩陣,故需制定規則,規則定為用i表示起始行,j表示終止行,j>=i,再使用k對列進行遍歷,即可覆蓋所有矩陣。
求這個連續陣列的最大連續子陣列和便是這個矩陣(以i=2作為起始行,j=4作為終止行)的最大子矩陣,如此,整個矩陣的最大子矩陣便是這些最大子矩陣中的最大值。
上**:
#include#includeusing namespace std;int main()可有sum-sum得到
為此提前做出相加方便之後化簡
*/a[i][j]+=a[i-1][j];
}} int max = -10000; for(int i=1;i<=n;i++)else if(temp[k]>max)}}
}cout< 2樓:匿名使用者 求子陣列的最大值(貪心演算法) 對於c語言程式設計思路是什麼 3樓:曾相林 其實你沒有必要話流程圖,但是你要做得很仔細 就不一樣。其實我個人覺得,我們做c語言專的程式就屬是把自己的想法表達出來,你在做的時候就把你的大腦想成計算機(其實都差不多),然後你把一個一個的步驟表達出來就好。主要就是你大腦裡面先要有構思,我這個程式究竟應該怎麼表達,先想大體的框架,然後我的每一個細節該用什麼方式表達,具體要到每一個小的迴圈,還有就是當你一下方法熟悉以後就可以在思考的時候把這個東西直接想成已經構思好的(就好像你自己事先就編輯好的函式一樣),現在就只有需要拿過來用,當你都能夠看見一個題目,10秒鐘想到大體思路,1分鐘想到具體實現的辦法,然後把這個你自己想的編譯就沒有邏輯錯誤,那你就比較好了。 總之,上面最關鍵的就是:變成是把自己的思想(方法)用計算機語言表達出來。你只要把這個你自己的想法一步一步的按照電腦執行(意思是這個語言的語法)的方式把他輸入電腦內,然後讓計算機來幫忙你做這個本來你能夠做的事情(但是很麻煩),你的程式就好了,雖然說你的程式不一定精巧,但是你能夠實現你自己想的功能,你就成功了第一步。 4樓:匿名使用者 這東西急不來的,慢慢積累。多上機,多思考。有時候能想明白一件事會很有成就感的。 5樓:匿名使用者 1、對於任何語言當然 來也包含c語言,編自程思路都是類似的,都離不開「數學」這個範疇,程式設計的目的其實根本一點就是對資料進行加工處理,從這一點出發,就理清了一個思路: 2、首先就是建立一個資料模型,c語言的函式庫中有豐富的數學函式供呼叫,用來解決實際問題。其次就是規劃變數,哪些使用全域性變數,哪些採用區域性變數。第三就是規劃模組,將你要達到的程式設計目的分成各個模組,這樣可以使程式清晰一些,以後修改或擴充套件都更容易。 第四就是養成一個畫流程圖的習慣,這樣可以在這個過程中會幫助你完善很多的程式設計思路。 6樓:笑傲心揚 假如你分解一道題 我會用人腦模擬執行過程。。或者在紙上做一些執行過程的記號。。。 變數有用到的時候在添上去。。不必一下子就寫出來。。。 7樓:匿名使用者 我也剛來學c,但感覺學得還行自 。以一個同為初學者的身份,我也來參與點意見。 對於語法問題,比如你說的for迴圈等等,我的想法是先抓大結構,對於結構的分解一定要到位。分清了迴圈體,還怕不懂內外迴圈? 其次多寫。多讀。 8樓:_一兩月光 精華思想:自頂向下逐步細化 9樓:陳俊浩 呵,朋友 來,我也是學c的,你自的遭遇我能體會,我的好多同學中,都是一般學到函式就學不下去了,沒心去看課本看完,這是學不成的第一點。第 二、我想你只是看一下課本,然後讀一下例題感覺看懂了就以為這一章學會了,呵,這是我親身經厲的,我對c語言很是喜歡,課本沒兩星期就給我看完了,看例題時感覺也很容易,但一上機讓自己寫一個出來,呵,想半天也沒想出點什麼來,這是就缺少一種感覺,那感覺從何而來呢,那就是做題,每道題縱使再難想也要把自己所能想出來的寫出來,再對照答案看自己哪想不到了,哪不對了,5道之後,這型別的就沒問題了,我認為都是一種感覺,我從不畫流程圖的,你比例題缺少的,你自己想辦法補上,我認為別人的方法不一定適合你,要你自己去探自己的路,程式設計沒有自己去認真摸索,我想,不會期多大成就的。 我的回答希望能幫到你, 10樓:木馬病毒真酷 給我你的郵箱地址,發給你關於c語言的程式設計思路教程,還有題目!你就會明白了... 11樓:滄海雄風 對於任何語言當bai 然也包含c語言,程式設計思du路都是zhi類似的,都離不開dao「數學」這個範疇版,程式設計的目的其實根權本一點就是對資料進行加工處理,從這一點出發,我們就理清了一個思路: 首先就是建立一個資料模型,c語言的函式庫中有豐富的數學函式供呼叫,用來解決實際問題。 其次就是規劃變數,哪些使用全域性變數,哪些採用區域性變數。 第三就是規劃模組,將你要達到的程式設計目的分成各個模組,這樣可以使程式清晰一些,以後修改或擴充套件都更容易。 第四就是養成一個畫流程圖的習慣,這樣可以在這個過程中會幫助你完善很多的程式設計思路 c語言咋麼學啊??能看懂例題,自己程式設計不會啊?沒有思路! 12樓:匿名使用者 學c語言要看天賦。不怕打擊你,你沒天賦。 c語言這道題怎麼做 13樓:匿名使用者 #include int main() while(i <= n) printf("結果是:%d", sum); return 0;} 14樓:北京最遊科技**** //n為函式的引數 public int calsum(int n)return result;} 15樓:匿名使用者 有的,未刪減,戳我的頭像 觀察puts w 的位置不同時輸出是不同的,因為開始第一次迴圈時w i 即只有w 0 被賦值一次,就列印了,後面的w i 1 等是不確定的。第二次迴圈的時候w 0 和w 1 被賦值,依次類推。其實把puts 字串列印函式放在第25行就可以理解了。不知道,列印的是否為原題的意思 這裡借用樓上的大神的回... for迴圈的判斷條件為當x 10或者y 10兩個均不成立時,迴圈停止。每次迴圈結束後,x和y都會自增自減來改變自己的條件。執行迴圈得到的結果就為x 0,y 12。1 第一次迴圈 x 15,y 2 2.第二次迴圈 x 7,y 5 從這次迴圈開始,x不會自減,因為x是7,7是小於10的,故x不會 自減,... a錯 不定要一致,因為型別之間可以相互轉換,是由級別低的向高的轉換,字元型 整型 浮點型 雙精度浮點型。b錯 是無型別返回,而不是無值返回,void表示自定義型別。如果無值返回,那做什麼工作啊,要它不就沒用了嗎。c錯 解釋同a。d正確 因為實型 就是浮點或雙精度浮點 級別最高,也就是最後型別了。所以...請問這道c語言題該怎麼做啊,請問這道c語言程式題怎麼做呀
這道C語言的題怎麼解?這道C語言的題怎麼做?
C語言題,答上點就行 這道C語言的題怎麼做?