西安seo盐城,江门整站优化,官方网站优化价格,辽宁省造价信息网官网正题
题目链接:https://ac.nowcoder.com/acm/contest/1101/A 题目大意 nnn天第iii天需要aia_iai台机器#xff0c;每台机器可以工作mmm天。qqq次修改#xff0c;每次修改一个aia_iai#xff0c;求每次修改后至少需要雇佣多少台机器。 解题思路
很容易想到答案就是max{…正题
题目链接:https://ac.nowcoder.com/acm/contest/1101/A 题目大意
nnn天第iii天需要aia_iai台机器每台机器可以工作mmm天。qqq次修改每次修改一个aia_iai求每次修改后至少需要雇佣多少台机器。 解题思路
很容易想到答案就是max{ai,⌈summ⌉}max\{a_i,\lceil \frac{sum}{m}\rceil\}max{ai,⌈msum⌉}
线段树维护即可。 codecodecode
#includecstdio
#includecstring
#includealgorithm
#includequeue
#define ll long long
using namespace std;
const ll N4e510;
struct tree_node{ll l,r,w;
};
ll n,m,q,a[N],ans;
struct node{tree_node t[N*4];void Build(ll x,ll l,ll r){t[x].ll;t[x].rr;if(lr){t[x].wa[l];return;}ll mid(lr)/2;Build(x*2,l,mid);Build(x*21,mid1,r);t[x].wmax(t[x*2].w,t[x*21].w);}void Change(ll x,ll pos,ll num){if(t[x].lt[x].r){t[x].wnum;return;}ll mid(t[x].lt[x].r)/2;if(posmid) Change(x*2,pos,num);else Change(x*21,pos,num);t[x].wmax(t[x*2].w,t[x*21].w);}
}Tree;
int main()
{scanf(%lld%lld%lld,n,m,q);for(ll i1;in;i)scanf(%lld,a[i]),ansa[i];Tree.Build(1,1,n);printf(%lld\n,max(Tree.t[1].w,ans/m((ans%m)?1ll:0ll)));while(q--){ll x,num;scanf(%lld%lld,x,num);ansnum-a[x];a[x]num;Tree.Change(1,x,num);printf(%lld\n,max(Tree.t[1].w,ans/m((ans%m)?1ll:0ll)));}
}