这题我第一眼居然差点错了\(OTZ\)

然后写了线段树,还写挂了……

写好了\(query\)操作,发现似乎不需要区间查询,然后又删掉……

看着这熟悉的操作,似乎在哪里见过……

然后我莫名其妙把一个\(now\)打成了\(x\),\(x\)从来没有被定义过,\(DEVc++\)居然还给我编译过了???莫名其妙卡了两小时,不然也不止\(160\)分

然后标程出来,是\(set\)……

为什么我没想到,佛枯了\(QWQ\)

题目描述

链接:https://ac.nowcoder.com/acm/contest/1101/A

来源:牛客网

小多计划在接下来的\(n\)天里租用一些服务器,所有的服务器都是相同的。接下来\(n\)天中,第\(i\)天需要\(a_i\)台服务器工作,每台服务器只能在这\(n\)天中工作\(m\)天,这\(m\)天可以不连续。

但是计划不是一成不变的,接下来有\(q\)次修改计划(修改是永久的),每次修改某一天\(k\)的需求量\(a_k\)

小多希望知道每次修改之后,最少需要多少台服务器。

输入描述:

第一行三个正整数\(n,m,q\),分别表示计划的天数,每台服务器能工作的天数和修改次数。

随后一行\(n\)个非负整数,第\(i\)个数字\(a_i\)表示原计划第\(i\)天需要多少台服务器工作。

随后\(q\)行,每行两个正整数\(p_i, c_i\),表示把第\(p_i\) 天需要的服务器数目改成$c_i $

输出描述:

第一行输出原计划需要的最少服务器数量。

随后\(q\)行,每行输出对应的修改之后,需要的最少的服务器的数量。

有没有觉得很水,求平均值和最大值,一眼秒……

然后再求平均值和最大值二者中的较大值就是答案

但是我当时一下子没有想到最大值是会变的

然后问题转化成了维护全局最大值

多么熟悉的问题

用\(set\)就完事儿了,\(O(qlogn)\)

可能你也想写线段树?

代码:

#include <bits/stdc++.h>
using namespace std;
#define rint register int
#define ll long long
const int MAX = 4e5 + 10;
int n, q, a[MAX + 2], maxn;
ll ans, m, tans;
struct tree{
ll m;
}t[(MAX<<2) + 2];
inline void build( int x, int l, int r ){
if( l == r ){
t[x].m = a[l];
return;
}
int mid = ( l + r ) >> 1;
build( x << 1, l, mid); build( x << 1 | 1, mid + 1, r);
t[x].m = max( t[x<<1].m, t[x<<1|1].m );
}
inline void pushup( int x ){
t[x].m = max( t[x << 1].m, t[x << 1 | 1].m );
}
inline void update( int now, int pos, ll val, int l, int r ){
if( l == r ){
t[now].m = val; return ;
}
int mid = ( l + r ) >> 1;
if( pos <= mid ) update( now << 1, pos, val, l, mid );
else update( now << 1 | 1, pos, val, mid + 1, r );
pushup( now );
}
inline int read( void ){
register ll re = 0;
char ch = getchar();
while( ch < '0' || ch > '9' ) ch = getchar();
while(ch >= '0' && ch <= '9' ){
re = re * 10 + ch - '0';
ch = getchar();
}
return re;
}
int main( void ){
n = read(); m = read(); q = read();
int maxn = 0;
for( int i = 1; i <= n ; i++ ){
a[i] = read(); ans += a[i];
if( maxn < a[i] ) maxn = a[i];
}
tans = ( ans - 1 ) / m + 1;
if( maxn > tans ) cout << maxn << endl; else cout << tans << endl;
build( 1, 1, n );
for( rint i = 1; i <= q; i++ ){
int t1, t2; t1 = read(); t2 = read();
ans = ans + t2 - a[t1];
a[t1] = t2;
tans = ( ans - 1 ) / m + 1;
update( 1, t1, t2, 1, n );
if( tans > t[1].m ) printf( "%lld\n", tans );
else printf( "%lld\n", t[1].m );
}
return 0;
}

