2018 反病毒软件

时间限制: 1 s

 空间限制: 128000 KB
 题目等级 : 钻石 Diamond
 查看运行结果
 

题目描述 Description

其实这个“反病毒软件”(Anti-Virus SOFTware),是相关部门应对H9N7人流感研发的。

相关部门的监控范围里只有N个城市,从1到N编号。初始时,这些城市都没有任何病例出现。由于在某一个城市出现过多的病例不太好,相关部门需要随时知道,从X到Y(含X和Y)这些城市当中,病例最多的城市与病例第二多的城市的病例数之差为多少。

一共会有Q个事件发生,具体见【输入】。

输入描述 Input Description

第一行为两个整数N,Q,以空格隔开。

接下来Q行,每行代表一个事件。第i+1行代表第i个事件,这一行有三个整数Ci,Xi,Yi,其中Ci为1或2。如果Ci为1,表示在城市Xi又新发现了Yi个病例;如果Ci为2,表示询问从Xi到Yi,病例最多的城市与病例第二多的城市的病例数之差为多少。

输出描述 Output Description

对于输入中的每一个Ci=2的事件,输出一行,即询问的结果。

样例输入 Sample Input

4

2 1 4

1 2 3

2 2 4

1 3 2

2 1 3

1 2 2

2 1 4

样例输出 Sample Output

0

3

1

3

数据范围及提示 Data Size & Hint

【样例说明】

初始时各个城市的病例数为{0,0,0,0}。

从1到4最多的病例数为0,第二多的病例数为0,差值为0,输出0。

城市2发现了3个新病例,病例数变为{0,3,0,0}。

从2到4最多的病例数为3,第二多的病例数为0,差值为3,输出3。

城市3发现了2个新病例,病例数变为{0,3,2,0}。

从1到3最多的病例数为3,第二多的病例数为2,差值为1,输出1。

城市2发现了2个新病例,病例数变为{0,5,2,0}。

从1到4最多的病例数为5,第二多的病例数为2,差值为3,输出3。

【数据规模与约定】

对于40%的数据,N,Q≤1000。

对于100%的数据,2≤N,Q≤100000,且对于每一个Ci=2,满足Xi<Yi。

分类标签 Tags 点此展开

题解:首先对这个出题人表示严重吐槽——假如存在两个并列第一多的城市,那么不是不应该第一第二都取这个值么?我这么做结果WA得很惨,然后我再加了个等号让第一第二可以取一样的值,然后就AC了!?!?对这题的题目表述表示不解。。。汗

不难搞的线段树,点修改的话该怎么干怎么干,然后区间的话主要就是个核心运算——merge操作,别的没了

 type vet=record
a1,a0:longint;
end;
var
i,j,k,l,m,n:longint;
a2:vet;
a:array[..] of vet;
d:array[..] of longint;
c:array[..] of longint;
procedure swap(var x,y:longint);inline;
var z:longint;
begin
z:=x;x:=y;y:=z;
end;
function max(x,y:longint):longint;inline;
begin
if x>y then max:=x else max:=y;
end;
function min(x,y:longint):longint;inline;
begin
if x<y then min:=x else min:=y;
end; function merge(a2,a3:vet):vet;inline;
var i,j,k,l:longint;a4:vet;
begin
c[]:=a2.a0;c[]:=a2.a1;
c[]:=a3.a0;c[]:=a3.a1;
a4.a0:=;a4.a1:=;
for i:= to do
begin
if c[i]>=a4.a0 then
begin
a4.a1:=a4.a0;
a4.a0:=c[i];
end
else
begin
if (c[i]>a4.a1) and (c[i]<a4.a0) then a4.a1:=c[i];
end;
end;
exit(a4);
end;
procedure built(z,x,y:longint);inline;
begin
if x=y then
d[x]:=z
else
begin
built(z*,x,(x+y) div );
built(z*+,(x+y) div +,y);
end;
a[z].a0:=;a[z].a1:=;
end;
procedure doit(x,y:longint);
begin
x:=d[x];
a[x].a0:=a[x].a0+y;a[x].a1:=;
while x> do
begin
a[x div ]:=merge(a[x],a[x+-*(x mod )]);
x:=x div ;
end;
end;
function cal(z,x,y,l,r:longint):vet;
var a3,a2:vet;
begin
if l>r then
begin
a2.a0:=;
a2.a1:=;
exit(a2);
end;
if (x=l) and (y=r) then exit(a[z]);
exit(merge(cal(z*,x,(x+y) div ,l,min(r,(x+y) div )),cal(z*+,(x+y) div +,y,max(l,(x+y) div +),r)));
end;
begin
readln(n);
built(,,n);
while not(eof) do
begin
readln(j,k,l);
case j of
:doit(k,l);
:begin
a2:=cal(,,n,k,l);
writeln(a2.a0-a2.a1);
end;
end;
end;
readln;
end.

