青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 87  文章 - 279  trackbacks - 0
<2006年9月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

潛心看書研究!

常用鏈接

留言簿(19)

隨筆分類(81)

文章分類(89)

相冊

ACM OJ

My friends

搜索

  •  

積分與排名

  • 積分 - 219411
  • 排名 - 118

最新評論

閱讀排行榜

評論排行榜

The Triangle
Time Limit:1000MS  Memory Limit:10000K

Description

7

3 8
8 1 0
2 7 4 4
4 5 2 6 5

(Figure 1)

Figure 1 shows a number triangle. Write a program that calculates the highest sum of numbers passed on a route that starts at the top and ends somewhere on the base. Each step can go either diagonally down to the left or diagonally down to the right.

Input
Your program is to read from standard input. The first line contains one integer N: the number of rows in the triangle. The following N lines describe the data of the triangle. The number of rows in the triangle is > 1 but <= 100. The numbers in the triangle, all integers, are between 0 and 99.

Output
Your program is to write to standard output. The highest sum is written as an integer.

Sample Input

5
7
3 8
8 1 0 
2 7 4 4
4 5 2 6 5

Sample Output

30

Source
IOI 1994

#include<iostream>
using namespace std;

int main()
{
    
int n,digital_num;
    
int result[100][100];
    
int *num;
    
int max = 0;
    
int i,j;
    cin
>>n;
    digital_num 
= n;
    num 
= new int[digital_num];

    
for (i = 0; i<n; i++)
    
{
        
for (j = 0; j<=i; j++)
        
{
            cin
>>num[j];
            
if (i==0)
                result[i][j] 
= num[j];
            
if (i>0)
            
{
                
if (j==0)
                    result[i][j] 
= result[i-1][j]+num[j];
                
if (j==i)
                    result[i][j] 
= result[i-1][j-1]+num[j];
                
if (j>0&&j<i)
                
{
                   
if (result[i-1][j]>result[i-1][j-1])
                       result[i][j] 
= result[i-1][j]+num[j];
                   
else
                       result[i][j] 
= result[i-1][j-1]+num[j];
                }

            }

        }

    }

    
    
for (i = 0; i<n; i++)
        
if (result[n-1][i]>max)
            max 
= result[n-1][i];

    cout
<<max<<endl;
    
return 0;
}
上面是通過的原程序。140k,15MS。


這道題目,過得好辛苦,從開始的遞歸,到遞推加回溯,到窮舉,到窮舉加剪枝,結果就從TLE->TLE->TLE->WA.  一直用著要保留路徑的方法,所以怎么也做不出來,后來換了個思維角度,保存每一步的結果,動態規劃,終于就AC了。做了這題,另我復習了好幾種方法,也對DP有了深得認識,可以說這是搞競賽的好題目,經典,推薦?。?
posted on 2006-02-21 13:09 閱讀(1623) 評論(6)  編輯 收藏 引用 所屬分類: 算法&ACM

FeedBack:
# re: 終于做出了一題IOI了,有點心得。 2006-02-21 20:58 
又忘記 delete []num 了!~~  回復  更多評論
  
# re: 終于做出了一題IOI了,有點心得。 2006-02-25 09:29 imlazy
加油。  回復  更多評論
  
# re: 終于做出了一題IOI了,有點心得。 2006-03-11 11:01 空明流轉
很好啊,再接再厲!
我的動態規劃一直學的不好。。。  回復  更多評論
  
# re: 終于做出了一題IOI了,有點心得。 2006-03-12 11:09 
感謝 空明流轉 的支持!
我已經領略到acm的恐怖了,但是我不會輕易放棄的:)  回復  更多評論
  
# re: 終于做出了一題IOI了,有點心得。 2006-08-12 21:15 Optimistic
加油!  回復  更多評論
  
# re: 終于做出了一題IOI了,有點心得。 2007-05-03 00:27 App
inline int calpos(int row,int col)
{

return row*(row-1)/2+col;
}
int tmem[5051]={-1,7,3,8,8,1,0,2,7,4,4,4,5,2,6,5};
int bestroute[5051]={-1};
int height=5;

