首页 > 其他分享 >寒假前半ACM训练总结

寒假前半ACM训练总结

时间:2025-01-19 15:43:42浏览次数:1  
标签:复杂度 个数 ACM 前半 算法 寒假 考虑 优化 DP

基础算法方面:

  • 充分认识到了二分、贪心、双指针等基础算法的重要性,在CF、ATC等中的题和ACM中的题(听说)大多都仅考次类基础算法但是需要运用熟练,在此前我一直忽视了此类算法的重要性并且也忽视了思维的提升,导致比赛有时甚至会在此类基础算法题中卡住

  • 以往也忽视了对于思考程序时间复杂度优化这一方面的内容,以往学算法都只是学到皮毛很少领悟到真正起到优化作用并且是否能够推广到普遍此类题目的精髓

  • 对于时间复杂度优化方面,通常是由从单独的点来考虑,变成从整体来考虑。
    例如给定n个数求任两个数异或和,如果从每个数单个考虑,那就只能在\(O(n^{2})\)复杂度内完成,但是如果从整体方面考虑,对于所有的数我们一起看,由于给的数在long long范围内,我们可以在二进制中从高到低位统计每一位当中,这n个数有多少个0多少个1,因为只有0^1才会产生1对答案产生贡献,这样复杂度就优化到\(O(nlogn)\)。或者也可以从空间换时间的角度考虑,例如求有多少区间的和是某一个数值,可以用桶来优化时间复杂度。

做题总结方面:

  • 对于题目中数据很大10^18级别概率(期望DP)通常记忆化搜索,因为题目中通常有除法的操作,而倒着推的话由于一个数的因数不会太多,所以复杂度是可以接受的。

  • 对于复杂度优化方面通常由从单独一个一个数考虑变为从整体考虑,或者空间换时间。如考虑n个数异或操作时,若从每个数单独考虑与其他n-1个数分别异或求和复杂度是O(n^2 ),但是利用异或的性质从高到低位统计每一位这n个数中0,1分别出现的情况来求和就是O(nlogn)。再如统计满足一定性质的一段数区间和有几个,可能可以用桶来优化时间复杂度。

  • 对于博弈论DP和期望DP通常采取刷表法,倒推的方式,原因是通常它们的结果是一定的但是起点是不同的。

  • 关于单调栈使用变熟练,发现单调栈貌似一些场景可以被笛卡尔树代替

  • 对于并查集的操作和维护更熟练

  • 对于贪心又练了一些但是感觉上认识依旧不足

  • DP方面,复习了各种背包问题。并着重看了概率期望DP但是依旧不能完全掌握此类问题

  • DAG上概率DP通过拓扑排序保证每个点概率被充分计算再去更新其他点(其实就是拓扑排序的排序方式决定的

  • 复习了数位DP,但是依旧不算熟练

  • 关于倍增思想,最初接触到是求Lca,而后是区间DP小部分题用倍增优化,再后图上倍增,当我们发现要求在一个图中走的步数达到10^18级别得考虑倍增

  • 关于随机化哈希,维护两个序列(都是1-N的数)多个区间中数的个数和出现次数是否都相等,可以用随机化哈希实现

  • 设计DP转移方程可以先不考虑复杂度,不怕多个维数来设计,而后再优化(不然不敢加维数只能对着题目干瞪着

标签:复杂度,个数,ACM,前半,算法,寒假,考虑,优化,DP
From: https://www.cnblogs.com/lwiwi/p/18679609

相关文章

  • 大二寒假读书看电影简记
    电影赌神I,赌神II视觉模态的大男主小说。发哥对这部剧的贡献不亚于魔兽霍华德对魔术队的防守体系的贡献。实在是不能仔细斟酌,仔细斟酌起来,这部剧就小儿科这个杀手不太冷相比于网文水平的上面两部作品,这部作品承载的内容就丰富了起来,可以切入的视角就多了起来。千人千面......
  • 寒假学习日记8
    今天主要是有关服务器查看自己系统和版本 .使用uname命令uname命令可以提供关于系统的基本信息。查看操作系统名称:uname-o查看操作系统的版本和内核版本:uname-a要查看服务器的架构(即处理器架构),你可以使用以下几种方法:.使用uname-m命令uname-m会显......
  • [BZOJ P2771] 天才ACM
    [BZOJP2771]天才ACM传送门朴素算法枚举终点\(r\),对区间\([l,r]\)排序求校验值\(sum\),比较\(sum\)和\(t\)$sum\let$ r++$sum>t$l=++r,ans++时间复杂度N2logN初步优化考虑校验值单调不下降,可枚举左端点l时二分右端点r,再对区间l~r求校验值,更新方法......
  • 【vjudge训练记录】大一寒假专项训练——字符串
    训练情况A题第十届中国大学生程序设计竞赛(济南)-(CCPC2024-Jinan)签到题我们取第一行第一个和后面的进行比较,如果不同的次数超过1次,就说明第一行第一个是不同的那个,如果不同的次数刚好为1次,比较的那个字符串是不同的那个。#include<bits/stdc++.h>#defineintlonglong#defi......
  • 还没有为孩子制定寒假计划的大朋友们可以看过来哟
    寒假,这个充满无限可能的假期,正是孩子们释放天性、探索世界、充实自我的最佳时机。为了让这个寒假变得既有趣又富有成效,我们精心策划了一系列寒假奇遇计划,旨在陪伴孩子们度过一个充满欢笑、学习与成长的假期。一、知识探险队:探索未知世界每日阅读挑战:设立每日阅读时间,鼓励孩子选......
  • 【ACM独立出版,南通大学主办-往届均已检索】第二届智慧教育与计算机技术国际学术会议(IE
      【会议亮点】ACM独立出版,EI、SCOPUS双检索首届ACM独立出版,会后4个月内完成EI、SCOPUS双检索教育与人工智能、计算机等研究方向相结合的主题均可投递由南通大学主办,教育科学学院参与会议,并做大力支持支持线上参会,线上做口头报告,线上做海报展示大会名称:第二届智慧教育......
  • 【vjudge训练记录】大一寒假专项训练——栈
    训练记录今天洛谷崩了,先不统计了A题栈的模板题,pop出栈并输出栈顶,top输出栈顶,记得输出前判断一下栈内非空#include<bits/stdc++.h>//#defineintlonglong#defineendl'\n'usingnamespacestd;stack<int>q;voidsolve(){strings;cin>>s;if(s=="pus......
  • 寒假训练日志
    1.12CF49ECodeForcesLinkDifficulty:2300Tag:区间DP#include<bits/stdc++.h>usingnamespacestd;constintN=60;strings1,s2;booldp1[N][N][30],dp2[N][N][30];intdp[N][N];map<int,vector<pair<int,int>>>mp;intn,len1,len2;in......
  • 寒假集训
    Day1前言:为什么今天右眼皮总跳……拜托一定要发生点好事啊作业链接今天的调试:方差:首先,\(update\)没\(return\)。其次,没看到“实数”。最后,推的式子是对的,但统计答案时出错了。怒调半小时(?)线段树合并wiki链接个人感觉与其说是“合并”,不如说是“重叠”顾名思义,......
  • 【西南科技大学计算机学院、智能计算与系统结构实验室主办 | ACM独立出版 | 往届均已
    ACM独立出版|往届均已成功检索,最快刊后1个月内实现EI检索征稿主题范围广:计算机网络安全、软件工程、信号处理、程序分析等领域主办单位:西南科技大学计算机学院、智能计算与系统结构实验室第五届计算机网络安全与软件工程国际学术会议(CNSSE2025)20255thInternational......