首页 > 其他分享 >2024.10.9训练记录

2024.10.9训练记录

时间:2024-10-09 21:45:32浏览次数:10  
标签:pre 小于 2024.10 训练 记录 树状 数组 query 字典

下午 提高组模拟

省流:又被lyy吊打了

晚上 订正

A

神秘猜结论题,场上少猜了一点挂了 \(18\) 分,遗憾。
结论:\(ans \in [0, 3]\)
\(0/1\) 可以直接判。\(1\) 的情况就是存在一个前缀 \(a_{1, i}\) 满足出现的数是 \(1\) 到 \(i\)。
\(3\) 的情况仅当 \(a_1 = n\) 且 \(a_n = 1\)。场上就是少判了 \(a_1\) ,其实倒过来是一个道理。
剩下就是 \(2\)。

C

简单题。设一个颜色的点坐标是 \((X_i, Y_i)\)。
这个颜色的正方形的边长为 \(max(max X_i - min X_i, max Y_i - min Y_i)\)。

B 序列(sequence)

没场切/kk

题面变量有点反人性,设值域为 \(m\),数列长度为 \(n\)。
考虑容斥。对于一个 \(t\) 的方案数是所有 满足 \(B\) 字典序小于等于 \(A\) 的方案数 减去 不出现 \(t\) 且 \(B\) 字典序小于等于 \(A\) 的方案数。

先想字典序小怎么做,设 \(pre_i\) 是前 \(i\) 个数的答案,即 \(B_{1, i}\) 的字典序小于等于 \(A_{1, i}\)。
则当前 \(i-1\) 个数满足字典序小于时,第 \(i\) 个数可以任意放没填过的数,已经填完了 \([1, i - 1]\) 所以没填过的数有 \(m-(i-1)\) 种。
即 \(pre[i] += (pre[i - 1] - 1) * (m - (i - 1))\)。
前 \(i-1\) 个数刚好和 \(A\) 中相等时,第 \(i\) 个数需要小于等于 \(A_i\)。而此时已经填过的不能再填,可以用树状数组维护当前还能填几个数。
具体:树状数组中一开始将 \([1, m]\) 全赋为 \(1\),代表这些数还每填,做完 \(i\) 就 \(add(a[i], -1)\)。
当前小于等于 \(A_i\) 的未填过的数的数量就是 \(query(a[i])\)。
综上:\(pre[i] = (pre[i - 1] - 1) * (m - (i - 1)) + query(a[i])\)。
容易发现 \(pre\) 数组可以压成一个数。

然后暴力时枚举 \(t\),统计不出现 \(t\) 的方案数。大体和上面相等。
首先树状数组中一开始要把 \(t\) 排掉。
然后考虑,当 \(A_{1, i - 1}\) 中出现过 \(t\),此时的 \(pre[i - 1]\) 就代表了字典序小于 \(A\) 的方案数,而不是小于等于。
因为等于 \(A\) 会出现 \(t\),不满足钦定条件。
所以出现过 \(t\) 时,\(pre[i] = pre[i - 1] * (m - (i - 1) - 1)\),这里多减一个 \(1\) 是把 \(t\) 减掉。
未出现过 \(t\) 时与之前相同,也要多减一个 \(1\)。
这个暴力的复杂度是 \(O(nm \log m)\)。
考虑这个暴力怎么优化。
把每个 \(pre\) 弄成一个数,放进线段树中。
对于未在 \(A\) 中出现过的每个 \(t\),只需要的操作是 \(pre = (pre - 1) * (m - (i - 1)) + query(a[i])\)。
加号前面是全体减和全体乘。
注意到:\(query(a[i])\) 的值最多只有两种。
对于每一个 \(t\),\(query(a[i])\) 的变化只是因为树状数组中一开始将 \(t\) 除去了。
如果不除去的话:
对于\(\forall t \leq A_i\),它加上的是原本的 \(query(a[i]) - 1\)。
对于\(\forall t > A_i\),它加上的是原本的 \(query(a[i])\)。
于是将每次树状数组中删去 \(t\) 的操作变成:
线段树中区间 \([1, a[i]]\) 加 \(query(a[i]) - 1\),区间 \([a[i] + 1, m]\) 加 \(query(a[i])\)。

这样就成功用线段树优化掉了一个 \(n\),复杂度变成 \(O(n \log m)\),通过此题。