D2T1服务器需求——毒?瘤题(并不是的更多相关文章

  1. CSP-S 2019提高组训练 服务器需求

    时间限制:C/C++ 3秒 空间限制:C/C++ 262144K 题目描述 小多计划在接下来的n天里租用一些服务器,所有的服务器都是相同的.接下来n天中,第i天需要\(a_i\)台服务器工作,每台服务 ...

  2. NAT对于网络上的其它人都不可见(但可以转发端口),Bridged和网络里的其它物理机没区别,Internal只能在虚拟机之间可见,Host-only只对主机可见(最符合我的服务器需求),最多可设置8块网卡实现混杂

    VirtualBox 可以为每一个虚拟机分配8个网卡.每一个网卡的连接方式可以选为下列之一: Not attached Network Address Translation (NAT) Bridge ...

  3. 「牛客CSP-S2019赛前集训营2」服务器需求

    传送门 NowCoder 解题思路 考虑一种贪心选择方法:每次选出最大的 \(m\) 个 \(a_i\) 进行覆盖. 那么就会出现一种特殊情况,最高的那个 \(a_i\) 需要多次选择,而且不得不每次 ...

  4. IDC:企业需求疲软 第三季度全球服务器市场收入下滑7%

    根据IDC全球服务器季度追踪报告,2016年第三季度全球服务器市场同比减少7%至125亿美元.整个服务器市场的增长最近有所放缓,部分原因是超大规模数据中心增长放缓,以及受到高端服务器销售下滑的拖累.此 ...

  5. 虚拟主机、VPS、云主机以及独立服务器的关系

    很多人对虚拟主机.VPS.云主机以及独立服务器的关系不是很了解,我在这里给大家简单分析一下. 先总结一下: (1)虚拟主机是把一台物理机器分割成很多的小空间,这些空间共享操作系统的资源,比如:同一个操 ...

  6. 徒手用Java来写个Web服务器和框架吧<第一章:NIO篇>

    因为有个不会存在大量连接的小的Web服务器需求,不至于用上重量级服务器,于是自己动手写一个服务器. 同时也提供了一个简单的Web框架.能够简单的使用了. 大体的需求包括 能够处理HTTP协议. 能够提 ...

  7. 在局域网中搭建自己的gis服务器

    在局域网中搭建自己的gis服务器 需求        在客户的B/S应用系统中使用电子地图.该系统只可运行于内部网中. 分析        由于系统中的电子地图只能运行于局域网中所以不能采用googl ...

  8. [服务器]Gartner:2018年第四季度全球服务器收入增长17.8% 出货量增长8.5%

    Gartner:2018年第四季度全球服务器收入增长17.8% 出货量增长8.5% Gartner 是不是也是花钱买榜的主啊.. 简单看了一下 浪潮2018Q4的营收18亿刀 (季度营收110亿人民币 ...

  9. 网络编程-socket(三)(TCP长连接和UDP短连接、时间服务器)

    详解地址:https://www.cnblogs.com/mys6/p/10587673.html TCP server端 import socketsk = socket.socket() # 创建 ...

随机推荐

  1. [LC] 485. Max Consecutive Ones

    Given a binary array, find the maximum number of consecutive 1s in this array. Example 1: Input: [1, ...

  2. delicate|definite|density|deny doing|draw up |draw on|no equal for|establish|equipped|

    ADJ-GRADED 技巧性很强的;注重细节的A delicate task, movement, action, or product needs or shows great skill and ...

  3. 为什么说iPhone无望恢复中国市场?

    直到现在还记得,iPhone 4在国内当时引发的追捧狂潮.彼时iPhone 4绝对是一机难求,上至土豪下至学生都以拥有iPhone 4为荣.发售接近一年后仍然需要加价,价格动辄达到七八千元,真正成为了 ...

  4. jQuery中的bind(), live(), on(), delegate()

    当我们试图绑定一些事件到DOM元素上的时候,我相信上面这4个方法是最常用的.而它们之间到底有什么不同呢?在什么场合下用什么方法是最有效的呢? 准备知识: 当我们在开始的时候,有些知识是必须具备的: D ...

  5. SpringMVC中Interceptor和Filter区别

    Interceptor 主要作用:拦截用户请求,进行处理,比如判断用户登录情况,权限验证,主要针对Action请求进行处理.是通过HandlerInterceptor 实现的. 配置如下: <m ...

  6. Java Design Patterns(2)

    1.Factory Design pattern 工厂设计模式的优点 (1)工厂设计模式提供了接口而不是实现的代码方法. (2)工厂模式从客户端代码中删除实际实现类的实例化.工厂模式使我们的代码更健壮 ...

  7. js new 与 return

    前置: 默认情况下, 函数的返回值是 undefined (即没有定义返回值). new 操作符 js 中的 new 操作符,可以是我们像 java 一样,获得一个新的对象,例如: function ...

  8. vue基础指令了解

    Vue了解 """ vue框架 vue是前台框架:Angular.React.Vue vue:结合其他框架优点.轻量级.中文API.数据驱动.双向绑定.MVVM设计模式. ...

  9. github里的readme.md

    在github里如何写readme.md https://www.cnblogs.com/guchunli/p/6371040.html----------------------> READM ...

  10. Qt 隐藏标题栏 窗口移动 鼠标事件

    摘要 隐藏标题栏 头文件声明鼠标移动虚函数 .cpp文件实现功能 1 setWindowFlags(Qt::FramelessWindowHint | windowFlags()); 无标题栏移动窗体 ...