首页 > 其他分享 >2023NOIP A层联测30 总结

2023NOIP A层联测30 总结

时间:2023-11-14 22:35:28浏览次数:40  
标签:log 30 T3 2023NOIP leq 联测 思路 T1 oplus

2023NOIP A层联测30 总结

题目

T1 草莓列车

\(n\leq 10^5,m\leq 10^7\)

赛时思路

一开始看错 \(m\) 数据范围,以为 \(O(m\log m)\) 可以过,后来发现问题以后,集中在考虑线段树之类的 \(\log\) 级别的算法维护序列,或者线段区间,一直没有想过 ST 表相关数据结构,于是最后只有 60。

赛后思路

有两种写法:

1.分块维护区间,\(O(1)\) 修改 \(O(\sqrt n)\) 查询,时间复杂度 \(O(n\sqrt n)\)。

2.考虑逆序 ST 表,每一位的答案时 \(ST[i][0]\),每次修改修改 \(ST[l][k]\) 和 \(ST[r-2^k+1][k]\)。最后用类似于 \(ST\) 表维护的方式向下更新,时间复杂度 \(O(n\log n)\)。

T2 草莓路径

有一张 \(n\) 个点 \(m\) 条边的无向联通图(可能存在重边、自环)。边上有权值 \(w\)。定义一条路径的草莓值为这条路径的所有边上的边权的异或和。

求最大的草莓值。

\(n,m\leq 10^5\),\(w\leq 10^{18}\)

赛时思路

没有考虑到树,只发现路中的路径经过一次最优,然后写暴力。

赛后思路

考虑建出一棵树,那么两个点间的路径可以由树上的路径异或若干个环上的路径得出。

把环上的路径丢进线性基,设线性基集合为 \(B\),树上点到根路径异或和集合为 \(A\),则答案为在 \(A\) 中选两个数,在 \(B\) 中选若干数,使答案最大即可。

有式子 \(\max(s_x\oplus s_y \oplus D)\)。

等价于 \(\max(\max(s_x\oplus D_x)\oplus\min(s_y\oplus D_y))\)。

其中 \(D_x\oplus D_y=D\)。

这样子使 \(\max(s_x\oplus D_x)\) 中前置 \(1\) 数量最多,使 \(\min(s_y\oplus D_y)\) 中前置 \(0\) 更多,于是有最大值。

T3 草莓城市

\(H,W \leq 10^9,k\leq 200\)。

赛时思路

先二分斜边长度。

考虑一个点对应 4 个直角三角形,这是一个 4-SAT 问题,拆分,将 4 个大直角三角形拆成 4 个小的直角三角形,这样有在左上右下选一个三角形,在右上左下选一个三角形,转换成了 2-SAT 问题,最后暴力枚举判断三角形是否相交即可(然而没想出来)。

赛后思路

所有点坐标乘以 2,可变为整数点,将坐标乘以 2,只考虑整数部分,然后暴力枚举三角形 3 边求交点即可。

时间复杂度 \(O(k^2\log V+k \log V)\),其中由于枚举线段,所以 \(k^2\log V\) 带有较大常数,约在 \(16\) 左右。

还在调……

T4 草莓之歌

\(n \leq 10^6\)

赛时思路

一开始看错题,后来及时红色部分一定要都在金色部分左边时,就不会了,后面暴力思路只有 \(O(n^n)\),最低档部分分也没有。

赛后思路

还没开始看……

赛时

一开始看错 T1,分配时间:T1:30,T2:50,T3:50,T4:30。

后来发现 T1 之严重错误后,先看了 T3,T3 很快想到正解,但一直苦于两条线段的相交的判断写不出来,后来接着看 T1。

已开始 1h30min。

T1 还是一直在想 \(\log\) 级别的常用算法维护,于是后面去看 T4 然后 T4 发现问题后暴力也写不出来。

跑完操准备先写 T2,T2 部分分写完以后写了 T1 的 60pts,后面剩 80min 准备写 T3,结果 T3 一直写不出来,中间的判断极其复杂,然后没调出来。

赛后

就 T1 60……

反思

1.T1 的思路没有打开,一直在平常经常用的维护算法上下功夫,反而忘记了许多更改或查询是 \(O(1)\) 的算法。

2.没有检查 T2,T2 的思路可能出现问题,但没有意识到。

3.T1 没写出了就有点慌张,导致后面的时间分配全部给了 T1 一道题,连最有把握的 T3 也没写出来。

