首页 > 其他分享 >2023.6.8(THUR.) 练习赛总结

2023.6.8(THUR.) 练习赛总结

时间:2024-01-22 22:44:22浏览次数:27  
标签:练习赛 赛制 题解 复杂度 THUR 构造 这道题 2023.6 dp

链接

T2

绝对值最小值,可以把原式化为两个只有一个绝对值的式子,set 维护即可。

T4

dp 用记忆化搜索加 unordered_map 实现的,要经过一些处理保证均摊单次转移时间复杂度是 \(O(1)\) 的。

平时要注意计算时间复杂度要从最大的方面考虑,dp 时间复杂度是状态数量乘单次转移时间,考虑一下极端情况。实际上,这道题可以用滚动数组直接循环处理的。

T3

aoliao 大佬的题解

普通的次方求和套路。

T5

最长上升子序列。可以看到,最优解一定是用每一段的一个后缀拼接成的。设 \(f_i\) 表示以 \(r_i\) 为末尾的最长上升子序列长度。则转移为:\(f_i=\max_{j=1}^{i-1}\{[r_j<l_i](f_j+r_i-l_i+1),[l_i\leq r_j < r_i]((f_j-r_j)+r_i)\}\),前一种情况可以用树状 数组维护,后一种情况看似是区间最大值,实际上 \(r_j\ge l_j\) 是不影响结果的,所以可以用树状数组维护后缀最大值。

这道题的处理启发如果是区间的限制,可以思考下是不是两边的限制都是需要的,如果不是能可以有更简单的维护方法。

T6

题解

如果在 OI 赛制遇到这种大分讨,尽量想到所有情况吧。同时 OI 赛制中某些数据点的特殊性质可能会提示你有哪些特殊情况。

T1

很明显,把这道题放在第一位是有原因的。

构造题。首先可以根据回文的性质推出 \(k\) 的问题是和 \(k \mod 2n\) 以及 \(2n - k\) 的问题是一样的,就能直接构造了。

构造题的方法有很多种,其中一种方法是分为或化为简单问题,这个是构造题的第一步,然后才开始高级的东西。

标签:练习赛,赛制,题解,复杂度,THUR,构造,这道题,2023.6,dp
From: https://www.cnblogs.com/recollect-the-past/p/17981266

相关文章

  • 牛客练习赛118
    A.HardKMPProblem#include<bits/stdc++.h>usingnamespacestd;constintN=30;intcnt1[N],cnt2[N];strings,t;voidsolve(){memset(cnt1,0,sizeofcnt1);memset(cnt2,0,sizeofcnt2);cin>>s>>t;for(inti=0;s[i];......
  • 231110练习赛总结
    231110练习赛总结T1Alchemy几点反思:对最大不敏感,确定了题目涉及\(DAG\)之后只知道盲目用\(topsort\)处理,而没有想到二分,积累经验。想复杂了,其实根本不用\(topsort\),因为限制了边的起点一定小于终点,且制造每个金属只有一种方案,也就是说所有指向该点的边同属于一种......
  • 牛客练习赛117 C&D
    LinkC分类讨论贪心显然的,正面考虑怎么拼团会很麻烦,所以我们从另一个视角考虑,求出可能的最大团数,然后看一看怎么踢人能够使落单的最少。当K为偶数的时候,显然最大团数就是\((n+m*2)/k\),而当K为奇数的时候,显然男生抱团需要至少一个男生,女生抱团也需要至少一个男生,最大团数就是\(m......
  • 牛客练习赛 115 记录
    牛客练习赛115赛时AC题目A.Mountainsequence点击查看代码/*1.根据山峰数列的定义,用排列组合知识去计算即可。*/#include<bits/stdc++.h>#definelllonglongusingnamespacestd;constintmaxn=1e5+5;intt,n;inta[maxn];llans;constintMOD=998244353;......
  • 牛客练习赛114
    B题是纯数学期望推导,用到错位相减,注意数学式子推导过程中一些常数不要丢掉,由于式子其中一部分非常复杂导致计算出来后忘掉最初式子。c题待补D题是贪心,需要找到最优策略。策略是倒着推并且遇到当前数出现次数比他的出现次数多时就停下。不停下会导致多出现的呢个数没有数列带它走......
  • 【树状数组】牛客练习赛52 B.Galahad
    【树状数组】牛客练习赛52B.Galahad题目链接:https://ac.nowcoder.com/acm/contest/1084/B题意多组询问,计算区间和,但相同的数只能被计算一次。题解离线处理询问,按右端点排序。对于相同的数字,我们只能选一个加入到区间和中,我们是枚举右端点,所以选择最靠近右端点左边的数字最......
  • 牛客练习赛114 D题题解
    比赛编号太臭了题目链接对一第一组数据,我们形象化的得到下图:如何拆解使其变成一个“顺子”呢,我们像这样:贪心的从后往前取,对于取数列时的终点也就是枚举的起点如果不为0,就向前一直取,如果取到一个数\(x\)发现这个数的个数\(num_x\)是大于\(num_{x-1}\)的,就停止,最后看拆......
  • [解题报告] 2023.8.2 dp专题练习赛
    比赛链接:Link[团队私有]T1:https://www.cnblogs.com/SXqwq/p/17600671.htmlT2:https://www.cnblogs.com/SXqwq/p/17601007.htmlT3:完全背包板子T4:https://www.cnblogs.com/SXqwq/p/17601622.html......
  • 牛客练习赛113 D 小红的数组操作(hard version)
    题目要求求出最小的总代价使得平均数为整数,转换式子可得实际就是求出a,b使得(a*x-b*y+sum)%n==0且a*p+b*q要最小,平均值的为sum/n,因此对sum进行操作使其成为n的倍数即可(a*x-b*y+sum)%n==0=>((a*x+sum)%n-b*y%n)%n==0因为(a*x+sum)%n<n,b*y%n<n,因此要想二者差求余数为0一定为(......
  • 牛客练习赛 112 B~C题题解
    卡B题了,难受B.qsggandSubarrayB-qsggandSubarray_牛客练习赛112(nowcoder.com)题意给定一个长为n的序列,求有多少个子区间的按位与和为0。思路要想按位与之和为0,那么对于区间的所有数,每个二进制位都要有一个0。设f[i]表示二进制位i的最右边一个0出现的位置,枚举序列的每......