首页 > 编程语言 >腾飞营 day1(1) 基础算法

腾飞营 day1(1) 基础算法

时间:2024-02-26 11:34:19浏览次数:26  
标签:le 前缀 腾飞 二进制 复杂度 cdots day1 算法 id

讲师:王浩清。

P6600

考虑枚举 T 中心的位置。

对于中心点,找出最长的横向长度和纵向长度,即维护每个位置向左/向右/向下有多少连续的 1。

重要的一步转换:对于所有 \((h,w)\),提前建出一个 \(h\times w\) 的矩阵,若 \((h,w)=1\) 代表是一组合法的,否则不合法。

对于上界的限制,可以转换为求子矩阵和,前缀和即可。

时间复杂度 \(O(nm)\)。

有两个长度为 \(n\) 的 \(a\) 和 \(b\),一次操作可以 \(a_{i-1}\leftarrow a_{i-1}+a_i\),\(a_i\leftarrow -a_i\),\(a_{i+1}\leftarrow a_{i+1}+a_i\)。问是否可以令 \(a=b\)。

一种比较经典的 trick,令 \(S\) 代表前缀和,可以发现一次操作本质上为交换 \(S_{i-1}\) 和 \(S_i\) 的值。差分、前缀异或也可以利用这个 trick。

快速判断两个序列是否相同:排序一下看对应位置是否相等。

NOIP2021 方差 第一步就是交换方差

要对这种式子保持敏感。

高维前缀和

用 \(k\) 元组 \((id_1,id_2,\cdots,id_k)\) 表示下标。\(0\le id_i\le m_i\),求解 \(\forall i,id_i\le q_i\) 的权值和。

考虑一维到二维本质上是容斥,也可以对 \(k\) 维容斥,但复杂度下界为 \(\prod m_i \times 2^k\)。

考虑 dp,令 \(f_{i,(j_1,j_2,\cdots,j_k)}\) 代表在 \(j\) 状态下,前 \(i\) 位全部不大于 \(j_i\),后 \(k-i\) 位全部等于 \(j_i\) 的权值和。

转移没听懂,\(f_{i,(j_1,j_2,\cdots,j_k)}=f_{i,(j_1,j_2,\cdots,j_i-1,\cdots,j_k)}+w_{j_1,j_2,\cdots,j_k}\)。

\(f_{i,(j_1,j_2,\cdots,0,\cdots,j_k)}=f_{i-1,(j_1,j_2,\cdots,0,\cdots,j_k)}\)。

时间复杂度 \(k\times \prod m_i\)。

总之类似一个 floyd 之类的东西。

最常见的是 \(m_i=1\),子集求和。

CF1208F

二进制确定最大的 trick:从高位向低位枚举,一一确定。

定义广义上的二进制集合的属于关系为:

  • 若 \(A\subset B\),则 \(\forall i,A_i\le B_i\)。

考虑已经确定好了前 \(i\) 位,答案为 \(x\),则要判断 \(x\cup{\text{第 i+1 位为 1 的二进制集合}}\subset d_i|(d_j&d_k)\) 是否成立。

即给出一个二进制,看是否存在 \(i<j<k\) 满足关系。

对于 或 运算,可以看作 \(d_i\) 占了目标二进制中的某些 1,所以枚举这些 1;\(d_j&d_k\) 占了 \(x^I\) 中的 1。

维护 \(S1_{j_1,\cdots,j_k}\) 代表满足 \((j_1,\cdots,j_k)\subset x\) 中下标最小的 x,\(S2_{\cdots}\) 代表满足 …… 中下标最大的 x,\(S3_{\cdots}\) …… 下标次大的 x。

判断 \(S1\) 和 \(S3\) 的大小关系即可。

时间复杂度 \(O(V\log V)\),具体复杂度分析可以借鉴子集求和,笔者博客园里有。

半在线高维前缀和

显然听不懂。

国王游戏

博客园里有。

皇后游戏

贪心。

发现序列递增,要最小化最后一个数。

然后 sb 推式子。

发现一个没有可传递性的东西。

然后听不懂。

基础算法太难了。

去看数学了。

标签:le,前缀,腾飞,二进制,复杂度,cdots,day1,算法,id
From: https://www.cnblogs.com/BYR-KKK/p/18033939

