Codevs2018 反病毒软件
2018 反病毒软件
时间限制: 1 s
其实这个“反病毒软件”(Anti-Virus SOFTware),是相关部门应对H9N7人流感研发的。
相关部门的监控范围里只有N个城市,从1到N编号。初始时,这些城市都没有任何病例出现。由于在某一个城市出现过多的病例不太好,相关部门需要随时知道,从X到Y(含X和Y)这些城市当中,病例最多的城市与病例第二多的城市的病例数之差为多少。
一共会有Q个事件发生,具体见【输入】。
第一行为两个整数N,Q,以空格隔开。
接下来Q行,每行代表一个事件。第i+1行代表第i个事件,这一行有三个整数Ci,Xi,Yi,其中Ci为1或2。如果Ci为1,表示在城市Xi又新发现了Yi个病例;如果Ci为2,表示询问从Xi到Yi,病例最多的城市与病例第二多的城市的病例数之差为多少。
对于输入中的每一个Ci=2的事件,输出一行,即询问的结果。
4
2 1 4
1 2 3
2 2 4
1 3 2
2 1 3
1 2 2
2 1 4
0
3
1
3
【样例说明】
初始时各个城市的病例数为{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 反病毒软件的更多相关文章
- XP停服务,卡巴当后盾——卡巴斯基反病毒软件2014(一年版)
领取地址:http://xp.kaba365.com/3180000.asp 活动说明活动时间:2014年4月9日零时起赠送产品:卡巴斯基反病毒软件2014(一年版)激活码.赠送对象:中国大陆所有XP ...
- hMailserver设置外部反病毒扫描程序
刚在5dmail上发现有人提出一个问题,他在hmailserver的外部病毒扫描程序中使用了瑞星那个娱乐货,结果呢,说瑞星太勇猛了,所有附件都认为病毒了,这是怎么个情况呢? 先从hmailadmin里 ...
- 【解决办法】糟糕,我的电脑只有IE64位浏览器能上网,其他软件都上不了网
最近两周在三班四班有5位同学电脑7次出现网络故障,表现为能连上锐捷.DNS正常却不能上网,其中在我自己的计算机上就发生了2次.上网搜集并整理了以下资料,供大家参考.请直接参见[解决办法]. [网上 ...
- ------- 软件调试——注销 QQ 过滤驱动设置的事件通知 CallBack (完)-------
---------------------------------------------------------------------------------- 本系列的最后一篇演示如何通过调试手 ...
- 安全预警-防范新型勒索软件“BlackRouter”
近期,出现一种新型勒索软件“BlackRouter”,开发者将其与正常软件恶意捆绑在一起,借助正常软件的下载和安装实现病毒传播,并以此躲避安全软件的查杀.目前,已知的被利用软件有AnyDesk工具(一 ...
- Windows系统下三十款优秀开源软件
Windows系统下三十款优秀开源软件 1.Firefox 官方网站:http://www.getfirefox.com/ 可替换Internet Explorer 功能特点:如果你还没有使用Fire ...
- 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 ...
- 杀毒软件导致YourSQLDba备份失败
有一朋友咨询我,他配置的YourSQLDba 备份作业经常出现备份失败的情况,我帮忙查看了一下,首先从告警邮件中查看出错的具体信息,执行了下面SQL语句(来自于告警邮件) Exec YourSQLDb ...
- sql server 对象资源管理器(二)
SQL会缓存大量的数据页面,他还会缓存很多其他信息,包括存储过程的执行计划 ,特定用户的安全上下文等 如果这些信息没有在数据库中缓存,SQL都要重新计算一遍,花额外的时间,所以SQLSERVER对内存 ...
随机推荐
- 使用IDEA开发及测试Spark的环境搭建及简单测试
一.安装JDK(具体安装省略) 二.安装Scala(具体安装省略) 三.安装IDEA 1.打开后会看到如下,然后点击OK
- PHP扩展之多线程
PHP一直以为不支持多线程,后面才知道有基于pThread的扩展包,地址如下: http://php.net/manual/zh/book.pthreads.php 我感兴趣的是以下几个点: 1.Th ...
- 负载均衡软件LVS分析一(概念)
一. LVS简介LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver. ...
- 《你不知道的js》 ------1.作用域是什么
相关定义 引擎:从头到尾负责整个JavaScript程序的编译及执行过程. 编译器:负责语法分析及代码生成等. 作用域:负责收集并维护由所有声明的标识符(变量)组成的一系列查询,并实施一套非常严格的规 ...
- 利用apache的mod_rewrite做URL规则重写
使用mod_rewrite做url重写,伪静态,做过很多次,这次用几个例子记下来,便于后面查用. 使用方法: 1.在conf目录的httpd.conf文件中找到: LoadModule rewrite ...
- 微信小程序维护登录态与获取用户信息
前言. 微信小程序的运行环境不是在浏览器下运行的.所以不能以cookie来维护登录态.下面我就来说说我根据官方给出的方法来写出的维护登录态的方法吧. 一.登录态维护 官方的文档地址:https://m ...
- JavaScript字符集编码与解码
一.字符集 1)字符与字节(Character) 字符是各种文字和符号的总称,包括乱码:一个字符对应1~n个字节,一字节对应8位,每位用0或1表示. 2)字符集(Character Set) 字符集是 ...
- 使用net Manager工具远程连接oracle
一,在服务端配置oracle端口 在命令行中输入netca命令,打开相关配置默认端口号为1521 二,配置端口后使用Telnet工具调试端口是否联通 在命令行输入telnet 服务器ip 端口号 三, ...
- Modelbuilder快速入门
Modelbuilder快速入门 by 李远祥 什么是modelbuilder 模型构建器是一个用来创建.编辑和管理模型的应用程序.模型是将一系列地理处理工具串联在一起的工作流,它将其中一个工具的输出 ...
- ion-scroll zooming="true" android端无法缩放的问题
很久很久没更新博客了,从今天开始决定以后陆续写一些博文,总结下自己在开发中碰到的问题. ionic项目.ion-scroll zooming="true" 在android端无法缩 ...