首页 > 其他分享 >AGC做题记录

AGC做题记录

时间:2022-11-03 16:24:18浏览次数:78  
标签:这个 记录 AGC 做题 提交 考虑

AGC做题记录

从比较远古的题开始做起吧。

AGC001

C

经典题。

考虑直径中点,讨论长度奇偶性直接\(O(n^2)\)做就行。

提交记录

D

不是很难的构造题。

思考题目给出的条件,不难想到把等价关系转化为连边,那么序列合法等价于形成了一个连通块。

这时候考虑连通块的一些必要条件,就是边数大于等于\(n - 1\),可以推导出\(A\)中奇数不超过2个。这时需要大胆猜想这是有解的充要条件,直接构造答案。

我在做题时到这一步就没思路了,其实可以考虑一些比较弱的情况,每次只连出来一个点,也就是\(B\)刚好是\(A\)右移一位,不难发现这个构造是对的。考虑奇数怎么做,其实直接把奇数丢到首尾就行了因为这个时候两端不会连到另一个\(B\)的回文串内。

提交记录

E

典中典之组合意义。

很容易把这个东西变成\((0,0)\rightarrow(a_i+b_i+a_j+b_j) \iff (-a_i,-b_i) \rightarrow (a_j,b_j)\)的方案数,那么dp算就行了。

提交记录

F

非常有意思的思维题。

第一步就把我难住了,这个交换的条件显然非常散乱,难以找寻到其中的性质。题解给出了一种巧妙的思维方式:考虑将排列\(P\)视为置换,这个置换的逆。假设这个逆置换为\(Q\),那么\(P\)字典序最小等价于\(Q\)字典序最小,而我们可以对\(Q\)进行的操作就是当相邻两个数之差的绝对值大于等于\(K\)时,可以交换它们。

这个转化是大胆的,但它毫无疑问极大地简化了问题。

这个时候不难想到直接对\(Q\)进行冒泡排序,因为不能交换的数的相对顺序确定,所以这个贪心排序是正确的。我们就得到了一个\(O(n^2)\)的做法

既然想到了冒泡排序,那么不妨试着优化,对于和“排序”有关的一类题目,都可以考虑进行归并。

容易发现,右区间的\(j\)优于左区间的\(i\)当且仅当左区间中\(i\)的后缀最小值不小于\(Q_j+K\)。这个后缀最小值可以直接维护。复杂度\(O(n\log n)\)

相较于线段树优化拓扑排序,我认为这种思路比较自然也比较优秀。

提交记录

标签:这个,记录,AGC,做题,提交,考虑
From: https://www.cnblogs.com/DCH233/p/16854823.html

相关文章

  • 日常开发记录-粘性定位
    需求:随着页面高度变化,中间区域的头部固定,不随页面高度的变化而跟随滚动 解决方案:粘性定位,记得设置z-index属性。固定定位不可行,会随着页面高度的变化超出中间区域,不......
  • HttpClient 调用时的采坑记录及解决办法
    1、首先,https是颁发给域名的,如果采取ip加https访问的机制,会出现证书不安全的问题,直接使用HttpClient去连接会出现客户端无法信任服务器的问题。解决思想:如果我们去调用这......
  • HDFS集成Kerberos的一些问题记录
    参考的两个教程:https://blog.csdn.net/mnasd/article/details/126954062https://blog.csdn.net/weixin_47677170/article/details/125668673 安装hadoop的教程https:......
  • 编译yolov4 darknet遇到的错误记录
    1、从github上面下载了一份代码https://github.com/Sparkling-Water/yolo_darknet2、编译出现了类似这样的错误undefinedreferenceto`std::__cxx11::basic_string<char......
  • LeetCode刷题记录.Day4
    移除链表元素题目链接203.移除链表元素-力扣(LeetCode)classSolution{public:ListNode*removeElements(ListNode*head,intval){ListNode*varHe......
  • 007k8s诡异详细记录
    一、getpods的诡异现象记录#Init的状态的pod已经不是Running了,但是它恢复后pod的name不会变,而且RESTARTS的次数为0,注意下这个!!!root@xx-qq-bj:~#kubectl--kubeco......
  • 做题记录总览
    写在前面做过的题太多了,分成了好几个。为例方便查看,特建此目录。实时更新。DPPart1DSPart1数学Part1数数Part1贪心Part1DP优化Part1杂题Part1......
  • 常用代码记录
    目录常用方法js获取地址栏参数js实现复制功能根据数组对象某个属性的值筛选出符合要求的数组元素常用正则表达式常用样式字母、数字太长不换行问题元素最快居中对齐(垂直、......
  • 待学习内容记录
    目录待学习内容cross-storage已学习内容--待学习内容cross-storage已学习内容--......
  • 记录一下实现进度条的方法!(遥感程序设计)
     首先不得不先说到我们最爱的backgroundworker!虽然在抠破头皮也没想出来怎么把程序实际进度返回到进度条,但是在老师的指点下目前还是顺利的换了方法(bushi1、静态处理......