【4.5】

2024-04-05 20:20
文章标签 4.5

本文主要是介绍【4.5】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

多重映射

典题,多次整体修改,把所有的 a i = x a_i=x ai=x 改成 a i = y a_i=y ai=y 。时间逆序。

朴素区间 DP 时间是 O ( n 3 ) O(n^3) O(n3) 的,考虑如何枚举以达到优化。

优化思路类似于【智乃想考一道完全背包】。

外向树

较好的题。易得结论:每次将 [ q l , q r ] [ql, qr] [ql,qr] 规定为特殊点,问 [ q l , q r ] [ql, qr] [ql,qr] 中有多少个点的子树里没有特殊点。

分为两个子问题:

  1. 求得每个点 i i i 的子树内大于 i i i 的最小编号和小于 i i i 的最大编号,组成区间 s i s_i si
  2. [ q l , q r ] [ql, qr] [ql,qr] 内有多少个 i ∈ [ q l , q r ] i\in[ql, qr] i[ql,qr] 满足 [ q l , q r ] ⊂ s i [ql, qr]\subset s_i [ql,qr]si

对于一(不完全):

  1. 启发式合并, O ( n log ⁡ 2 n ) O(n\log^2 n) O(nlog2n)
  2. dfs 序上主席树区间查询, O ( n log ⁡ n ) O(n\log n) O(nlogn)
  3. max 线段树单点修改区间查询。从小到大枚举编号 i i i ,使得前缀 [ 1 , i ) [1, i) [1,i) 的点在dfs序上添加到线段树内,并区间查询最大值。时间复杂度 O ( n log ⁡ n ) O(n\log n) O(nlogn)

对于二(不完全):

对每个查询区间,问有多少个节点区间满足 u l ≤ q l ≤ u ≤ q r ≤ u r ul\leq ql\leq u\leq qr\leq ur ulqluqrur

  1. cdq 分治,转化为离线三维偏序问题,时间复杂度 O ( n log ⁡ 2 n ) O(n\log^2 n) O(nlog2n)
  2. 容斥,等于 ∣ u l ≤ q l ≤ q r ≤ u r ∣ − ∣ u l ≤ u ≤ q l ∣ − ∣ q r ≤ u ≤ u r ∣ |ul\leq ql \leq qr\leq ur|-|ul\leq u\leq ql|-|qr\leq u\leq ur| ulqlqruruluqlqruur ,二维数点(二位偏序)解决,时间复杂度 O ( n log ⁡ n ) O(n\log n) O(nlogn)

1+3解法:

AC代码:https://ac.nowcoder.com/acm/contest/view-submission?submissionId=68612445

小红的元素交换

不考虑元素限制,相当于置换环上的交换。对于一个环 l l l ,选择两个点进行交换(等价于数组上对应位置的元素交换),则拆分为两个环 l 1 , l 2 ( l 1 + l 2 = l ) l1, l2(l1+l2=l) l1,l2(l1+l2=l) 。环长和不变,但是环数变多。

对于此题,相当于只能 01 元素才能交换。对于 01 环可以单独解决,对于 0 环和 1 环可以配对解决。

AC代码:https://ac.nowcoder.com/acm/contest/view-submission?submissionId=68610245

小红的数组操作

此题关键是末端铺平,并利用 栈大小每次最多增大 1 来保证时间复杂度的线性。

题解:kjhhjki的博客

AC代码:https://ac.nowcoder.com/acm/contest/view-submission?submissionId=68618210

小苯的逆序对

这题的 trick 也比较典型:容斥原理求最大公约数为 k 的数对个数

大致思路就是,定义 b i b_i bi 表示 i i i 的倍数,对于 i i i 的倍数两两配对进行 g c d gcd gcd 运算的结果一定还是 i i i 的倍数。定义 f i f_i fi 表示 g c d ( a x , a y ) = i gcd(a_x, a_y)=i gcd(ax,ay)=i 的对数,可以知道 ∑ k = 1 i × k ≤ n f k × i = C b i 2 \sum_{k=1}^{i\times k \leq n} f_{k\times i}=C_{b_i}^2 k=1i×knfk×i=Cbi2 。容斥一下即可。

类似的题目:D. Counting Rhyme

小苯的逆序对

AC代码:https://ac.nowcoder.com/acm/contest/view-submission?submissionId=68619463

这篇关于【4.5】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/878061

相关文章

finalshell 4.5.x在m1mac闪退

