首页 > 其他分享 >3.15pht做题笔记

3.15pht做题笔记

时间:2024-03-15 22:25:45浏览次数:34  
标签:xor min max 复杂度 枚举 3.15 异或 做题 pht

3.15pht做题笔记

C

考虑先枚举学生 \(j\) , 再枚举问题 \(x\) ,接着枚举该问题回答相同的同学 \(i\)

根据鸽巢原理,每个同学有效枚举的次数肯定不会超过 \(O(nk)\) , 所以总复杂度是 \(O(n^2k)\)

D

先想确定 \(k\) 之后怎么做,从 \(1\) 到 \(n\) 枚举 \(a_1\) 的位置,每次只会交换两组中的某一个元素,用一个数据结构维护最大最小值,此时复杂度为 \(O(nlogn)\) ,加上枚举 \(k\) 之后复杂度变成 \(O(200nlogn)\) ,无法通过。

但一波分析之后发现,\(k\) 其实只会取到 \(n\) 的素因子,证明:

\[\because S_{max}+3y\le4S_{max} 且 S_{min}+3x\ge 4S_{min}\\ \therefore \frac{S_{max}}{S_{min}}\le \frac{S_{max}+3y}{S_{min}+3x} \]

所以只用枚举素因子就好了,复杂度 \(O(7nlogn)\)

F

\(2\) 操作可以看作,把每个元素的下标 \(xor\) 上 \(2^k-1\),\(3\) 操作可以看作,把每个元素下 \(xor\) 上 \(2^k\)

那求和的过程中考虑线段树的过程,向左边递归的区间,在异或之后,会跑到右边,右边的会跑到左边,改一下对应区间即可

G

考虑 \(xor-segment-tree\) ,交换操作相当于给每个下标异或上 \(2^k\)

我们可以用大概类似于线段树预处理的方法,预处理出异或上每一个数的答案

向上合并的时候,对于左半边,直接正常合并\((L,V,R)\)即可

而对于右半边,其实就相当于交换左右两边,之后再合并

H

还是考虑 \(xor-segment-tree\),可以维护出线段树上每个节点的哈希值

这样就可以做到 \(O(logn)\) 的找出异或 \(x\) 和 \(y\) 的第一位不同的数,这样就可以比较大小

依次枚举即可

I

先考虑暴力 \(dp\) ,记 \(dp{l,r,0/1,x}\) 表示对于区间 \([l,r]\) ,现在是左/右,边上还剩下 \(x\) 个石头是否能赢

然后发现答案对于 \(x\) 是单调的,于是可以 \(dp_{l,r,0/1}\) 表示对于区间 \([l,r]\) ,左/右必胜,至少需要有多少个石子

那转移可以通过比较,左边赢右边和右边赢左边需要的步数,来转移

J

先转换一下题意,相当于枚举 \(i,j\) ,把 \(a_i\oplus a_j\)插入 \(i,j\) 两个位置的线性基,只要有一个能插入,就能使答案翻倍

这样就有一个 \(O(n^260)\) 的算法

我们发现插入 \(a_i\oplus a_j\) ,就相当于先插入 \(a_i\) 再判断 \(a_j\) 能否插入,于是我们可以先求出 \(a\) 的线性基,然后枚举 \(j\) ,接着只用枚举 \(a\) 线性基内的元素就可以整出全部的情况,这样的复杂度为 \(O(1800n)\)

标签:xor,min,max,复杂度,枚举,3.15,异或,做题,pht
From: https://www.cnblogs.com/hubingshan/p/18076365

