当前位置: 首页 > news >正文

POI 2018.10.27

[POI2015]LOG

维护一个长度为n的序列,一开始都是0,支持以下两种操作:1.U k a 将序列中第k个数修改为a。2.Z c s 在这个序列上,每次选出c个正数,并将它们都减去1,询问能否进行s次操作。每次询问独立,即每次询问不会对序列进行修改。

n<=1e6

 

修改数值不好掌握。我们离线读入询问,把所有的s,a离散化下来。

发现,对于一个Z c s,我们只要判断能不能操作。所以只关心大小关系。

大于等于s的数可以在s次中都参与贡献,小于s的数只能部分参与贡献。

设cnt为不小于s的数的出现次数,sum为小于s的数的出现次数。

可以操作的当且仅当:

sum>=s*(c-cnt)

意即,cnt个数每次都贡献之后,每次还剩(c-cnt)个要贡献,有s次。这些都要由小于s的数贡献。

所以如果sum>=s*(c-cnt)那么必然可以,否则必然不行。

权值线段树维护即可。

 

[POI2015]PUS

线段树优化建图。

 [POI2015]PUS

 

 

[POI2015]KIN

题目描述

共有m部电影,编号为1~m,第i部电影的好看值为w[i]。在n天之中(从1~n编号)每天会放映一部电影,第i天放映的是第f[i]部。你可以选择l,r(1<=l<=r<=n),并观看第l,l+1,…,r天内所有的电影。如果同一部电影你观看多于一次,你会感到无聊,于是无法获得这部电影的好看值。所以你希望最大化观看且仅观看过一次的电影的好看值的总和。

 

注意题意:一个电影看的多于一次,贡献就变成0了。

 

肯定要nxt

枚举左端点l。

线段树维护答案。每个位置p的值的意义是,当左端点是当前的l时,右端点是p的答案是多少。

从右往左枚举左端点。

枚举到i,就把i~nxt[i]-1加上w[i],nxt[i]~nxt[nxt[i]]-1减去w[i]即可。

取后缀[i,n]的mx作为本次的答案即可。

这样每个点会第一次出现的时候把贡献加上,又一次出现的时候,就把之前的贡献减去了。

 

突破口:枚举一个端点,考虑最新加入的点对右端点取哪些点的答案会造成影响。

一个 思想是:

一般考虑:枚举右端点是哪个,然后计算答案。

这个是:直接保存右端点是某个位置的话,答案是多少。只要动态更新答案,那么直接取max即可。

然后转化为每个点的贡献。

转载于:https://www.cnblogs.com/Miracevin/p/9862081.html

相关文章:

  • w3c xml
  • Jmeter----逻辑控制器(Logic Controller)
  • Selenium实战教程系列(二)---元素定位
  • Spark内置框架rpc通讯机制及RpcEnv基础设施-Spark商业环境实战
  • ZooKeeper应用——解决分布式系统单点故障
  • 扩展rocketMQ延迟等级
  • echarts花样作死的坑
  • 那些年让你迷惑的阻塞、非阻塞、异步、同步
  • Cloudopt-logger — Kotlin 实现的日志框架扩展
  • Linux日记本_04:阿里云ECS服务器(CentOS7)端口设置以及 MySQL数据库搭建
  • [js]- 两个对象的合并(Object.assign)
  • 火币交易细则
  • 阿里云服务器配置过程
  • redirectTo、navigateTo与switchTap区别
  • python3 猜数字小游戏2.0
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • angular2 简述
  • chrome扩展demo1-小时钟
  • Git 使用集
  • in typeof instanceof ===这些运算符有什么作用
  • IP路由与转发
  • React as a UI Runtime(五、列表)
  • 后端_MYSQL
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 入手阿里云新服务器的部署NODE
  • 三栏布局总结
  • 问题之ssh中Host key verification failed的解决
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 再谈express与koa的对比
  • 如何用纯 CSS 创作一个货车 loader
  • 正则表达式-基础知识Review
  • !!Dom4j 学习笔记
  • #include
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • (c语言)strcpy函数用法
  • (Note)C++中的继承方式
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (实战篇)如何缓存数据
  • (一)80c52学习之旅-起始篇
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • ..回顾17,展望18
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .gitignore文件_Git:.gitignore
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .Net Memory Profiler的使用举例
  • .NET面试题(二)
  • .net专家(张羿专栏)
  • @entity 不限字节长度的类型_一文读懂Redis常见对象类型的底层数据结构
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • [120_移动开发Android]008_android开发之Pull操作xml文件
  • [BZOJ 1040] 骑士