首页 > 其他分享 >ssy学校暑假集训游记

ssy学校暑假集训游记

时间:2024-07-24 16:42:50浏览次数:10  
标签:... ssy ed 个数 len 110 暑假 集训 逆序

7.24日 集训第二天


不要问为什么第二天才写,这不重要。

上午模拟赛,先开T1

订正......

T1

先引入逆序对,如果有$1$在$0$前面, 就算一组逆序对。

对于这个题,很容易可以猜想出最后的结果$000....0011..11$。
回看题目中所给的条件,无论是$10$,$100$,$110$还是$1010$,他翻转过去一定能减少逆序对的个数,但是$10$翻转能减少$1$个,剩下的均能减少$2$个。于是,我们充分发挥人类智慧,大胆猜测一个结论:

当字符串中剩余的逆序对个数是$\ge2$的,这个字符串一定存在$100,110,1010$中的至少一个。

如何证明这个东西呢?

我们假设这个序列还没有变成前面全是$0$,后面全是$1$的状态,那么就是这样:$0...0110..0111$,显而易见,一定会存在$110$这个东西,所以$1$和$1$不能挨在一起那么就是这样:$0...0101001..0111$,但是这样又出现了$100$,所以$0$和$0$也不能挨着,就变成了这样:
$0...0101010....01111$,那么这样又出现了$1010$,所以结论成立。

所以原问题就转化成了求原序列的逆序对个数,然后进行一个博弈,就是执行两个操作,一个是把逆序对个数$-2$,一个是$-1$,看谁先删完。

这就很简单了,我们知道“必胜点”这个东西,所以当逆序对个数是$3$的倍数时,那么后手必胜,否则先手必胜。


T2


先对这个问题进行一个分解,显而易见,我们运用一个贪心的思路:对于一组零件,我们肯定是拿的越多,分的这个组越长越好对吧!
那么根据合格值的定义,要快速求出合格值,首先想到的办法肯定是爆搜贪心。

结论:将 S排序,每次取到 S中的最大值和最小值让他们相乘,最后计算出来的结果即为 S的零件值,再跟$K$进行比较即可。

接下来讲讲做法:

$90pts: O(nlog^2n)$ 的倍增算法

首先我们命名一个起点为$start$变量,倍增长度为$len$变量,终点为$ed$变量,接下来只需要将题目的解决分为多个操作:

我们先命名一个起始点$start$和目前的长度$len$还有一个终点$ed$。

接着我们检查$[start,ed+len)$这个区间是否合法,如果合法,将$ed$加上$len$,然后$len$乘上$2$。否则将倍增距离缩短,也就是将$len$变化为$len/2$,继续检查区间,这里要注意一下的是,当$len/2$是等于$0$的,我们就要结束这个循环,跳出就好了。

标签:...,ssy,ed,个数,len,110,暑假,集训,逆序
From: https://www.cnblogs.com/grz0306/p/18321204

相关文章

  • 24暑假算法刷题 | Day20 | LeetCode 235. 二叉搜索树的最近公共祖先,701. 二叉搜索树中
    目录235.二叉搜索树的最近公共祖先题目描述题解701.二叉搜索树中的插入操作题目描述题解450.删除二叉搜索树中的节点题目描述题解235.二叉搜索树的最近公共祖先点此跳转题目链接题目描述给定一个二叉搜索树,找到该树中两个指定节点的最近公共祖先。百度......
  • 24暑假算法刷题 | Day21 | LeetCode 669. 修剪二叉搜索树,108. 将有序数组转换为二叉搜
    目录669.修剪二叉搜索树题目描述题解108.将有序数组转换为二叉搜索树题目描述题解538.把二叉搜索树转换为累加树题目描述题解669.修剪二叉搜索树点此跳转题目链接题目描述给你二叉搜索树的根节点root,同时给定最小边界low和最大边界high。通过修剪二叉......
  • 『模拟赛』暑假集训CSP提高模拟6
    RankA.花间叔祖签到题,但没切。一眼出思路找最大公因数,过了大样例发现同余的情况也合法,然后开始优化,成功从68pts到了88pts。考虑正解,首先答案不是一就是二。若答案是一,即所有数可在模某数\(x\)意义下同余。不妨将每个数化成\(a_i=k\timesx+d\)的形式,则若存在一个......
  • 2024暑假集训总结
    2024暑假集训总结知识点清单:树状数组拓展:(1)k维前缀和(2)树状数组+倍增没码过,小慌线段树:(1)线段树不仅仅是一个维护区间和、区间最值或者类似于方差那道题,维护区间的平方等等信息,它的深层是将区间拆分为\(O(logn)\)个子区间从而将修改与查询降为\(O(logn)\)级别,因此对于线......
  • 2024 暑假集训
    树状数组&线段树线段树合并,主席树等知识点是第一次接触。同时对扫描线能解决的问题有了些更好的认知。毕竟是之前学过的东西,还是比较好的。掌握程度:\(85\%^+\)离线分治算法具体是:线段树分治\(80\%^+\)就是个线段树上二分。CDQ分治基于时间的分治\(75\%^+\)基本......
  • [2024JZYZ暑期集训]知识点总结
    前言第三次暑期集训了,与前两次不同,这次没有前两次的激动了,所以也能够更深入地学习算法。闲话宿舍挺好,有空床能住。捡了三块钱,史上最灵异事件。R班好热闹。认识了几个郑州那边的大佬知识点Day1讲了几个基础数据结构(树状数,线段树),作业里面的题目很多之前都做过,就当复习了。......
  • 2024年pt市S组暑假集训游记
    记录而已,不必在意Day1上午第一天,一中的lzy老师把我们分配到一楼的机房,好,有沙发,有三个大空调,听说原来是一中的监控室。结果,我们去6楼等了好久,还是没有开课,然后我们就被叫去5楼听课了,火大。幸好听完课之后还是去一楼机房耍,开心。老师上课给我们复习了一些基础的东西,这......
  • 【java计算机毕设】在线教学平台MySQL springboot vue HTML maven小组设计项目源代码+
    目录1项目功能2项目介绍3项目地址1项目功能【java计算机毕设】在线教学平台MySQLspringbootvueHTMLmaven小组设计项目源代码+文档寒暑假作业 2项目介绍系统功能:在线教学平台包括管理员、用户、教师三种角色。管理员功能包括个人中心模块用于修改个人信息......
  • 暑假好题选讲
    \(TXX\)讲课。\(2024\7\23.\)\(T1.\)首先你可以考虑用\(dp.\)先记棋子脚下的位置为\(v\),动态规划方程:\(f_i=\max\{\dfrac{1}{2}(f_{i-1}+f_{i+1}),v_i\}\)利用这个方程,我们可以把他用\((i,f_i)\)的画在平面上。然后观察这个平面,发现\(i\)位置上面的答案也就是凸......
  • CTF集训赛
    CTF集训赛php命令执行涉及的知识点是通用符,执行/?c=system(“ls/”);最后的;不要忘?c=echosystem(‘catf*’);有的时候也可以code=system(‘ca\t/f星’)或者code=system(‘strings/f*’)code=system(‘ca"t/f*’)php命令执行pulsimportrequestsres=re......