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

隨筆 - 87  文章 - 279  trackbacks - 0
<2006年2月>
2930311234
567891011
12131415161718
19202122232425
2627281234
567891011

潛心看書研究!

常用鏈接

留言簿(19)

隨筆分類(81)

文章分類(89)

相冊

ACM OJ

My friends

搜索

  •  

積分與排名

  • 積分 - 220587
  • 排名 - 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 閱讀(1626) 評論(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>
              国产精品一区免费视频| 亚洲成在线观看| 欧美日韩国产在线一区| 欧美韩日亚洲| 欧美丝袜第一区| 国产亚洲一区二区在线观看| 在线观看不卡| 亚洲另类在线一区| 国产精品久久激情| 欧美日韩亚洲一区二区三区在线| 国产欧美欧美| 99视频在线精品国自产拍免费观看 | 亚洲欧洲日产国产网站| 亚洲精品综合| 久久激情综合网| 欧美精品一区二区三区一线天视频| 国产欧美在线视频| 麻豆av一区二区三区| 99视频精品免费观看| 久久国产高清| 9l国产精品久久久久麻豆| 亚洲一二三级电影| 欧美区高清在线| 久久激情网站| aa日韩免费精品视频一| 国产亚洲一级| 亚洲精品久久久久| 欧美激情二区三区| 久久国产精品免费一区| 欧美福利视频在线| 久久久久久成人| 亚洲欧美成人一区二区在线电影 | 欧美成年人网| 在线观看91精品国产麻豆| 亚洲精品久久7777| 狠狠色狠色综合曰曰| 欧美亚洲一级| 亚洲视频一区| 国产精品一区二区久激情瑜伽| 美女91精品| 麻豆精品视频在线观看| 精品91在线| 你懂的亚洲视频| 蜜桃久久av一区| 亚洲欧美日韩精品在线| 一区二区久久久久久| 欧美视频一区在线| 欧美va天堂va视频va在线| 国产欧美一区二区色老头| 亚洲精品免费在线播放| 91久久精品国产91性色| 浪潮色综合久久天堂| 国产精品亚洲综合久久| 欧美在线精品一区| 久久久久综合一区二区三区| 国外成人在线视频| 亚洲欧美日韩一区在线| 影音先锋亚洲精品| 欧美一区二区在线看| 91久久国产综合久久| 久久成人免费视频| 久久高清国产| 国产欧美日韩亚洲一区二区三区| 一区二区三区日韩| 亚洲欧美综合| 免费国产一区二区| 亚洲一区精彩视频| 亚洲一区在线播放| 伊人久久综合| 久久久噜噜噜久久人人看| 久久久夜精品| 欧美亚男人的天堂| 欧美 日韩 国产精品免费观看| 国产一区二区欧美日韩| 欧美中文在线字幕| 一区二区三区.www| 国内自拍一区| 久久国内精品视频| 免费一级欧美片在线播放| 亚洲经典自拍| 亚洲无限乱码一二三四麻| 亚洲综合日本| 国产综合在线看| 中文在线一区| 久久亚洲影院| 亚洲韩国日本中文字幕| 欧美视频一区二区三区在线观看| 一区二区三区日韩精品| 久久国产精品毛片| 亚洲国产美女| 欧美性猛交一区二区三区精品| 香蕉久久一区二区不卡无毒影院| 夜色激情一区二区| 国产精品久久久久aaaa| 欧美在线国产精品| 亚洲欧洲精品一区二区精品久久久 | 女人色偷偷aa久久天堂| 99精品视频免费观看视频| 欧美一区在线视频| 欧美日韩国产二区| 亚洲欧美一区二区三区久久| 免费短视频成人日韩| 亚洲特级毛片| 欧美日韩极品在线观看一区| 亚洲在线国产日韩欧美| 欧美国产精品日韩| 亚洲精品在线观看视频| 亚洲视频网站在线观看| 国产一区二区无遮挡| 欧美理论电影在线播放| 小黄鸭视频精品导航| 亚洲国产精品免费| 久久久久久久高潮| 99综合精品| 在线欧美三区| 久久中文久久字幕| 欧美xart系列高清| 欧美一二三视频| a4yy欧美一区二区三区| 在线电影一区| 国产欧美日韩三级| 欧美福利专区| 老司机久久99久久精品播放免费| 亚洲视频精品| 999亚洲国产精| 亚洲欧美日韩国产中文| 亚洲成人在线| 狠狠入ady亚洲精品| 欧美午夜精彩| 欧美经典一区二区| 夜夜嗨av一区二区三区四季av| 美日韩精品视频| 久久精品99| 欧美一级在线播放| 夜夜嗨av一区二区三区网页| 亚洲福利国产| 欧美黄色aa电影| 欧美暴力喷水在线| 中日韩高清电影网| aa级大片欧美三级| 亚洲美女黄网| 日韩视频免费在线| 亚洲乱码精品一二三四区日韩在线| 亚洲高清免费在线| 1024精品一区二区三区| 在线日韩欧美视频| 在线精品视频免费观看| 伊人久久大香线| 亚洲国产综合视频在线观看| 亚洲第一久久影院| 亚洲美女啪啪| 一区二区三区黄色| 亚洲女人天堂成人av在线| 亚洲欧美久久| 久久精品论坛| 免费观看在线综合| 欧美激情精品久久久久久蜜臀| 99在线精品视频在线观看| 99国产精品99久久久久久| 国产精品一区二区三区免费观看| 国产精品久久久久婷婷| 免费在线观看精品| 欧美理论在线| 国产精品福利网| 国产一区二区三区日韩欧美| 亚洲第一网站免费视频| 亚洲人成网站在线播| 亚洲一区二区三区午夜| 91久久国产综合久久| 亚洲精品影院| 欧美一级免费视频| 免费日韩视频| 亚洲午夜女主播在线直播| 羞羞答答国产精品www一本 | 免费成人高清在线视频| 亚洲国产精品免费| 亚洲一区久久| 欧美1区2区3区| 国产精品丝袜久久久久久app| 国产一区二区激情| 一本色道久久88精品综合| 欧美在线观看你懂的| 欧美.www| 亚洲欧美一区二区三区极速播放 | 欧美日韩国产综合视频在线观看中文| 国产精品免费一区二区三区在线观看 | 99在线|亚洲一区二区| 亚洲一区久久| 老司机aⅴ在线精品导航| 国产精品扒开腿做爽爽爽软件 | 欧美大色视频| 国产亚洲精品高潮| 一区二区日韩免费看| 久热精品视频在线| 一级成人国产| 蜜臀91精品一区二区三区| 国产视频一区二区在线观看| 欧美久久影院| 亚洲国产精品黑人久久久| 亚洲欧美久久|