首页 > 其他分享 >1.14 CW 模拟赛 赛时记录

1.14 CW 模拟赛 赛时记录

时间:2025-01-14 14:55:35浏览次数:1  
标签:1.14 赛时 min max 矩阵 枚举 mathcal rm CW

前言

时间很短, 注意管理, 策略不变

读题

\(\rm{T1}\)

需要找性质, 可能不太会, 但是要冲一下

\(\rm{T2}\)

困难串串, 不知道能打多少

\(\rm{T3}\)

数位 \(\rm{dp}\) , 日了

\(\rm{T4}\)

蒸蒸日上!

困难

大概是前面的没法马上切就丢掉, 然后能拿的都拿, 数位 \(\rm{dp}\) 不擅长, 但是可以冲一下
不会一车 \(200+\) 吧

\(\rm{T1}\)

思路

发现三个点可以确定一个矩形, 形式化的来讲就是三个点必定可以确定 \(\max y, \min y, \max x, \min x\)

哦好像并不是这样的, 但是通过这个可以得出对于一个确定的矩阵, 会对多少个子集产生贡献, 标准就是 \(\max y, \min y, \max x, \min x\) 不变

怎么处理, 对于一个矩阵我们可以找到确定 \(\max y, \min y, \max x, \min x\) 的点, 然后钦定其中有一个不动, 就可以计算出这些点集的个数

问题转化为对于一个确定的矩阵, 会被不同子集算重多少次
这个可以二进制枚举角上的点是否保留, 然后其他的组合数算一下就出来了
这个的复杂度是 \(\mathcal{O} (n^3)\) 的, 考虑继续优化

你注意到 \(x_i, y_i\) 两两不同, 也就是说压下来是一个排列, 这个性质很重要, 考虑怎么用
首先是上面的矩阵算重次数, 显然可以直接计算了, 不需要枚举之类的, 因为确定 \(\max y, \min y, \max x, \min x\) 的点必定有且只有 \(1\) 个

更加方便考虑优化

进一步发现, 枚举矩阵可以做到 \(\mathcal{O} (n^2)\)

还要优化,
你发现枚举矩阵的本质就是找到一行一列, 计算

好吧做到 \(\mathcal{O} (n^2)\) 差不多, 时间不多了, 主要问题还是刚开考的时候浪费了一点去看昨天的题

完蛋了假了, 两个点不足以确定矩阵, 需要 \(\mathcal{O} (n^4)\) 的复杂度

也就是说还需要找到高效枚举矩阵的方法

实现

框架

首先记录每一行每一列对应的点, 然后跑一个两维前缀和计算矩阵点内有多少个点, 然后枚举行列进行计算
开头需要离散化一下, 不属于好实现的题

\(\rm{T2}\)

趋势了, 赶紧看下一题
不要死磕
\(\rm{T1}\) 思路大半是对的, 一会再继续看
算了不管了, 把后面的打好

思路

加快速度, 到时候 \(\rm{T1}\) 是需要打暴力对拍的, 还需要很多时间

直接看特殊性质, 暴力不会

你发现全是 A 的情况下, 一个 A 可以变出三个 A
就把这个 \(20 \ \rm{pts}\) 拿了跑路

\(\rm{T3}\)

\(\rm{T2}\) 作为不擅长的题目, 在时间紧张的情况下跳了没啥问题

思路

看着就很像数位 \(\rm{dp}\) , 怎么实现
最大问题是对于「出现次数最多」这个东西的统计

想了一会无果, 跳

\(\rm{T4}\)

思路

题意就不转化了, 非常清楚
看上去 \(1s\) 只能移动同一块积木

联通的定义即为, 从 \(\min l_i \to \max r_i\) , 每一个位置上都有线段

所以暴力就是直接枚举每一条线段最终的位置

总结

太菜了, 多练, 每日一练的形式保留下来

心态要放平, 接受自己不再能够按照自己的想法去考试, 做到自己的最好即可

