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

隨筆 - 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>
              亚洲一区二区视频在线| 亚洲毛片在线免费观看| 欧美在线网址| 欧美一级专区| 亚洲国产va精品久久久不卡综合| 欧美高清视频一二三区| 欧美国产精品中文字幕| 一区二区欧美在线观看| 亚洲一区二区在线观看视频| 国产日本欧美一区二区三区| 久久中文字幕一区二区三区| 欧美精品在线观看91| 亚洲欧美日韩直播| 久久久精彩视频| 亚洲网站啪啪| 欧美在线观看视频一区二区三区 | 久久久夜色精品亚洲| 1024日韩| 亚洲综合电影一区二区三区| 激情久久五月| aa级大片欧美三级| 国内精品久久久久久久影视麻豆| 欧美激情亚洲激情| 国产精品日韩欧美一区二区三区| 久久综合中文字幕| 欧美性色aⅴ视频一区日韩精品| 欧美主播一区二区三区美女 久久精品人 | 欧美中文字幕在线观看| 欧美aa国产视频| 欧美怡红院视频| 欧美精品午夜| 免费在线看一区| 国产精品亚洲不卡a| 亚洲激情视频网| 国产精品久久久久aaaa九色| 美日韩在线观看| 国产精品视频网| 日韩视频在线一区二区三区| 亚洲大片免费看| 久久超碰97中文字幕| 亚洲线精品一区二区三区八戒| 久久综合九色欧美综合狠狠| 欧美日韩aaaaa| 久久aⅴ国产欧美74aaa| 欧美精品亚洲精品| 老色鬼久久亚洲一区二区| 欧美性猛交一区二区三区精品| 免费看的黄色欧美网站| 国产午夜亚洲精品理论片色戒| a91a精品视频在线观看| 亚洲美女中文字幕| 欧美gay视频| 欧美高清在线视频| 亚洲成色www8888| 久久aⅴ国产紧身牛仔裤| 性刺激综合网| 国产精品久久久亚洲一区| 亚洲欧洲综合| 亚洲精品日韩精品| 欧美成人日本| 亚洲青涩在线| 在线综合视频| 亚洲精品一区在线观看| 在线观看视频一区| 久久天天躁夜夜躁狠狠躁2022 | 亚洲国产精品日韩| 久久久免费精品| 欧美成人免费视频| 最新亚洲一区| 欧美日韩一二三四五区| 亚洲乱码一区二区| 亚洲女同在线| 国产精品乱看| 欧美在线你懂的| 快播亚洲色图| 亚洲人成网站在线观看播放| 欧美国产精品劲爆| 日韩视频中午一区| 欧美一级视频一区二区| 国产一区日韩欧美| 毛片精品免费在线观看| 亚洲国产婷婷综合在线精品| 亚洲视频在线二区| 国产亚洲激情| 欧美xxxx在线观看| 一区二区三区国产精品| 久久久久国产精品www| 亚洲国产成人精品久久久国产成人一区| 麻豆国产精品va在线观看不卡 | 久久aⅴ乱码一区二区三区| 国产一区二区激情| 欧美成人tv| 亚洲一区二区三区三| 蜜臀av在线播放一区二区三区| 最新高清无码专区| 国产精品日韩久久久久| 久久蜜桃精品| 一区二区三区免费在线观看| 久久婷婷国产麻豆91天堂| 99riav国产精品| 国产日韩欧美另类| 欧美大片在线观看| 欧美一区二区三区免费看| 91久久精品国产91性色| 久久精品久久99精品久久| 亚洲另类春色国产| 国内外成人在线视频| 欧美日韩亚洲高清一区二区| 久久精品一区二区国产| 亚洲午夜久久久久久久久电影院| 欧美aⅴ一区二区三区视频| 亚洲欧美国产另类| 99国产一区| 在线看一区二区| 国产日韩在线一区| 欧美三级欧美一级| 欧美福利视频| 久久久亚洲精品一区二区三区| 亚洲午夜电影网| 亚洲精选在线观看| 欧美不卡一区| 久久亚洲欧美国产精品乐播| 香蕉视频成人在线观看| 中国成人在线视频| 亚洲伦理在线| 亚洲黄色成人久久久| 韩日精品视频| 国产真实久久| 国产亚洲精品久| 国产情侣一区| 国产午夜精品理论片a级探花 | 久久综合狠狠综合久久综合88 | 欧美激情aⅴ一区二区三区| 久久国产免费| 欧美在线一二三四区| 性欧美18~19sex高清播放| 亚洲一区在线直播| 亚洲一区二区成人在线观看| 中文一区二区在线观看| 99re6这里只有精品视频在线观看| 在线成人欧美| 最新高清无码专区| 日韩视频免费观看高清在线视频| 亚洲欧洲三级| 99综合在线| 亚洲性夜色噜噜噜7777| 亚洲一区二区三区久久| 亚洲欧美视频在线| 久久精品免费电影| 久久免费国产精品1| 狼狼综合久久久久综合网 | 亚洲欧美日韩国产中文| 午夜精品www| 久久精品一区二区| 美女免费视频一区| 亚洲欧洲日本专区| 一区二区三区精品视频| 亚洲欧美中文另类| 久久久久久久综合| 欧美巨乳在线观看| 国产精品亚洲成人| 一区在线免费观看| 亚洲精品在线免费| 午夜视频在线观看一区二区| 久久久精品一品道一区| 欧美成年人网站| 99国产精品久久久久久久| 亚洲一级免费视频| 久久蜜臀精品av| 欧美午夜片在线观看| 国产精品一区二区久久国产| 激情综合在线| 亚洲无玛一区| 快射av在线播放一区| 亚洲精品美女久久7777777| 亚洲男人的天堂在线aⅴ视频| 久久九九国产精品怡红院| 欧美日产在线观看| 狠色狠色综合久久| 在线亚洲一区观看| 免费视频最近日韩| 亚洲在线观看| 欧美韩日亚洲| 一区二区视频免费完整版观看| 一区二区三区国产在线观看| 久久久久久久一区| 一级日韩一区在线观看| 卡一卡二国产精品| 国产日韩亚洲欧美| 一区二区福利| 欧美www在线| 先锋影院在线亚洲| 国产精品久久久久久久久久久久久| 一区在线免费| 久久电影一区| 亚洲网站在线观看| 欧美日韩精品在线播放| 亚洲国产精品第一区二区| 久久久国产精彩视频美女艺术照福利| 日韩午夜电影|