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樓:匿名使用者 有的,未刪減,戳我的頭像 鹿蜀山海經 include int main else printf the train journey time is d hours d minutes n hour,minu return 0 執行結果 chen localhost q6 a.outenter time1 1205 enter... 思路不是被你找出來了麼。有幾點。你的幾個for迴圈計數器都沒初始化。宣告的時候也沒賦值,x,y,z可以為任意值。也是錯的。要麼定義的時候給出,要麼for迴圈前置指令新增賦值。二一個,你最裡層的for迴圈是 z 0 z 8 z z 2 那麼已經包含了z 2 0的情況。完全浪費cpu 因為 為左結合,從... int 50 a c語言陣列定義,我忘記怎麼寫了int i 0 bool isover false for i i 50 i int inptr a 這裡也忘記了 取得陣列指標void order int a 排序具體操作你看看演算法 碧海風雲 include include define arr ...這道c語言題怎麼做
問一下C語言這道題怎麼做?問下這道C語言題怎麼做?
用C語言怎麼解決這道題,用C語言怎麼解決這道題