区间乘其实有点难写,考场只剩半个小时自认为是写不完,去打暴力了。
实际订正的时候写错了好几次,有几个地方比较模糊,被回旋镖了。
对于思维不佳的选手,线段树的基础操作应当非常熟练,需要反省。

D

dp,结论比较抽象,不太懂正确性先按下不表/kel。

标签:pre,小于,2024.10,训练,记录,树状,数组,query,字典
From: https://www.cnblogs.com/docxjun/p/18455221

相关文章

  • 【NVIDIA NIM 黑客松训练营】使用NVIDIA AI Workbench 创建一个在线代码生成器
    随着人工智能技术的不断进步,越来越多的工具和服务开始集成AI功能来提升用户体验。本教程将指导你如何使用PythonFlask框架结合NVIDIA提供的NIM服务,创建一个简单的在线代码生成器。用户可以通过一个直观的Web界面输入请求,系统将返回对应的Python代码。项目背景对于那些正......
  • VSCode配置Python(记录)
    python安装官网在线安装或者下载离线包(勾选添加path环境变量)python指定版本运行把对应版本的python.exe复制一下,粘贴改名加个对应版本,因为添加了环境变量的缘故所以可以直接在命令窗中运行运行测试对应项目创建虚拟环境(包管理)tips:当然了,也可以用anaconda管理,但是加载比较......
  • 2024.10.09 力扣刷题 盛水最多的容器
    题目:这边是参考了B站UP主的思路进行了解答,采用双下标访问的方式进行。如果要水最多的话,一定是高的那端找低的那端,然后算出面积。如果是低的那端找高的那端,那本身下限就在自己身上,所以不从低的端固定不变。附上代码:intmaxArea(std::vector<int>&height){ if(height.empty......
  • C#联合Visionpro编程学习记录(判断相机硬件是否掉线的方法)
    1,在实际使用过程中,Visionpro没有提供用于直接判断相机硬件是否依然在线的方法,有一个方法可以使用:1///<summary>2///使用获取相机时间戳计时器频率的方式来判断相机是否仍然在线,3///如果相机掉线获取相机TimeStampFrequency属性将报错,以此判断相机......
  • C#联合Visionpro编程学习记录(将指定颜色的十字线图形添加到CogRecordDisplay上)
    1///<summary>2///将指定颜色的十字线图形添加到CogRecordDisplay上3///</summary>4///<paramname="icogimage"></param>5///<returns></returns>6publicstaticstringAddCrossCurveRecord2CogRecordDisplay(I......
  • 2024.10.9 总结
    决定以后分开写,显的博客多。A:首先考虑对给定树计算权值,假设我们已经知道了一个权值最小的划分,那么可以通过调整得到新的划分使得权值不变,目的是简化虚树的形态。考虑该划分中任意一个集合形成的虚树,有两种情况:如果根节点\(r\)存在于任何一个最大独立集中,即\(f_{r,1}>f_{r,0}......
  • 自由学习记录(3)
    可以自己去看ugui的实现代码,如果以后有需要 CanvasGroup这个东西有点吊给Canvas里的各个面板的分组,不是多个canvas的意思添加之后,该对象的及子对象全部都会放到一个CanvasGroup,可以整体控制显隐整体控制是否可交互(所有按钮失活,这个也可以设置成等级限制的功能使用,66)......
  • Apache DolphinScheduler社区9月进展记录
    各位热爱ApacheDolphinScheduler的小伙伴们,社区9月月报更新啦!这里将记录ApacheDolphinScheduler社区每月的重要更新,欢迎关注!月度MergeStar感谢以下小伙伴上个月为ApacheDolphinScheduler做的精彩贡献(排名不分先后):@Mighten,@ChaoquanTao,@wangxj3,@Xuxiaotuan,@sd......
  • Apache SeaTunnel 9月份社区发展记录
    各位热爱SeaTunnel的小伙伴们,9月份社区月报来啦!这里将定期更新SeaTunnel社区每个月的重大进展,欢迎关注!月度MergeStars感谢以下小伙伴上个月为ApacheSeaTunnel做的精彩贡献(排名不分先后):@ZhangWeike2000,@wuchunfu,@chl-wxp,@hawk9821,@happyboy1024,@jiamin13579,@Cosmos......
  • IPv6详细记录
    一、地址格式书写方式:    使用“:”分隔,16进制表示,共有8组    地址总长为128bit,每一组16bit,也就是4个十六进制的数(四个二进制数表示一个十六进制数)编写格式:    可以省略每一组的前导0    如果一组所有位都为0可以化简为单个0,如果出现连......