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

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

潛心看書研究!

常用鏈接

留言簿(19)

隨筆分類(81)

文章分類(89)

相冊

ACM OJ

My friends

搜索

  •  

積分與排名

  • 積分 - 221598
  • 排名 - 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 閱讀(1628) 評論(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>
              国产精品sm| 欧美成人四级电影| 亚洲一区自拍| 亚洲免费在线视频一区 二区| 亚洲视频一二区| 亚洲欧美日韩在线观看a三区| 日韩视频免费看| 亚洲午夜日本在线观看| 午夜精品福利一区二区蜜股av| 欧美一区午夜精品| 麻豆成人91精品二区三区| 欧美激情一区三区| 国产精品夜夜夜| 一区二区在线不卡| 亚洲视频二区| 亚洲一区二区三区精品视频| 久久影视精品| 国产精品播放| 久久国产精品网站| 亚洲精品四区| 久久成人羞羞网站| 国产精品免费观看视频| 亚洲精品小视频在线观看| 欧美一区二区三区在线视频 | 欧美不卡在线视频| 国产精品yjizz| 久久精品夜色噜噜亚洲a∨| 欧美激情一区二区在线| 欧美在线3区| 亚洲激情网站| 毛片基地黄久久久久久天堂| 99精品免费网| 欧美精品999| 久久超碰97人人做人人爱| 一区二区日韩精品| 欧美日韩专区| 亚洲美女福利视频网站| 欧美成人午夜免费视在线看片| 欧美精品乱人伦久久久久久| 香蕉久久国产| 亚洲一区二区三区在线看 | 毛片基地黄久久久久久天堂 | 欧美私人网站| 免费看的黄色欧美网站| 久久久久久9| 狠狠色狠狠色综合日日tαg| 久久精品二区三区| 欧美激情欧美狂野欧美精品| 久久精品观看| 国产精品免费一区豆花| 亚洲国产高清一区| 久久大综合网| 欧美日韩国产片| 亚洲网站在线| 亚洲小视频在线| 日韩视频免费在线| 久久亚洲欧洲| 一区二区三区高清不卡| 亚洲免费高清| 91久久精品国产91久久性色tv| 亚洲国产二区| 在线成人av网站| 最新国产精品拍自在线播放| 欧美乱妇高清无乱码| 午夜精品成人在线视频| 午夜激情综合网| 亚欧美中日韩视频| 国产精品亚洲综合一区在线观看| 一本色道婷婷久久欧美| 一区电影在线观看| 欧美专区日韩视频| 久久大香伊蕉在人线观看热2| 欧美午夜免费| 中文在线不卡视频| 亚洲高清中文字幕| 在线视频欧美日韩精品| 亚洲无亚洲人成网站77777| 欧美理论在线| 亚洲乱码国产乱码精品精天堂| 亚洲精美视频| 欧美激情性爽国产精品17p| 亚洲第一中文字幕在线观看| 亚洲人精品午夜| 欧美女人交a| 亚洲久久一区二区| 亚洲一区三区视频在线观看| 国产精品yjizz| 亚洲欧美日韩在线不卡| 久久久精品日韩| 黄色影院成人| 欧美激情第10页| 久久久噜噜噜久久中文字免| 欧美激情aⅴ一区二区三区| 亚洲清纯自拍| 91久久黄色| 欧美日韩国产成人在线免费| 亚洲一区二区三区免费视频| 久久久久久久久久久久久久一区| 亚洲成人在线视频播放| 亚洲欧美日韩精品久久久| 久久精品日产第一区二区| 好看的日韩视频| 欧美精品免费视频| 亚洲午夜视频在线观看| 欧美成人dvd在线视频| 国产欧美日韩另类一区| av成人动漫| 久久精品欧美日韩| 亚洲三级电影在线观看| 国产精品欧美激情| 欧美 日韩 国产一区二区在线视频 | 久久久久久久久久久久久久一区| 亚洲国产中文字幕在线观看| 国内成人精品视频| 亚洲欧美卡通另类91av| 亚洲男人影院| 亚洲二区视频| 国产精品一区二区在线观看网站 | 午夜精品久久99蜜桃的功能介绍| 国内一区二区在线视频观看| 欧美激情久久久久久| 亚洲欧美色婷婷| 亚洲国产高清在线观看视频| 欧美伊人久久| 日韩一级大片| 欧美日韩国产在线一区| 久久另类ts人妖一区二区| 中文亚洲字幕| 亚洲国产专区校园欧美| 久久综合久久综合久久综合| 狠狠狠色丁香婷婷综合激情| 欧美日韩视频专区在线播放 | 中文一区二区在线观看| 亚洲国产欧美日韩另类综合| 久久久久欧美精品| 亚洲免费视频在线观看| 日韩午夜激情av| 精品二区视频| 国产视频不卡| 久久久国产91| 欧美高清视频在线| 久久精品日韩| 欧美在线免费视频| 午夜一区在线| 亚洲综合国产激情另类一区| 亚洲精品中文字| 亚洲激情在线激情| 亚洲电影有码| 精品69视频一区二区三区| 国产日韩欧美在线播放| 国产精品久久久久久久午夜片| 欧美日本国产视频| 欧美日韩精品欧美日韩精品| 欧美精品手机在线| 欧美精品v日韩精品v韩国精品v| 麻豆精品一区二区av白丝在线| 久久久久久69| 毛片基地黄久久久久久天堂| 欧美成人黄色小视频| 欧美福利视频网站| 欧美电影免费网站| 欧美精品在线视频观看| 欧美区亚洲区| 国产精品国产三级国产专播品爱网 | 午夜在线成人av| 欧美在线免费观看视频| 久久久www免费人成黑人精品| 久久成人国产精品| 久热re这里精品视频在线6| 开心色5月久久精品| 亚洲国产裸拍裸体视频在线观看乱了中文 | 尤物yw午夜国产精品视频明星 | 欧美激情精品久久久久久变态| 欧美阿v一级看视频| 欧美黄色一区二区| 国产精品久久二区| 国产原创一区二区| 亚洲国产另类精品专区| 日韩午夜电影av| 欧美影院成年免费版| 欧美88av| 9久草视频在线视频精品| 午夜精品久久久久久99热| 久久免费的精品国产v∧| 欧美精品一区在线| 国产欧美日本在线| 亚洲精品乱码久久久久久日本蜜臀 | 欧美日韩国产综合久久| 国产三级欧美三级| 99国内精品| 久久精品女人天堂| 99热在线精品观看| 久久手机精品视频| 国产精品久久久亚洲一区 | 欧美激情小视频| 国内精品久久国产| 一本一道久久综合狠狠老精东影业 | 亚洲免费av电影| 久久嫩草精品久久久精品一| 亚洲片国产一区一级在线观看|