相关文章

  • Chao1算法
    Chao1算法是一种用于估计生物多样性的方法,特别是在微生物群落中。让我为您解释一下其计算原理。准备:在理解Chao1指数之前,我们需要理清两个概念:Singletons:仅包含一条read的OTU(操作分类单元)。Doubletons:仅包含两条reads的OTU。想象一个放满各种各样玩具模型的大水池。我们......
  • 2024牛客寒假算法基础集训营6 K 错综的统一 题解
    Question2024牛客寒假算法基础集训营6K错综的统一一个矩阵仅由"r",“e”,“d”组成一个矩阵区域是美丽的,当且仅当:在矩形区域内,任意横向或纵向取一个长度大于\(1\)的连续字串是,该字符串都不是回文的现在有\(Q\)次询问,每次给定一个矩阵,问最少修改多少字符(字符只能修改"r"......
  • 基于yolov2深度学习网络的车辆检测算法matlab仿真,包括白天场景和夜晚场景
    1.算法运行效果图预览  2.算法运行软件版本MATLAB2022a 3.算法理论概述     基于YOLOv2深度学习网络的车辆检测是一种高效的目标检测算法,广泛应用于交通监控、自动驾驶等领域。YOLOv2是YouOnlyLookOnce(YOLO)系列算法的第二代,相较于第一代在速度和准确......
  • 基于局部信息提取的人脸标志检测算法matlab仿真
    1.算法运行效果图预览 2.算法运行软件版本matlab2022a 3.算法理论概述       基于局部信息提取的人脸标志检测算法是计算机视觉和图像处理领域的重要研究方向。该算法旨在从人脸图像中准确地检测和定位出一系列关键的特征点,这些特征点通常被称为人脸标志点。人脸......
  • 经典算法题目-动态规划
    动态规划动归五部曲一、确定dp数组以及下标的含义二、确定递推公式三、dp数组进行初始化四、确定遍历顺序五、举例推导dp数组746.使用最小花费爬楼梯解决思路定义dp[i]为爬到第i个台阶的最低花费递推公式。因为每一次能爬一步或两步,dp[i]为前面的两格走两步过来或......
  • 文心一言 VS 讯飞星火 VS chatgpt (201)-- 算法导论15.2 6题
    六、用go语言,证明:对n个元素的表达式进行完全括号化,恰好需要n-1对括号。文心一言,代码正常运行:在Go语言中,证明对n个元素的表达式进行完全括号化恰好需要n-1对括号,可以通过数学归纳法和递归思考来实现。首先,我们可以明确一个基本的观察:一个单独的元素不需要括号。将两个元素......
  • 图论算法汇总
    图论算法在信息学竞赛中有着非常广泛的应用,也频繁在考试与比赛中作为重要的考察知识.本文汇总并分类了信息学竞赛中的图论算法.1生成树与最短路1.1Prim算法Prim算法可以求出一张图的最小生成树,时间复杂度为\(\mathcal{O}((|V|+|E|)\log|V|)\).memset(dis,0x3f,sizeo......
  • Python数据结构与算法05——二分查找
    二分查找——递归版:defbinarySearch(aimlist,item):#获取列表的长度n=len(aimlist)#如果列表非空ifn>0:#计算中间索引mid=n//2#如果中间元素是目标元素,则找到了ifaimlist[mid]==item:......
  • 【国产化】禁止使用不安全的密码算法:DES、RC2,RSA(1024位及以下),MD5,SHA1
    一、引言随着互联网的普及和技术的发展,网络安全问题日益严重。密码算法作为网络安全的基石,其安全性直接关系到用户数据的安全。一些不安全的密码算法不断被曝光,给用户带来了极大的安全隐患。二、不安全的密码算法1.DESDES(DataEncryptionStandard)是一种对称加密算法,自1977年......
  • C++U6-05 - 动态规划算法入门
    目标:动态规划     兔子数列的每一项都是前两项之和,公式为f[n]=f[n−1]+f[n−2]。#include<bits/stdc++.h>usingnamespacestd;intmain(){intf[105],n;f[1]=1;f[2]=1;cin>>n;for(inti=3;i<=n;i++){......