The Preliminary Contest for ICPC Asia Shanghai 2019
时间:2019-09-15
本文章向大家介绍The Preliminary Contest for ICPC Asia Shanghai 2019,主要包括The Preliminary Contest for ICPC Asia Shanghai 2019使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
B.Light bulbs(思维)
•题意
有 n 个灯泡,初始全部为关闭状态;
有 m 个操作,每次操作给出 [l,r],让你将区间 [l,r] 的灯泡反转。
问最终有多少灯泡是亮着的;
其中有 T 组数据,T ≤ 1000 , n ≤ 106 , m ≤ 1000;
•题解
刚开始想着差分,这样的话,O(n) 就可以解出这道题;
但是,题干中并没有说 $\sum_{1}^{T} n \le 10^8$,所以,很有可能有 1000 组数据,每组数据的 n = 106 的情况;
这样的话,O(n) 的做法就凉凉;
T 了几发后,换思路;
想到了扫描线,对于输入的 m 个 [l,r],离线处理,存到如下数据结构中:
1 struct Data 2 { 3 int x;///l or r 4 int f;///f=1:x为l , f=-1:x为r 5 bool operator < (const Data &obj) const 6 { 7 return x < obj.x; 8 } 9 }a[4*maxn];$a[++k]=\{l,1\}\ ,\ a[++k]=\{r,-1\}$
并额外存储如下信息:
$a[++k]=\{l-1,0\}\ ,\ a[++k]=\{r+1,0\}$
即用 f = 0 代表存入的是额外加入的信息;
首先按照 x 升序排列;
然后,求出所有不同的 x 对应的反转次数,最后统计一下答案即可;
原文地址:https://www.cnblogs.com/violet-acmer/p/11523777.html
- 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(2)
- 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(1)
- element-ui el-input只显示下划线
- 怎样去阅读源码,这篇文章值的你一读
- HTML5 Blob与ArrayBuffer、TypeArray和字符串String之间转换
- Mybatis 3 配置 Log4j
- 基于Three.js的360度全景--photo-sphere-viewer--简介
- MyBatis3-配置使用log4j输出日志
- nginx支持跨域访问
- nginx静态资源文件无法访问,403 forbidden错误
- vue.js如何在标签属性中插入变量参数
- SpringBoot解决ajax跨域问题
- WebBrowser(IE) 与 JS 相互调用
- HOSTS配置问题导致集群异常故障分析
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android 天气APP(二十三)增加灾害预警、优化主页面UI
- Android 天气APP(二十一)滑动改变UI、增加更多天气数据展示,最多未来15天天气预报
- Android 读取csv格式数据文件
- Android LitePal的简单使用
- Android RecyclerVIew列表使用 (编辑、单选、全选、删除、动画效果+附源码)
- Android TV 焦点控制
- Kotlin学习日志(四)函数
- Kotlin学习日志(三)控制语句
- Kotlin学习日志(一)TextView、Button、Toast的使用
- Kotlin学习日志(二)数据类型
- Toast提示工具类
- RadioGroup+ViewPager +Fragment 制作APP主界面底部导航和左右滑动
- MD5加密工具类
- Kotlin修炼指南(四)
- Android Studio 安装APK在虚拟机时报 Installation failed due to: 'null' 解决