首页 > 其他分享 >雅礼国庆集训 day1 T1 养花

雅礼国庆集训 day1 T1 养花

时间:2024-10-07 17:11:37浏览次数:8  
标签:复杂度 sqrt day1 雅礼 区间 T1 递推 最大值

题面

题目下载

算法

考虑当 \(k\) 确定的时候如何求答案,
显然对于所有形如 \([ak, (a+1)k)\) 的值域区间, 最大值一定是最优的

似乎怎么都是 \(O(n^2)\) 的算法
观察到 \(a_i\) 的值域比较小, 所以考虑桶
显然对于一段区间 \([L, R]\)
我们可以推出其 \(mod k\) 的最大值

  • 方法
    首先用一个数组 \(f_i (\forall i \leq 10^5)\) 表示比 \(i\) 小的最大的数
    这里有一个 \(\rm{unbelievable}\) 的递推方法( \(O(N + n)\) )
    for (int i = l; i <= r; i++)
        f[a[i]] = a[i];
    for (int i = 1; i <= N; i++) // N 为值域
        f[i] = std::max(f[i], f[i - 1]);

接下来可以通过这一递推公式求出这段区间对 \(i\) 取余的最大值

\[g_i = \max (f_{i \times j - 1} \mod i), i \times j \leq N \]

计算是调和级数的复杂度

但是此时计算单个区间的时间复杂度仍然是 \(10^5\) 级别的, 不可能在乘以一个 \(m\)
考虑分块, 这样能在 \(O(m \sqrt{n} + n \sqrt{n} \log n)\) 的复杂度下草过去

代码

后补

总结

抽象套路, 伟大的递推

标签:复杂度,sqrt,day1,雅礼,区间,T1,递推,最大值
From: https://www.cnblogs.com/YzaCsp/p/18450267

相关文章

  • day1
    day1雷暴(storm)题目要求计算覆盖所有相同颜色格子的最小正方形的面积。#include<bits/stdc++.h>usingnamespacestd;intn,m,k;inta[1005][1005];structnode{ intx,y;}f[100005],g[100005];intmain(){ freopen("storm.in","r",stdin); freopen(......
  • qbltd7t1 更好的做法
    由于出题人是??,这里给出一个比std(暴力)更好的做法。首先需要知道std的愚蠢做法,直接暴力枚举后check,达到了\(O((n-m)^km^k)\),在原题能通过,但是对于某些会更强问题的同学很不公平,考虑加大数据范围。我的赛时做法是\(O(n^k)\)地枚举一个匹配点后\(O(n^{k-1})\)枚举其它维,对......
  • Day10-JavaDoc
    Day10-JavaDocJavaDoc介绍JavaDoc:javadoc命令是用来生成自己API文档的。javadoc是一个工具,它可以读取源代码中的文档注释,并将其转换为格式规范的API文档。javadoc通过解析文档注释中的特定标记,如@author、@version、@since、@param、@return、@throws等,来提取关键信......
  • LeetCode hot100-二叉树篇思路总结
    跌跌撞撞看代码随想录看leetcode官方题解,终于写完了hot100的二叉树部分。这是我第一次学习如何正式的用java去写一个二叉树首先在自己的编译器里定义一个TreeNode类,以便于后面刷题的时候复用publicclassTreeNode{intval;TreeNodeleft;TreeNoderight;......
  • Day10-域名
    Day10-域名域名是由一串用点分隔的字符组成的互联网上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位。例如“www.baidu.com”就是一个域名。它主要由几个部分组成:顶级域名(Top-levelDomain,TLD):如“.com”“.net”“.org”等,代表不同的域名类型或用途。......
  • Day10-包机制
    Day10-包机制包机制Java为更好地组织类而提供的机制,用于区别类名的命名空间。包相当于文件夹包语句的语法格式为:(定义包)packagepkg1[.pkg2[.pkg3...]];一般利用公司域名倒置作为包名。为了能够使用某一个包的成员,需要在Java程序中明确导入该包,使用“import”语句可完......
  • Arduino Nano 和 DHT11 实现 LabVIEW 温湿度采集
    ArduinoNano和DHT11实现LabVIEW温湿度采集ArduinoIDE安装如下库文件DHTsensorlibrarybyAdafruitDHT11温湿度传感器Data引脚与ArduinoNano开发板的D2引脚连接代码#include<DHT.h>#defineTemperature_COMMAND0x10//采集命令字#defineHumidity......
  • At_pakencamp_2023_day1_p sol
    题面给你两个序列\(A,B\),\(\forallu,v(u\not=v)\)之间边的权值为\(a_ua_v+b_ub_v\)。求最小生成树的边权和。原题目editorial朴素的想法考虑类似题目的做法,考虑每一次寻找最小的然后加入。发现这种思想和Boruvka比较相似。于是我们考虑Boruvka的方式来做。对现有的连......
  • 《博德之门3》ac1st16.dll怎么安装,ac1st16dll简单解决方法
    针对《博德之门3》中遇到的ac1st16.dll文件问题,以下是详细的安装和简单解决方法:安装方法手动下载并安装:访问可靠的DLL文件下载网站(如DLL-files.com),在搜索框中输入“ac1st16.dll”并搜索。下载与您的Windows版本(32位或64位)相匹配的ac1st16.dll文件。将下载的文件复制到游......
  • day11[Lagent 自定义你的 Agent 智能体]
    环境配置开发机选择30%A100,镜像选择为Cuda12.2-conda。首先来为Lagent配置一个可用的环境。LagentWebDemo使用使用Lagent的WebDemo来体验InternLM2.5-7B-Chat的智能体能力先使用LMDeploy部署InternLM2.5-7B-Chat,并启动一个APIServer然后,我们在另一个......