使用过程中会出现突然闪退,尤其在定位生产打开一堆窗口的情况下,绝绝子 闪退崩溃日志: Thread 116 Crashed:: Java: pool-4-thread-280 libsystem_kernel.dylib 0x18e926600 __pthread_kill + 81 libsystem_pthread.dylib

.netframework 4.5.1安装成功,单在vs目标框架中找不到

安装好vs2012后默认的目标框架是.netframework 4.5, 现在想安装4.5.1的,已经提示安装成功,并且通过aspnet_regiis.exe注册过了, 通过aspnet_regiis.exe -lv 显示当前版本确实是4.5.1,但是在vs2012中的目标框架就是不显示4.5.1,打开4.5.1创建的程序依然提示... 先在控制面板 程序卸载 那里找到Net farmew

关于 未能加载文件或程序集“Newtonsoft.Json, Version=4.5.0.0, 错误的解决方案

经过自己一天的研究到底为什么,还有结合网上的一些大神的解决方案和了解,归结出几点 第一,如果你的引用是不存在的(即使你引用的是你需要的,新的)vs自动会自动找到旧的版本,因为bin里面没有,你先检查bin目录有没有! 第二,web.config配置的版本号跟实际想要版本号对不对,web.config配置的引用要和你引用的版本对应,两个的版本号应该与你程序需要的这个版本一致,配置如下:

Ubuntu 20.04 源码编译安装OpenCV 4.5.0

源码安装 OpenCV 4.5 官方文档: OpenCV: Install OpenCV-Python in Ubuntu 1. 安装编译依赖 sudo apt install build-essential cmake git pkg-config libgtk-3-dev \ libavcodec-dev libavformat-dev libswscale-dev libv4l

Xcode 4.5平台上设置应用本地化, Ios 本地化,多语言

1. 给项目增加语言支持: 打开项目的“Info“属性编辑界面时,我们可以看到”localizations“一栏,如下图所示,这就是设置项目本地化支持语言的地方,在这里我们可以加入简体中文(Chinese(zh-Hans))、繁体中文(Chinese(zh-Hant))等语种的支持。   2. 应用程序名 一个Xcode项目可以建立多个target,每个target代表一

【安装教程】Linux RocketMQ 4.5.1安装及问题总结

【引言】 前段时间在项目中添加了对接RocketMQ4.5.1版本的客户端代码,服务端不是自己搭建的,所以自己在虚拟机上试验了一把,过程中遇到不少问题,写篇博客记录一下。 【环境】 Java版本:java version “1.8.0_162”Maven版本:Apache Maven 3.5.0RocketMQ版本:rocketmq-rocketmq-all-4.5.1 【步骤】 下载压

【C++ Primer Plus习题】4.5

问题: 解答: #include <iostream>using namespace std;typedef struct _CandyBar{string brand;float weight;int calorie;}CandyBar;int main(){CandyBar snack = { "德芙",2.1,20};cout << "品牌:" << snack.bra

vue-cli 4.5.6项目中 使用Element-UI

一.使用 vue create projectname 命令,创建好项目之后,使用vs-code打开 ”main.js“ 文件 添加如下代码: import ElementUI from 'element-ui';import 'element-ui/lib/theme-chalk/index.css';Vue.use(ElementUI); 添加完成 如下图所示: 二.在项目中安装 “

帮招3C大佬机器视觉工程师,工作地:上海嘉定,月薪3.5W-4.5W,Halcon独立开发,带15人左右团队,考虑无管理经验者

1.负责自动化项目工控机和视觉部件的选型,功能验证、方案验证、技术问题分析,程序框架的搭建; 2.负责自动化项目的软件设计,软件调试,软件优化,软件资料归档,客户现场培训等; 3.负责自动化项目的样机调试,协助量产项目设备后期问题分析,跟进解决以及现场问题的范反馈解决; 4.对公司项目中视觉部分的项目进行主导,对人工智能、图像处理算法有所了解,包括方案可行性测试和方案编写,独自完成公司所用视觉项目

VS2015 .Net 4.5 MVC 下简单使用WebSocket

前言:     适合新手,不太理解WebSocket,本文简述在VS2015下创建WebSocket程序和运行环境搭建.     对于我来说,WebSocket的主要作用是服务器推送信息给客户端,说白了就是客户端能实时收到通知 步骤:     首先配置环境     在 控制面板 里 打开 程序和功能     打开 启用或关闭Windows功能 ,钩选 WebSocket协议