Codevs2018 反病毒软件的更多相关文章

  1. XP停服务,卡巴当后盾——卡巴斯基反病毒软件2014(一年版)

    领取地址:http://xp.kaba365.com/3180000.asp 活动说明活动时间:2014年4月9日零时起赠送产品:卡巴斯基反病毒软件2014(一年版)激活码.赠送对象:中国大陆所有XP ...

  2. hMailserver设置外部反病毒扫描程序

    刚在5dmail上发现有人提出一个问题,他在hmailserver的外部病毒扫描程序中使用了瑞星那个娱乐货,结果呢,说瑞星太勇猛了,所有附件都认为病毒了,这是怎么个情况呢? 先从hmailadmin里 ...

  3. 【解决办法】糟糕,我的电脑只有IE64位浏览器能上网,其他软件都上不了网

      最近两周在三班四班有5位同学电脑7次出现网络故障,表现为能连上锐捷.DNS正常却不能上网,其中在我自己的计算机上就发生了2次.上网搜集并整理了以下资料,供大家参考.请直接参见[解决办法]. [网上 ...

  4. ------- 软件调试——注销 QQ 过滤驱动设置的事件通知 CallBack (完)-------

    ---------------------------------------------------------------------------------- 本系列的最后一篇演示如何通过调试手 ...

  5. 安全预警-防范新型勒索软件“BlackRouter”

    近期,出现一种新型勒索软件“BlackRouter”,开发者将其与正常软件恶意捆绑在一起,借助正常软件的下载和安装实现病毒传播,并以此躲避安全软件的查杀.目前,已知的被利用软件有AnyDesk工具(一 ...

  6. Windows系统下三十款优秀开源软件

    Windows系统下三十款优秀开源软件 1.Firefox 官方网站:http://www.getfirefox.com/ 可替换Internet Explorer 功能特点:如果你还没有使用Fire ...

  7. Android Studio 导入项目 出现安装Error:Cause: failed to find target with hash string 'android-23' 等错误

    今天   在导入 一个新项目时 : 出现了这个错 Error:Cause: failed to find target with hash string 'android-23' in: C:\Use ...

  8. 杀毒软件导致YourSQLDba备份失败

    有一朋友咨询我,他配置的YourSQLDba 备份作业经常出现备份失败的情况,我帮忙查看了一下,首先从告警邮件中查看出错的具体信息,执行了下面SQL语句(来自于告警邮件) Exec YourSQLDb ...

  9. sql server 对象资源管理器(二)

    SQL会缓存大量的数据页面,他还会缓存很多其他信息,包括存储过程的执行计划 ,特定用户的安全上下文等 如果这些信息没有在数据库中缓存,SQL都要重新计算一遍,花额外的时间,所以SQLSERVER对内存 ...

随机推荐

  1. V8编程入门

    本文档介绍了V8引擎的一些关键概念,并提供了例子hello world指引你入门. Hello World 让我们看一个Hello World的示例,它将一个字符串参数作为JavaScript语句,执 ...

  2. Jsoup后台解析html、jsp网页

    在一些网络爬虫或者从第三方网站抓取信息的程序都面临1个问题,如何从网页中把所需的信息提取出来,Jsoup是个比较好的选择,它能把网站内容解析成Document,再从document中取element就 ...

  3. 详解googe Chrome浏览器(理论篇)

    开篇概述 1详解google Chrome浏览器,这个标题似乎抽象了一些,我想应该把它拆分成如下几个问题,也许会更加理解一些. 问题1:目前开发中,主选浏览器有Google Chrome,IE,Fir ...

  4. [CSS3] 学习笔记-选择器详解(三)

    1.UI元素状态伪类选择器 在CSS3的选择器中,除了结构性伪类选择器外,还有一种UI元素伪类选择器.这些选择器的共同特征是:指定的样式只有当元素处于某种状态时才起作用,在默认状态下不起作用.在CSS ...

  5. ArcGIS制图表达Representation-制图表达介绍

    ArcGIS制图表达技术-制图表达介绍 by 李远祥 在基于GIS数据的制图中,大部分都是使用的数据+符号应用的这种模式.这种模式已经被应用很多年,而且也是非常成熟.对应在ArcGIS体系里面,就是数 ...

  6. 【Ionic+AngularJS 开发】之『个人日常管理』App(二)

    准备工作 资源 预装工具 安装bower npm install -g bower 安装ngCordova bower install ngCordova (*由于网络获取资源的原因,后面几次建项目后 ...

  7. Spring实战——Profile

    看到Profile这个关键字,或许你从来没有正眼瞧过他,又或者脑海中有些模糊的印象,比如除了这里Springmvc中的Profile,maven中也有Profile的标签. 从字面意思来看,Profi ...

  8. Android7.0 Phone应用源码分析(三) phone拒接流程分析

    本文主要分析Android拒接电话的流程,下面先来看一下拒接电话流程时序图 步骤1:滑动按钮到拒接图标,会调用到AnswerFragment的onDecline方法 com.android.incal ...

  9. IIS配置步骤,绝对有用,百度上的不全面,是百度的补充

    百度教程:http://www.jb51.net/article/29787.htm 参照百度教程,但是配置不成功,关键的地方来了!! 下面的也要配置设置 1. 2. 3.C:\Windows\Sys ...

  10. JavaScript严格模式说明带示例

    严格模式(use strict) 目的 消除JS中一些不合理.不严谨之处,减少一些怪异行为 消除代码中的一些不安全之处,保障代码运行安全 提高编译器效率,增加运行速度 为以后的JS新规范做铺垫 兼容性 ...