【差分】bzoj 1676 [Usaco2005 Feb]Feed Accounting 飼料計算
阿新 • • 發佈:2017-09-16
每天 序列 scanf 這就是 div algo ret printf 開始
題目的建模意思是什麽呢?
每個奶牛從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 飼料計算