1. 程式人生 > >2016SDAU課程練習三1001

2016SDAU課程練習三1001

題目題意:

最長上升子序列問題。

Sample Input 2 5 6 -1 5 4 -7 7 0 6 -1 1 -6 7 -5
Sample Output Case 1: 14 1 4 Case 2: 7 1 6 解題思路:

以每個數作為最後一個數考慮,遞迴找出最大的sum。

AC程式碼:

#include <iostream>
using namespace std;
int get(int a[],int &start,int &last ,int d)
{
     int max = -10000000 ;//max初始為0是會出錯的!
     start=0 ;
     last= 0 ;
     int t =1 ;
     int mt =0 ;
     for(int i=0;i<d; i++)
     {
             mt = mt +a[i];
             if(mt > max)
             {
                    max = mt;
                    start= t ; last= i+1 ;
             }


             if(mt < 0)
             {
                mt=0 ;
                t=i+2 ;//再次迴圈時,start和last又是同一個值了!
             }
     }
     return max ;
}
int main()
{
    int num ;
    cin >> num ;
    for(int k = 1 ; k <= num ;k++)
    {
              int lg = 0 ;
              cin >>lg ;
              int * a = new int[lg];//動態陣列
              for(int i =0 ;i < lg ; i++)
              {
                      cin >>a[i];
              }
              int start= 0 , last= lg-1 ;
              int max = 0 ;
              max = get(a,start,last,lg);
              cout<<"Case "<<k<<":"<<endl;
              cout<<max<<" "<<start<<" "<<last<<endl;
              if(k!=num)
              cout<<endl;//題目要求每個case之間空一行!
    }
    return 0 ;
}

相關推薦

2016SDAU課程練習1001

題目題意: 最長上升子序列問題。 Sample Input 2 5 6 -1 5 4 -7 7 0 6 -1 1 -6 7 -5 Sample Output Case 1: 14 1 4 Case 2: 7 1 6 解題思路: 以每個數作為最後一個數考慮,

2016SDAU程式設計練習1001

Problem A Problem Description   Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For

2016SDAU程式設計練習1007

Problem G Problem Description都說天上不會掉餡餅,但有一天gameboy正走在回家的小徑上,忽然天上掉下大把大把的餡餅。說來gameboy的人品實在是太好了,這餡餅別處都不掉,就掉落在他身旁的10米範圍內。餡餅如果掉在了地上當然就不能吃了,所以

2016SDAU程式設計練習1010

Problem J  Problem Description 有一樓梯共M級,剛開始時你在第一級,若每次只能跨上一級或二級,要走上第M級,共有多少種走法?   Input 輸入資料首先包含一個整數N,表示測試例項的個數,然後是N行資料,每行包含一個整數M(1<=M&l

2016SDAU課程練習一1002

Problem C  Problem Description Here is a famous story in Chinese history. "That was about 2300 years ago. General Tian Ji was a high offi

2016SDAU程式設計練習1012

Problem L  Problem Description 在2×n的一個長方形方格中,用一個1× 2的骨牌鋪滿方格,輸入n ,輸出鋪放方案的總數.<br>例如n=3時,為2× 3方格,骨牌的鋪放方案有三種,如下圖:<br><img src=

2016SDAU課程練習一1005 Problem F

Problem F Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 100   Accepted Submissio

2016SDAU程式設計練習1014

Problem N  Problem Description 我們看到過很多直線分割平面的題目,今天的這個題目稍微有些變化,我們要求的是n條折線分割平面的最大數目。比如,一條折線可以將平面分成兩部分,兩條折線最多可以將平面分成7部分,具體如下所示。<br><

2016SDAU程式設計練習1017

Problem Q  Problem Description Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like to col

課程天內容《基礎交換

交換機 思科 路由器 雲計算 達內教育 IP地址 作用:在一定範圍內,唯一的表示一個網絡設備; 表示: 二進制 --- 10101010101010010101 , 共32個; 點分十進制 - X.X.X.X ;

python練習()

個數 取出 寫入文件 with pytho eve 文件的 write 一個 1. 把一個數字的list從小到大排序,然後寫入文件,然後從文件中讀取出來文件內容,然後反序,在追加到文件的下一行中 list = [67, 234, 35, 14, 18, 6, 9, 5]li

面向對象課程次隨筆

模塊 != nbsp 嚴重 CA 模塊化 方法 edit 添加 一、規格化設計的發展歷史   20世紀60年代,軟件出現嚴重危機,Dijkstra提出了goto語句的危害,由此引發了軟件界長達數年的論戰,並產生了結構化程序設計方法。Pascal語言在20世紀70年代占有統治

OO課程次總結QWQ

ace 想去 說明 LV 容易 歷史 測試的 同學 輸出 調研,然後總結介紹規格化設計的大致發展歷史和為什麽得到了人們的重視 emmm為這個問題翻遍百度谷歌知乎也沒有得到答案,那我就把自己認為最重要的兩點簡要說明一下吧,歡迎大家補充~ 1、便於完成代碼的重用交接。   

練習: 次機會登錄系統

NPU style put count () lse user print inpu name = "ken" pwd = "123" count = 3 while 1 <= count: user_name = input("輸入姓名:").strip(

學習python課程

學習python 錯誤 3.1 不同 反向 三引號 尋求 pre 語法 今天先把變量給補充一下: 一.變量具備的三個特征是: 1. id id是變量的唯一編號, 在內存裏地址不同,id就不同. 2.type 是指變量值的類型. 3.value 是指

練習

The code when ast list touch cross pop 讀寫 總結: 區別:1.列表。可以用list()函數或者[]創建,元素之間用“,”分隔;列表的元素不需要有相同的類型;使用索引來訪問元素,元素是有序的,可重復。 2元組。用()或者tuple()函

課程練習的設計過程

負數 老師 也有 大數 n) 正數 數組 成了 軟件 在新的軟件工程課堂上,老師留了一個課堂練習小題。 問題描述:返回一個整數數組中最大子數組的和。 要求:(1)輸入一個整形數組,數組裏有正數,也有負數。 (2)數組中連續的一個或多個整數組

英語進階系列-A05-英語升級練習

的人 apr ids tree 現在 例如 芒果 onu sat 古詩背誦 要求:認真背誦和朗讀,然後翻譯成現代文,並繪制圖像描述圖中的意向,時間限制到10 minutes。另外,從中找出英文單詞,並記錄。 例如:慈母 = kind mother,手 = hand,線 =

Python練習:爬蟲練習,從一個提供免費代理的網站中爬取IP地址資訊

西刺代理,http://www.xicidaili.com/,提供免費代理的IP,是爬蟲程式的目標網站. 開始寫程式 import urllib.requestimport re def open_url(url):   req = urllib.request.Request(url)   req

課堂練習

void image std n) 存在 oid 正數 思想 設計 題目:返回一個整數數組中最大子數組的和。要求: 1)輸入一個整形數組,數組裏有正數也有負數。 2)數組中連續的一個或多個整數組成一個子數組,每個子數組都有一個和。 3)如果數組A[0]……A[j-1]首尾相