<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 36,  comments - 3,  trackbacks - 0
    Problem Description
    世界杯結束了,意大利人連本帶利的收回了法國人6年前欠他們的債,捧起了大力神杯,成就了4星意大利.
    世界杯雖然結束了,但是這界世界杯給我們還是留下許多值得回憶的東西.比如我們聽到了黃名嘴的3分鐘激情解說,我們懂得了原來可以向同一個人出示3張黃牌,我們還看到了齊達內的頭不僅能頂球還能頂人…………
    介于有這么多的精彩,xhd決定重溫德國世界杯,當然只是去各個承辦世界杯比賽的城市走走看看.但是這需要一大比錢,幸運的是xhd對世界杯的熱愛之情打動了德國世界杯組委會,他們將提供xhd在中國杭州和德國任意世界杯承辦城市的往返機票,并說服了這些城市在xhd到達這座城市時為他提供一筆生活費以便他在那里參觀時用,當參觀完時剩余的錢也將留給xhd,但當生活費不夠時他們將強行結束xhd的這次德國之行,除了這個,他們還有一個條件,xhd只能根據他們所給的路線參觀.比如有3座城市a,b,c,他們給定了a-b-c-a的路線,那么xhd只有3種參觀順序abc,bca,cab.由于各個城市所提供的生活費和在那里的花費都不同,這使xhd很頭痛,還好我們事先知道了這筆生活費和花費.請問xhd最多能順利參觀幾座城市?
     

    Input
    每組輸入數據分兩行,第一行是一個正整數n(1<=n<=100000),表示有n座城市.接下來的一行按照給定的路線順序的輸出這n個城市的生活費和花費,w1,l1,w2,l2,……,wn,ln,其中wi,li分別表示第i個城市的生活費和花費,并且它們都是正整數.
     

    Output
    對應每組數據輸出最多能參觀的城市數.
     

    Sample Input
    3 3 2 3 4 2 2 3 3 2 3 4 2 3
     

    Sample Output
    3 2

    /*狀態方程:F[I]=MAX(F[I-1]+A[I],A[I])*/
    #include
    <stdio.h>
    #include
    <string.h>
    #include
    <stdlib.h>
    #define MAX 100000
    int dp[MAX];
    int sum[MAX];
    int a[2*MAX];
    int max(int a,int b)
    {
        
    return a>b? a:b;
    }

    int main()
    {
        
    int i,a1,a2,n;
        
    while(scanf("%d",&n)!=EOF)
        
    {
            memset(dp,
    0,sizeof(dp));
            
    int num;
            
    for(i=0;i<n;i++)
            
    {
                scanf(
    "%d%d",&a1,&a2);
                a[i]
    =a[i+n]=a1-a2;
            }

            
    if(a[0]>=0)
                dp[
    0]=1;
            sum[
    0]=a[0];
            num
    =dp[0];
            
    for(i=1;i<2*n;i++)
            
    {
                
    if(num==n)
                    
    break;
                
    if(a[i]>=0)
                
    {
                    
    if(sum[i-1]>=0)
                    
    {
                        
                        dp[i]
    =dp[i-1]+1;
                        
    //if(num<=dp[i])
                        
    //    num=dp[i];
                        num=max(dp[i],num);
                        sum[i]
    =sum[i-1]+a[i];
                    }

                    
    else
                    
    {
                        sum[i]
    =a[i];
                        dp[i]
    =1;
                    }

                }

                
    else
                
    {
                    
    if(sum[i-1]+a[i]>=0)
                    
    {
                        dp[i]
    =dp[i-1]+1;
                        
    //if(num<=dp[i])
                        
    //    num=dp[i];
                        num=max(dp[i],num);
                        sum[i]
    =sum[i-1]+a[i];
                    }

                    
    else 
                    
    {
                        dp[i]
    =0;
                        sum[i]
    =a[i];
                    }

                }

            }

            printf(
    "%d\n",num);
        }

    }


    本題目可以用DP做也可以不用,dp的話是為最長公共子序列,記得是循環就行。
    posted on 2013-03-18 09:45 天YU地___PS,代碼人生 閱讀(126) 評論(0)  編輯  收藏 所屬分類: acm
    <2013年3月>
    242526272812
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456

     一定要好好學習,天天向上!

    常用鏈接

    留言簿

    隨筆分類(8)

    隨筆檔案(35)

    文章分類

    文章檔案(1)

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 五月天国产成人AV免费观看| 国产91在线|亚洲| 可以免费观看的一级毛片| 免费在线看片网站| 亚洲偷自拍另类图片二区| 男女猛烈xx00免费视频试看| 精品乱子伦一区二区三区高清免费播放| 97在线免费视频| 91精品视频免费| 免费人成视频x8x8入口| 麻豆亚洲AV成人无码久久精品 | 两个人日本免费完整版在线观看1| 67194国产精品免费观看| 欧洲美熟女乱又伦免费视频| 老司机亚洲精品影视www| 亚洲精品中文字幕麻豆| 国产成人亚洲精品91专区高清| 免费一级e一片在线播放| 一级毛片aaaaaa视频免费看| 免费鲁丝片一级观看| 黄网站色成年片大免费高清| 久久WWW色情成人免费观看| 亚洲第一AV网站| 男性gay黄免费网站| 亚洲中文字幕无码一区二区三区| 亚洲欧美日韩中文二区| 蜜臀AV免费一区二区三区| 国产成人精品日本亚洲11| 亚洲国产中文v高清在线观看| 亚洲av午夜精品无码专区| 日韩精品免费在线视频| 亚洲国产aⅴ综合网| 亚洲综合激情五月丁香六月| gogo全球高清大胆亚洲| 亚洲国产精品美女久久久久| 91视频国产免费| 精品日韩99亚洲的在线发布| 免费人成激情视频| 永久看日本大片免费35分钟 | 亚洲第一区视频在线观看| 日韩在线天堂免费观看|