首页 > 其他分享 >2024牛客多校7&8

2024牛客多校7&8

时间:2024-08-13 23:28:11浏览次数:8  
标签:space 题解 leq 多校 2024 牛客 答案 序列 dp

7

通读题解之后决定把能看懂的题目补了(毕竟能看懂的也不多,某些算法听都没听过 QwQ)

A Maximum Subarray Sum (A)

出题人解法没看明白

解法2的切入点类似之前某场div2的D题(题解传送门),将操作过程视为选出 \(\lfloor n/k\rfloor\) 个长度为 \(k\) 的子序列,答案序列中大于 \(k\) 的部分暂时与舍弃部分等价,即最后舍弃的数字下标满足 \(i' = i\space mod\space k\). 设 \(dp[i][x][y][p]\) 表示到 \(i\) 位置,换走 \(x\) 个数、换入 \(y\) 个数,当前选择状态为 \(z\)(选或不选)时的最大和,每个计入答案的数可能存在按序选入/中途换入两种选择方式,同理未计入答案的数也存在直接抛弃/换出两种可能。当前数被选中时,由于子序列长度至少为 \(k\),为避免出现间断点,\(dp[i][x][y][1]\) 只能由 \(dp[i - k + 1][x][y][1]\)(长度为 \(k\) 的子序列)或 \(dp[i - 1][x][y][1]\)(答案序列中大于 \(k\) 的部分)转移而来,前者需要从 \(0\) 到 \(m\) 枚举换出数字的数量,其他所有情况则可以 \(O(1)\) 转移。利用前缀和与set之类的容器处理换出后的序列最大值,整体复杂度可优化至 \(nm^3\) 左右。特别地,当 \(i\space mod\space k = k - 1\) 时,由于舍弃的数不可能超过 \(k - 1\) 个,该位置上的数字不能被直接抛弃,只进入 \(0\) 至 \(m\) 的循环、讨论可能存在的换出情况。代码还是借鉴其他队答案才写明白的,所以没放这里了 TAT

I Fight Against the Monster (I)

题解思路是二分答案,不过不用二分也行。\(h\leq m\) 时显然答案为 \(h\),对于 \(h > m\) 的情况,若生产出的 \(k\) 台新机器仍不足以将怪物杀死,可以选择直接补充与剩余血量相等的机器数目(\(h'\leq m - k\) 时),或补充 \(m - k\) 台机器至恰好足以生产新机器,依此思路可 \(O(1)\) 计算答案,代码如下:

    if(h <= m) printf("%lld\n", h);
    else if(m <= k) printf("%lld\n", m);
    else {
        ll sum = h - m;
        if(sum <= k) printf("%lld\n", m);
        else {
            ll cnt = sum / m, x = sum % m;
            if(x >= k) printf("%lld\n", m + cnt * (m - k) + (x - k));
            else printf("%lld\n", m + cnt * (m - k));
        }
    }

8

上周四不在家所以没打,后来自己写的时候各种卡题,难过)

A Haitang and Game (A)

事实上A题并不是一道博弈题,最终序列中加入的所有 \(d\) 是固定的,不存在任何可能改变胜负的博弈策略。具体而言,若序列中 \(d\)(本身不存在于序列中)的倍数有 \(a_i,a_j,...\),且 \(gcd(a_i,a_j,...) = d\),则 \(d\) 必然会被加入。数据范围 \(a_i\leq 10^5\),遍历 \(1\) 至 \(a_{max}\),枚举倍数判断其是否为合法的 \(d\),由调和级数得整体复杂度 \(nloga_{max}\).

标签:space,题解,leq,多校,2024,牛客,答案,序列,dp
From: https://www.cnblogs.com/meowqwq/p/18353431

相关文章

  • 2024.8.12 test
    A\(n\timesn\)的平面上有\(m\)条通道,从\((a_i,b_i)\)到\((c_i,d_i)\),代价为\(|a_i-c_i|+|b_i-d_i|-1\)。同时你可以花\(1\)的代价移动到四联通的点。问所有点之间两两最短距离之和。\(n\le1e9,m\le500\)。走一条通道可以减少\(1\)的代价,我们先求出所有的代价。......
  • 2024.8.13 test
    A\(n\)个人之间有若干认识关系,你要把这些人划分为两个集合,使得集合里的每个人都认识偶数个人。求方案数,\(n\le1000\)。设每个人的状态为\(0/1\)表示两个集合,那么第\(i\)个人在其集合里认识的人个数是\(\sum_{j}(x_i\otimesx_j\otimes1)\)。解这个方程,高斯消元,若自由......
  • 2024.8.13随笔
    前言今天讲的是串串,知识不是特别难懂,但题目上限很高,还会和其他许多经典算法结合起来,考题大多比较综合。8.13早上早读后赶忙补了前两天的小总结,准备上课。还是tqx讲课,讲的内容有hash、KMP、trie、AC自动机以及有关的题目。他讲课声音不是很大,幸好我坐在最前面,不然听课可能......
  • HDU-ACM 2024 Day3
    T1004游戏(HDU7460)注意到对于两个人,他们\(t\)轮后能力值相同的概率只与他们初始时的能力差有关,所以我们先\(\text{FFT}\)求出\(|a_i-a_j|=k\)的\((i,j)\)对数。构造多项式\(F(x)=(p_1x^2+p_2+p_3x)\),其中\(p_1,p_2,p_3\),分别表示在一轮中两个人相对......
  • 微软NET FrameWork离线运行库+离线安装包合集,一键安装版 微软.NET离线运行库合集2024
     微软.NET离线运行库合集2024最新版是一款专为便捷、高效地管理.NET运行库而设计的工具。这款软件集成了各种版本的.NET运行库,并提供了离线安装的功能,使用户能够在没有网络连接的情况下轻松地安装所需的运行库。该软件的出现极大地简化了.NET开发环境的配置和维护过程。用户可......
  • .NET周刊【8月第1期 2024-08-04】
    国内文章EFCore性能优化技巧https://www.cnblogs.com/baibaomen-org/p/18338447这篇文章介绍了在代码层面上优化EFCore实例池和拆分查询的方法。首先,文章建议使用DbContext实例池来重复利用实例,避免资源浪费,并提供相关使用示例。其次,文章讨论了笛尔卡乘积对复杂查询性能的影......
  • 【专题】2024无人驾驶网约车乘坐意愿调查报告合集PDF分享(附原数据表)
     原文链接:https://tecdat.cn/?p=37335 科技迅猛发展,无人驾驶技术从科幻走进现实,2024年无人驾驶网约车成热议话题。阅读原文,获取专题报告合集全文,解锁文末208份无人驾驶网约车相关行业研究报告。报告表明,近60%受访者期待,00后更积极,80后较谨慎。性别上男性更乐观,城市级别......
  • ChatGPT 大模型核心算法深度分析 2024
    在分析核心算法之前,我们先了解chatGPT相关技术发展进程首先介绍自然语言处理、大规模预训练语言模型以及ChatGPT技术的发展历程,接着就ChatGPT的技术优点和不足进行分析,然后讨论核心算法。1.1自然语言处理的发展历史人类语言(又称自然语言)具有无处不在的歧义性、高度......
  • 2024牛客暑期多校训练营9
    Preface久违的多校,又被徐神带飞力这场总体可做题挺多的,前期出题也还算稳,但中间祁神写H睿智错误频发直接红温爆交了7发但无所谓徐神会出手,上机把当时只过了两个队的G秒了,然后我爬上去把B,C写了然后对着D罚坐一整场赛后经典看不懂出题人的一句话题解,坐等视频讲解吧(虽......
  • DRM:清华提出无偏差的新类发现与定位新方法 | CVPR 2024
    论文分析了现有的新类别发现和定位(NCDL)方法并确定了核心问题:目标检测器往往偏向已知的目标,忽略未知的目标。为了解决这个问题,论文提出了去偏差区域挖掘(DRM)方法,以互补的方式结合类无关RPN和类感知RPN进行目标定位,利用未标记数据的半监督对比学习来改进表征网络,以及采用简单高效的m......