相关文章

  • q1-投资理财-2024.3.15
    q1-投资理财-2024.3.15​ 兴趣使然,在20岁接触到了股票,虽然没怎么赚钱并且一直都在赔钱,不过在家没有别的盈利能力,股票和期货成为搞钱的内容,期货我想碰的是鸡蛋期货,一般都是12月可能有小幅度上涨,整体一直下跌到2月份,有时候234月都是下跌的,一直到5月份会到底然后上涨到7月8月份,有的......
  • 日记 2024.3.15:2024 年 syzx 春季训练 1
    日记2024.3.15:2024年syzx春季训练1A找出在\(1,2\)周围一圈的点,挑出最远点\(u,v\)(找不到说明\(d_{1,2}=1\)),判一下\(d_{u,v}\)与\(d_{u,2}\)的关系以区分\(\pm1\)。这样比较好看。B普通冒泡\(n(n-1)/2\)次,这题\(n^2\),说明每做一次操作可以浪费一次操作。......
  • 做题小计 ARC170E
    我觉得很强的题目。传送门:Luogu分析分析问题本质。根据大量推理,发现问题再描述这样一个东西:一开始有\(a,b\),一开始有\(p\)的概率使得\(a\)加一,\(1-p\)的概率使得\(b\)加一。进行\(n-1\)次操作,每次操作如下:有\(p\)的几率与上一次操作的数相同有\(1-p\)的......
  • 关于信息学奥赛中的一些做题思路
    观前须知Sugar_Cube的博客园主页背景介绍本文记录了笔者在刷题或比赛中运用到的一些做题思路可以适当参考正文LuoguP2048超级钢琴首先显然有\(\mathcal{O}(n^2)\)暴力枚举每个子段,然后选择其中前k大的那么可以发现有贪心策略:选择k次最大值那么考虑怎样求最大值想......
  • 做题笔记2024.03
    2024.03.12#1CapitalismCF1450E奇环显然无解有解就直接差分约束就行https://www.luogu.com.cn/record/150592177[2024.03.12#2LEGOndaryGrandmasterCF1615F]不是自己想的/kk看了题解,感觉都说这个转换是显然的,还是太菜考虑将所有偶数位的数先翻转一次,这样原来的操作......
  • 做题小计 arc172e
    传送门*2300牛逼打表题。这个式子很不可思议,让人无从下手。选择打表找规律。由于\(2\nmidX\)和\(5\nmidx\)这些数我们可以跳过通过打表前\(10000\)的数,我们发现似乎没有重复的。继续打表\(1000000\)也没有重复的。直接大胆猜想,\(10^9\)内的\(n^n\)是构成无冲......
  • 做题小计 arc170c
    *2000*dparc170c我觉得很妙的dp题目。Solution一眼下去,似乎所有\(1\)的位置是固定的,其余位置随便填,答案就是\(m^{count(1)}\)?这一步在\(m\gen\)的时候是对的。但是\(m<n\)的情况很不好搞。序列问题容易想到dp。看题目,考虑要记录什么值。发现\(mex\)很难搞......
  • 做题思路
    堆由开发人员申请和释放空间(容易内存泄露);栈由系统自动分配释放H5新增:语义化(header等);媒体(video等);canvas;表单控件(time,data等);存储(sessionStorage);websocket反转链表思路:把原链表分成三份:pre(原链表),cur·tmp(即将处理的链表cur.next=null),p(处理完的新链表);总结:原理挺简单的,但是要注......
  • 2024.3.9 - 3.15
    SatLGR-176(Div.2)A.区间和问题,一眼盯真:前缀和。B.bfs,顺便记一下转移方向。C.最小化最大值,二分答案,用点DS实时维护逆序对即可,笔者用了线段树。D.区间DP,预处理一下\(a_i^{a_j}\)的值,然后记\(f_{l,r,0/1}\)表示到达了\([l,r]\)区间,并且最后一步是取了头部/尾部到达该......
  • 做题思路
    前序遍历:根节点,左节点,右节点中序遍历:左节点,根节点,右节点后序遍历:左节点,右节点,根节点总结:名称是依据根节点位置命名的,左节点永远在右节点前面快速排序:base,right,left三个节点。base与right比较,如果right比base大,左移;反之,和left替换,left右移;base和left比较,比base大,和right替......