1.要及时调整时间分配特别是有题目 FAKE 的情况,不要蛮干。

2.想题目的思路要发散,不要集中在一两个普通的算法。

3.数据结构都要多练,多熟悉一下,不然容易在赛场上想不出来。

计划

1.每周加入 Ynoi 的数据结构题。

标签:log,30,T3,2023NOIP,leq,联测,思路,T1,oplus
From: https://www.cnblogs.com/binbinbjl/p/17832755.html

相关文章

  • 2023NOIP A层联测31总结
    2023NOIPA层联测31总结\(T1\)暴力操作:给你一个长度为\(n\)的序列\(a\),你可以花费\(c_x\)使得\(a_i\)变为\([a_i/x]\),你总共有\(k\)元。为最终序列的中位数最小是多少。保证\(n\)为奇数。\(n,m\le5*10^5\)首先想到了二分一个答案,因为只要使得前\((n+1......
  • AT_abc230_f [ABC230F] Predilection 题解
    prelogue各位在比赛的时候一定要坚信自己的式子,然后去考虑自己的实现是不是挂了。本人在今天模拟赛的时候质疑自己的式子然后不看实现100->0。analysis考虑对这个给定数组进行前缀和,然后就将问题转化成为了求这个前缀和数组的子序列的个数。对于求子序列,我们很轻松可以写出......
  • 秦疆的Java课程笔记:30 基础 三元运算符及小结
    扩展赋值运算符:+=,-=,*=,/=publicclassDome1{publicstaticvoidmain(String[]args){inta=10;intb=20;a+=b;//相当于a=a+bSystem.out.println("a="+(a));intc=30;intd=15;......
  • 全球30米湿地数据产品(GWL_FCS30)
    简介:该数据集是第一个具有精细分类系统的全球30米湿地地图(GWL_FCS30),包括四个内陆湿地子类别(内陆沼泽、沼泽、泛滥平原和盐碱地)和三个沿海湿地子类(红树林、盐沼和潮坪)。该数据集通过结合2020年的LandsatSR数据与Sentinel-1数据,利用分层分类策略和局部自适应随机森林分类算法在谷歌......
  • 【洛谷 P1307】[NOIP2011 普及组] 数字反转 题解(字符串)
    [NOIP2011普及组]数字反转题目描述给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。输入格式一个整数。输出格式一个整数,表示反转后的新数。样例#1样例输入#1123样......
  • 2023NOIP A层联测30 总结
    2023NOIPA层联测30总结\(T1\)给定一个序列\(a\),有\(m\)次操作\(l,r,v\),表示将\([l,r]\)内的每个\(a_i\)变为\(\max(a_i,v)\)\(n\le10^5,m\le10^7\)看到\(n\le10^5,m\le10^6\),赶紧打一个\(O(m\log_2n)\)的线段树做法,在看到\(20pts\)的\(l......
  • 10.30
    MySQL的数据类型有大概可以分为5种,分别是整数类型、浮点数类型和定点数类型、日期和时间类型、字符串类型、二进制类型等。注意:整数类型和浮点数类型可以统称为数值数据类型。1)数值类型整数类型包括TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,浮点数类型包括FLOAT和DOUB......
  • 2023NOIP A层联测30 T1 草莓列车
    容易想到将询问离线下来,按\(v\)从大到小排序,这样后面的修改一定不会对前面的修改造成影响。然后可以用并查集把已修改过的点缩起来。注意到\(m\)会到\(2\times10^7\),应该使用基数排序,复杂度为\(\mathcalO(\frac{m\max{v_i}}{base}+m\alpha(n))\)。常数较大,卡卡常才能过......
  • 解决java中0.1+0.2=0.30000000000000004的问题
     前言在现实中我们都知道:0.1+0.2=0.3但是在程序中会出现这样的结果:0.1+0.2=0.30000000000000004原因对于0.1来说,其本质是1/10,那么若你用二进制表示它们,然后除的话,是这样的:1/1010,然而这一个是除不尽的,是无穷循环。 ===>0.000110011001100110011001100110011........
  • luoguP7302 [NOI1998] 免费的馅饼
    题目描述SERKOI最新推出了一种叫做“免费馅饼”的游戏:游戏在一个舞台上进行。舞台的宽度为ww格(从左到右依次用11到ww编号),游戏者占一格。开始时游戏者可以站在舞台的任意位置,手里拿着一个托盘。下图为天幕的高度为44格时某一个时刻游戏者接馅饼的情景。游戏开始后,从舞......