策略选择还是不够保守, 但是根本在于不管通过 \(\rm{whk}\) 还是每日一练, 把自己的思维能力练上去

标签:1.14,赛时,min,max,矩阵,枚举,mathcal,rm,CW
From: https://www.cnblogs.com/YzaCsp/p/18670740

相关文章

  • AcWing算法周赛第6场 | 3735 构造完全图
    学习C++从娃娃抓起!记录下AcWing备赛学习过程中的题目,记录每一个瞬间。附上汇总贴:AcWing算法周赛|汇总【题目描述】给定一个由nnn个点和......
  • AcWing算法周赛第6场 | 3734 求和
    学习C++从娃娃抓起!记录下AcWing备赛学习过程中的题目,记录每一个瞬间。附上汇总贴:AcWing算法周赛|汇总【题目描述】用f(x)......
  • 扫雷v1.14版本
    更新:删除了雷数不对的bug#include<iostream>#include<cstdlib>#include<ctime>#include<windows.h>usingnamespacestd;intmain(){ srand(time(NULL)); inthp=3,zgls=0,hdls=0,inls=0; charez[10][10]={ '#','#','#&#......
  • 1.12 CW 模拟赛 T1. 括号序列
    思路根据赛时的检验,典型的动点问题的\(\rm{trick}\)并不能在这里使用,也就是说,分类讨论前缀+\(i\)+后缀前缀+\(i\)后缀+\(i\)是不可行的考虑括号串问题的常见做法,先将其赋值成\(1,-1\)之后进行处理你发现这种做法有枚举字段和的瓶颈,所以也不可行......
  • 1.12 CW 模拟赛 赛时记录
    看题不是哥们怎么感觉一堆原题但是都不会做没复习最悲惨的一次策略肯定还是暴力,没有什么看上去简单的题\(\rm{T1}\)思路侥幸心理找了一下没有啊,必须自己想合法串显然就是满足匹配的串考虑这种经典问题的常见转化:令(为\(1\),)为\(-1\),合法括号串仅当其任......
  • AcWing算法基础课打卡 | 790 数的三次方根
    学习C++从娃娃抓起!记录下AcWing刷过的题目,记录每一个瞬间。附上汇总贴:AcWing算法基础课打卡|汇总【题目描述】给定一个浮点数,求它的三次方根。【输入】共一行,包含一个浮点数。【输出】共一行,包含一个浮点数,表示问题的解。注意,结果保留位小数。【输入样例】1......
  • 1.9 CW 模拟赛 T2. array
    思路简单的考虑梦梦的决策点为\(k\)时,如何使最大子段和最大化容易想到以下的分类讨论完全在\([1,2k-2]\cup[2k+1,2n]\)中包含\(C_{2k-1},C_{2k}\)中的任意一个包含\(C_{2k-1},C_{2k}\)考试的时候想到了这里,问题在于如何高效的解决计算这\(3\)......
  • 1.9 CW 模拟赛 赛时记录
    前言策略不变,继续搞看题\(4\)神秘,开骗\(\rm{T1}\)思路先考虑对于一个确定的\(a\)怎么做发现一个数能否被删除与删除的顺序无关,本质上是因为\(j,l\)并不因为操作而改变考虑到一个数能被删除,仅当其在前后缀中都不为最大值,也就是说可以\(\mathcal{O}(n)\)......
  • AcWing算法基础课打卡 | 788 逆序对的数量
    学习C++从娃娃抓起!记录下AcWing刷过的题目,记录每一个瞬间。附上汇总贴:AcWing算法基础课打卡|汇总788逆序对的数量【题目描述】给定一个长度为nnn的整数数列,请你......
  • AcWing算法基础课打卡 | 789 数的范围
    学习C++从娃娃抓起!记录下AcWing刷过的题目,记录每一个瞬间。附上汇总贴:AcWing算法基础课打卡|汇总789数的范围【题目描述】给定一个按照升序排列的长度为nnn的整......