首页 > 其他分享 >DS 好题记录

DS 好题记录

时间:2023-08-12 09:00:46浏览次数:33  
标签:log 记录 复杂度 离线 好题 pmatrix 区间 mathcal DS

P6881 [JOI 2020 Final] 火事

题意转化:求 \(\sum_{i=l}^{r} \max_{j=i-t}^{i}\{a_j\}\)。

考虑离线,询问按 \(t\) 从小到大排一遍,思考什么时候 \(a_i\) 的值会改变。我们可以找到 \(a_i\) 前第一个比它大的值的位置 \(l\) 和后面第一个比它大的值的位置 \(r\)。那么当 \(t \ge (l-i)\) 时 \(a_l\) 会对 \([i,r-1]\) 的 \(a\) 会有一个按时间增加不断向后覆盖的贡献,而 \(t < r-l\) 时这个贡献便会停止往后覆盖。考虑用线段树维护贡献的加减,我们对于不同的覆盖情况分讨一下,最后容斥一下即可。

时间复杂度 \(\mathcal{O}(n\log n)\)。

CF283E Cow Tennis Tournament

傻逼题,赛事出题人把这道题放最后一道,赛时灵光一现这个做法时感觉不会这么简单,然后其实是对的。

就是容斥。你考虑当一个三元组不合法时一定会有一个点出了 \(2\) 条边,那么设每个点的度数为 \(d_i\),答案即为 \(\begin{pmatrix} n \\ 3 \end{pmatrix}-\sum\begin{pmatrix} d_i \\ 2 \end{pmatrix}\)。

然后考虑怎么去计算 \(d_i\),发现这就是个弱智东西,直接把操作离线差分下来再 \(1\) 到 \(n\) 扫描一下就行了。然后你的线段树要支持区间取反和全局求和,这是 TJOI 的一道题叫做开关。

时间复杂度 \(\mathcal{O}(n\log n)\)。

CF1635F Closest Pair

方便表述,下文设 \(\mathcal{f}(i,j)=(x_j-x_i)(w_j+w_i)\)。

考虑证明一个很启发式的结论:对于 \(l_i = \max_{j<i,w_j\leq w_i}\{j\}\) 与 \(r_i = \min_{j>i,w_j\leq w_i}\{j\}\),\(\min\{f(l_i,i),f(i,r_i)\}\) 为答案

证明:对于数对 \((i,j)\),其中 \(i<j\),我们对其做一个小分讨:

  • \(w_i\leq w_j\),可以发现,\(i=l_j\) 时 \(|x_i-x_j|\) 最小。但是如果 \(l_j\) 后面的点有 \(w_i\) 更小的怎么办?设其位置为 \(p\),明显 \(f(p,l_j)<f(l_j,i)\),所以这样取一定是最优的。

  • \(w_i \ge w_j\) 同上。

那么原问题转化为:有 \(2n\) 个区间,每个区间有权值,还有 \(q\) 个询问区间,要求询问区间包含区间的权值最小值。

一眼离线,把询问挂在右端点,用线段树或者树状数组维护左端点信息即可。

时间复杂度 \(\mathcal{O}(n\log n)\)。

标签:log,记录,复杂度,离线,好题,pmatrix,区间,mathcal,DS
From: https://www.cnblogs.com/kowenxrz/p/17624331.html

相关文章

  • #yyds干货盘点# LeetCode程序员面试金典:打家劫舍 II
    题目:你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。给定一个代表每个房屋存放金......
  • #yyds干货盘点# LeetCode程序员面试金典:两整数之和
    1.简述:给你两个整数 和 ,不使用 运算符  和  ,计算并返回两整数之和。ab+- 示例1:输入:a=1,b=2输出:3示例2:输入:a=2,b=3输出:52.代码实现:classSolution{publicintgetSum(inta,intb){while(b!=0){intcarry=(a&b)<<1;......
  • # yyds干货盘点 # 盘点一个dataframe读取csv文件失败的问题
    大家好,我是皮皮。一、前言前几天在Python钻石群【心田有垢生荒草】问了一个Pandas数据处理的问题,一起来看看吧。大佬们求教个方法 现在有个数据量很大的dataframe 要吐csv格式 但结果总是串行 加了encoding='utf-8'还是没解决 还有其他方法么?下图是他提供的图片:二、实现......
  • 多线程开发 使用Semaphore和BoundedSemaphore对象
    数据库mportthreadingimporttimedeffunc(semaphore:threading.Semaphore,num):#获得信号量,信号量-1semaphore.acquire()print(f"打印信号量:第{num}次")time.sleep(3)#释放信号量,信号量+1semaphore.release()if__name__=='__ma......
  • 记录--用css画扇形菜单
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助1、效果图用手机录屏再用小程序转换的gif,可能精度上有点欠缺。2、实现过程1、观察及思考开始编码前我们首先观察展开后的结构:两个四分之一的圆加三个圆形菜单项。文章名为用css画扇形,如上图所示没有任何Java......
  • wipefs 和 zcat 命令使用记录
    wipefs–a/dev/sdb以下是wipefs的一些常用用法:擦除整个设备:wipefs-a/dev/sda擦除设备的第一个分区:wipefs-p/dev/sda1擦除设备的所有分区:wipefs-a-p/dev/sda擦除设备的所有元数据:wipefs-a-M/dev/sda擦除设备的所有分区和元数据:wipefs-a-M-p/dev/......
  • Apache Nginx中记录自定义Header
    从Apache切到Nginx需要保持日志格式统一,以便兼容之前的数据统计脚本现在Apache的日志格式为:LogFormat"%h%t%m%U%q%>s%{HEAD}i%D"说明:%h:客户端IP地址%t:时间(标准英语格式)%m:请求的方法(GET,POST)%U:请求的URL路径,不包含查询字符串%q:查询字符串%>s:请求的最终状态%{HEAD}i:请......
  • kettle 调用ssl异常javax.net.ssl.SSLHandshakeException: No appropriate protocol (
    javax.net.ssl.SSLHandshakeException:Noappropriateprotocol(protocolisdisabledorciphersuitesareinappropriate  调用kettle发送邮件的时候本地没问题 服务器报异常 查看很多都是要改动 D:\java\jdk\jre\lib\security 下面的 java.security文件 ......
  • #yyds干货盘点#nginx中fastcgi_params文件及相应配置
    在ubuntu服务器安装完php7.4-fdm和nginx后,发现fastcgi_params没有生成,也可能是二次安装的关系。所以临时去网上找了个手工建上。特意在这里记录下,避免下次再遇到同样的问题。#脚本文件请求的路径,也就是说当访问127.0.0.1/index.php的时候,需要读取网站根目录下面的index.php文件,如......
  • FTData063468_000001升级脚本出错,错误信息:SQL 脚本: 18.000.000.0048 DATA_DSTR_EAP_M
    一、问题:cjt15.0版本升级到18.0提示SQL脚本:18.000.000.0048DATA_DSTR_EAP_Mix_NL-11001出错:已在列上绑定了DEFAULT023-08-1019:46:39开始升级....2023-08-1019:46:39正在校验系统信息,请稍候...2023-08-1019:46:39[(000001)****]:开始升级2023-08-1019:46:39[(......