美文网首页
2018-09-22-尺取

2018-09-22-尺取

作者: termanary | 来源:发表于2018-09-22 23:13 被阅读0次

题目:hihocoder1831
今天参加北京网络赛,AC掉了这一题,当时思路很不清晰,反复思考,前后拖延了一个小时,中间还WA了两次。
下来了再看相关题解,才知道这是一道尺取(PS:很形象)。不过感觉这种算法用处不大,更像是依据具体场合才能抽象出来,不像贪心或者DP,所以,从某种意义上来说,会不会算法也是一种工具,依据具体场合而发挥作用。
相关题目: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;
}

相关文章

  • 2018-09-22-尺取

    题目:hihocoder1831今天参加北京网络赛,AC掉了这一题,当时思路很不清晰,反复思考,前后拖延了一个小时...

  • 取尺法

    取尺法,又被叫做双指针法,一般可以用来维护具有单调性质的序列,所以有些题目取尺法和二分都可以用,但取尺法的复杂度还...

  • 系统医学治疗路线 - 肾衰竭

    《系统医学论稿》第二十六页。 脉象:左右浮取,寸弱,二关、尺强。沉取左右寸无,左关弱,右关无,二尺沉取全无。 治疗...

  • 2020-05-16

    【手少阴心经取穴和拍照要求】 1、取神门和通里,一定先确定腕横纹位置,然后再确定尺侧腕屈肌腱(可以用手在尺侧左右拨...

  • 君当仗剑,大杀四方 妾自抚琴,沉浮随郎

    三尺:剑的别称。因通体长三尺,故以之为剑的代称。《汉书·高帝纪》:“吾以布衣提三尺,取天下。”唐·颜师古注:“三尺...

  • Bound Found POJ - 2566(尺取)

    题目来源:Bound Found Description Signals of most probably ext...

  • 张咪第280天寄语

    随感 【道德经】第六十九章,吾不敢为主,而为客,不敢进寸,而退尺。不取攻势,宁取守势,不敢进一寸,宁退一尺。有余地...

  • 儿童原创文言文《论难题》

    有题云:“锥形麦堆底周54尺,高5.4尺,每9立方尺重700千克,圆周率取3,问堆重几何?” 由...

  • 仿古

    匣藏五尺剑 道义心中取 飒飒追云去 笑看风吹雨

  • 恋金沙滩

    金沙排浪纷纷漫,霎时退却取欢颜。 抬望不倦千尺浪,浩瀚无垠水连天。

网友评论

      本文标题:2018-09-22-尺取

      本文链接:https://www.haomeiwen.com/subject/xlffoftx.html