码迷,mamicode.com
首页 > 其他好文 > 详细

【差分】bzoj 1676 [Usaco2005 Feb]Feed Accounting 饲料计算

时间:2017-09-16 22:02:19      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:blog   tin   str   algorithm   class   scanf   需要   目的   间接   

题目的建模意思是什么呢?

每个奶牛从a点开始吃,从b+1点就停止吃。这就是间接告诉你这两点组成一个区间,需要差分序列。

之后对差分的序列求前缀和(计算每天的粮草的消耗量),

之后对于消耗的粮草,我们倒着从第D天往第1天加和,如果刚好相符就输出。

#include <cstdio>
#include <algorithm>
#include <cstring>

int n,d,Start,End;
int Sum[2333];
int x,y;

int main(){
    scanf("%d%d%d%d",&n,&Start,&End,&d);
    int Aim = Start - End;
    for(int i=1;i<=n;i++){
        scanf("%d%d",&x,&y);
        Sum[x]++;
        Sum[y+1]--;
    }
    for(int i=1;i<=d;i++){
        Sum[i]+=Sum[i-1];
        //printf("Sum[%d]:%d\n",i,Sum[i]);
    }
    int ans = 0;
    for(int i=d;i>=1;i--){
        ans+=Sum[i];
        if(ans>=Aim){
            printf("%d\n",i);
            return 0;
        }
    }
}

 

【差分】bzoj 1676 [Usaco2005 Feb]Feed Accounting 饲料计算

标签:blog   tin   str   algorithm   class   scanf   需要   目的   间接   

原文地址:http://www.cnblogs.com/OIerLYF/p/7532616.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!