int highestroute(int row,int col)
{
if (row>height)
{
return 0;
}
int pos=calpos(row,col);

if (bestroute[pos]>0)
{
return bestroute[pos];
}
int nr[]={1,0,1,1};
int max=0;
int i;
for (i=0;i<4;i+=2)
{
int tmp=highestroute(row+nr[i],col+nr[i+1]);
if (tmp>max)
{
max=tmp;
}
}
max+=tmem[pos];
bestroute[pos]=max;
return max;
}
亂寫的,感覺遞歸邏輯更加清晰:-)  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              欧美日韩激情网| 国产精品一区二区男女羞羞无遮挡| 久久综合久久综合久久综合| 国产精品裸体一区二区三区| 亚洲国产成人精品女人久久久 | 欧美成人自拍| 国产精品久在线观看| 伊人久久大香线蕉av超碰演员| 亚洲经典在线| 亚洲天堂激情| 欧美一区2区三区4区公司二百| 久久精品99无色码中文字幕| 老司机午夜免费精品视频| 欧美激情亚洲精品| 欧美激情女人20p| 欧美电影免费观看大全| 久久免费视频网站| 欧美日韩极品在线观看一区| 在线播放豆国产99亚洲| 欧美在线欧美在线| 国产丝袜一区二区| 欧美一区二区在线免费观看| 欧美日韩视频第一区| 一区二区三区我不卡| 久久亚洲国产成人| 国产欧美一区二区视频| 亚洲国产精品尤物yw在线观看| 欧美一区二区啪啪| 亚洲综合成人在线| 欧美黄色日本| 亚洲精品免费在线播放| 亚洲免费视频网站| 国产精品日韩一区| 亚洲免费网站| 一区二区日韩欧美| 亚洲视频在线播放| 国产视频精品xxxx| 久久久精品999| 久久精品国产一区二区电影 | 性色一区二区| 欧美吻胸吃奶大尺度电影| 亚洲欧美日本日韩| 亚洲一品av免费观看| 国产精品theporn| 久久精品一区二区国产| 久久夜色撩人精品| 亚洲精品欧美一区二区三区| 久久综合给合久久狠狠狠97色69| 久久亚洲精品网站| 日韩一级免费观看| 99一区二区| 国内精品久久久久伊人av| 女同性一区二区三区人了人一 | 亚洲婷婷在线| 在线中文字幕日韩| 亚洲深夜影院| 亚洲一区二区黄色| 国产午夜精品一区二区三区视频 | 欧美aⅴ99久久黑人专区| 免费久久精品视频| 中文国产一区| 伊人精品在线| 一区二区电影免费在线观看| 久久精品人人做人人爽| 国产噜噜噜噜噜久久久久久久久| 欧美成人激情在线| 国产日韩欧美精品一区| 欧美国产91| 精品不卡一区| 美女精品网站| 亚洲日本一区二区三区| 久久免费精品日本久久中文字幕| 国产亚洲激情在线| 欧美一区激情视频在线观看| 在线视频中文亚洲| 欧美日韩国产不卡| 老司机精品视频网站| 亚洲欧美视频在线| 性感少妇一区| 亚洲视频免费看| 蜜臀a∨国产成人精品| 欧美一区二区| 国产精品无码永久免费888| 亚洲国产99精品国自产| 国产欧美日韩另类视频免费观看| 日韩一级在线观看| 日韩亚洲欧美在线观看| 欧美不卡三区| 久久天堂国产精品| 国产午夜精品全部视频播放| 亚洲自拍另类| 午夜精品一区二区三区在线视| 免费看成人av| 亚洲国产综合视频在线观看| 韩国v欧美v日本v亚洲v| 亚洲综合另类| 亚洲女爱视频在线| 欧美图区在线视频| 99热在线精品观看| 亚洲一区二区三区在线看| 欧美成人日韩| 欧美大片18| 亚洲精品一区二区三区福利| 欧美精品色一区二区三区| 欧美激情精品| 日韩视频在线观看免费| 欧美不卡激情三级在线观看| 亚洲国产成人高清精品| 日韩手机在线导航| 99国产精品国产精品久久| 欧美午夜激情小视频| 亚洲一区二区三区三| 亚洲免费在线观看视频| 欧美精品一区三区| 国产精品亚洲综合色区韩国| 在线免费一区三区| 午夜视频久久久久久| 久久美女性网| 欧美黄免费看| 亚洲精品在线观| 一本高清dvd不卡在线观看| av成人动漫| 99精品免费| 欧美一区二区视频免费观看| 亚洲精品美女在线| 中文一区字幕| 欧美一区观看| 一区精品在线播放| 免费在线亚洲| 亚洲黄色免费| 亚洲一区日韩在线| 国产精品系列在线| 久久午夜羞羞影院免费观看| 亚洲欧洲在线一区| 欧美一区二区网站| 亚洲人体大胆视频| 国产欧美丝祙| 久久久999精品免费| 欧美性大战久久久久久久蜜臀| 性高湖久久久久久久久| 亚洲人成在线影院| 久久久久久网站| 一本久道久久久| 好看的日韩视频| 欧美日韩在线直播| 久久中文在线| 午夜视频在线观看一区二区| 亚洲精品久久久久久下一站 | 女人天堂亚洲aⅴ在线观看| 亚洲影音一区| 99综合电影在线视频| 精品91在线| 国产欧美精品一区aⅴ影院| 欧美高清日韩| 久久久久久自在自线| 亚洲砖区区免费| 亚洲精品免费网站| 亚洲成人在线网| 久久久精品tv| 亚洲欧美春色| 日韩亚洲欧美一区| 亚洲激情影视| 狠狠久久亚洲欧美| 国产精品久久久久久久9999 | 久久野战av| 亚洲午夜视频| 在线日韩av永久免费观看| 亚洲国产精品成人| 亚洲午夜精品一区二区| 欧美激情乱人伦| 亚洲永久免费精品| 久久精品一区二区三区中文字幕| 亚洲国产人成综合网站| 在线视频一区二区| 亚洲精品乱码| 老牛影视一区二区三区| 亚洲一二三四区| 欧美性做爰猛烈叫床潮| 久久综合色影院| 午夜激情久久久| 亚洲午夜在线观看视频在线| 一区二区三区www| 亚洲一区999| 亚洲一区二区黄色| 午夜精品久久久| 久久大逼视频| 久久久久久91香蕉国产| 久久久人成影片一区二区三区观看 | 免费不卡在线观看av| 巨乳诱惑日韩免费av| 久久一区二区视频| 久久久久久夜| 免费日本视频一区| 欧美人与性动交α欧美精品济南到| 欧美激情一区二区三区在线视频| 欧美激情精品久久久久久变态 | 在线一区观看| 亚洲欧美日韩精品综合在线观看 | 免费欧美日韩| 亚洲人成在线观看网站高清|