2018-09-22-尺取

題目:hihocoder1831
今天參加北京網(wǎng)絡(luò)賽,AC掉了這一題,當時思路很不清晰,反復思考,前后拖延了一個小時,中間還WA了兩次。
下來了再看相關(guān)題解,才知道這是一道尺取(PS:很形象)。不過感覺這種算法用處不大,更像是依據(jù)具體場合才能抽象出來,不像貪心或者DP,所以,從某種意義上來說,會不會算法也是一種工具,依據(jù)具體場合而發(fā)揮作用。
相關(guān)題目:POJ-3061
hihocoder1831:

#include<stdio.h>

#define N 1000001

long long c=0,a[N]={0},b[N<<1]={0};

int main()
{
    int T,n,i;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%lld",&n,&c);
        for(i=1,a[0]=0;i<=n;i++)
            scanf("%lld",a+i);
        for(i=1,b[0]=0;i<=n;i++)
        {
            scanf("%lld",b+i);
            b[i]=a[i]-b[i];
            b[i+n]=b[i];
        }
        for(i=1,n<<=1;i<=n;i++)
            b[i]+=b[i-1];
        int cnt;
        for(cnt=0,i=1,n>>=1;cnt<n&&i<n+cnt+1;)
        {
            if(c+b[i]-b[cnt]<0)
            {
                cnt++;
                if(b[cnt]>0)
                    i=cnt+1;
            }
            else
                i++;
        }
        if(cnt==n)
            cnt=-2;
        printf("%d\n",cnt+1);
    }
    return 0;
}

POJ-3061:

#include<stdio.h>

#define N 100000

int main()
{
    int n,T;
    long long s,a[N];
    scanf("%d",&T);
    while(T--)
    {
        int i,j,cnt;
        long long sum;
        scanf("%d%lld",&n,&s);
        for(i=0;i<n;i++)
            scanf("%lld",a+i);
        for(j=0,i=0,cnt=n+1,sum=a[0];i<n&&cnt!=1;)
        {
            if(sum<s)
                sum+=a[++i];
            else
            {
                if(cnt>i-j+1)
                    cnt=i-j+1;
                sum-=a[j++];
            }
        }
        printf("%d\n",cnt==n+1?0:cnt);
    }
    return 0;
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 歸去來兮。 1.1 說明 本篇為《挑戰(zhàn)程序設(shè)計競賽(第2版)》[http://www.ituring.com.cn...
    尤汐Yogy閱讀 14,902評論 0 160
  • 如果30歲的我回頭看 15歲時犯下的錯 我會很輕易的原諒我自己 就像原諒,大一的學生 在圖紙上毛糙的忘掉指北針 如...
    一冰_a161閱讀 289評論 0 3
  • 長這么大,自我反思覺得我不是很會花錢,因為家庭條件的原因,媽媽很節(jié)省,所以從小養(yǎng)成我節(jié)省的習慣,不會隨便亂花錢,舍...
    碎碎念筆記本閱讀 374評論 0 0
  • 一花有一花的韻致 一葉有一葉的清逸 一木有一木的風姿 ······ 你知道嗎?你最美好 嘿!“三·八”節(jié)快樂 祝福...
    晚晴風竹閱讀 219評論 0 0
  • http://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741...
    RavenX閱讀 516評論 0 1

友情鏈接更多精彩內(nèi)容