首页 > 其他分享 >Codeforces Round 621 (Div. 1 + Div. 2)

Codeforces Round 621 (Div. 1 + Div. 2)

时间:2024-09-06 17:15:38浏览次数:5  
标签:621 题意 Cow Codeforces 提交 Div 奶牛 我们

USACO入侵CF

A. Cow and Haybales

题意:

一行 \(n\) 个数,每次可以将 1 从一个数移动到相邻的数,求 \(d\) 次内 \(a_1\) 最大值。

思路:

显然先移动 \(a_2\),然后依次类推。

提交记录

B. Cow and Friend

题意:

在二维平面上,一次只能走恰好 \(a_1 \sim a_n\) 中的一个数,求从原点走到 \((x,0)\) 的最少步数。

思路:

首先不难发现,如果非常远,我们肯定是先走最长的知道比较近。

所以我们先不断走最长的知道距离小于等于其两倍,这时候我们肯定可以再走两步到达,但是我们要判断现在有没有一步到的方案,如果有就一步到。

提交记录

C. Cow and Message

题意:

一个字符串的一个子序列如果下标是等差数列就是好的。求一个子序列使得其作为好的子序列出现次数最多,求最多出现次数。

\(|s| \le 10^5\)。

思路:

不难发现,如果子序列长度大于等于 \(3\) 一定不会更好,因为前两个就够了,所以我们只用判断所有长度为 \(1\) 或 \(2\) 的即可,精细实现可以做到 \(O(26n)\)。

提交记录

D. Cow and Fields

题意:

给定一张无向连通图和若干个特殊点,要求在特殊点之间加一条边,使得加边之后最短路最长。

\(n \le 2 \times 10^5\)。

思路:

不妨设 \(a_i\) 表示 \(1 \to i\) 的最短路,\(b_i\) 表示 \(i \to n\) 的最短路,我们就是要在特殊点中选两个点使得 \(\min\{a_i + b_j, b_i + a_j\}\) 尽可能大。

但是有个最小值不好处理,我们考虑令 \(x_i = a_i - b_i\),这样最小值变成 \(b_i + b_j + \min\{x_i,x_j\}\),按照 \(x\) 排序就好了。

提交记录

E. Cow and Treats

题意:

有一行 \(n\) 块草场,\(s_i\) 表示其类型。

有 \(m\) 头奶牛,\(f_i\) 表示其最喜欢的草场类型,\(h_i\) 表示其饥饿程度。

一种划分只两个不交集合 \(A,B\),\(A,B\) 中的奶牛交替吃草,每次 \(A\) 中从左边出发,\(B\) 中从右边出发,一头牛只吃自己喜欢的类型,会一直吃到 \(h_i\) 然后在当前各自睡觉。如果一头牛吃不够或者碰到了睡觉的牛,那么他会很伤心。

一个划分是好的当且仅当没有奶牛很伤心。

求所有的好的划分使得 \(|A|+|B|\) 最大以及方案数。

\(n,m \le 5000\)

思路:

我们首先发现其实只要 \(f\) 不同其实并不影响。所以我们考虑同一个 \(f\)。

显然最多选两个,一个放左边,一个放右边。

那么现在只要分出两个集合,并且前面的和后面的不相交即可。内部的排序方案是唯一且存在的。

我们考虑枚举分界点,为了不重不漏,我们要求前 \(k\) 个属于 \(A\) 且第 \(k\) 个有奶牛睡觉。

我们对于每一种类型单独讨论,不妨设 \(a_i\) 表示奶牛在左边是睡觉的位置,\(b_i\) 表示奶牛在右边时睡觉的位置。

如果选一个,则需要前 \(k\) 个中有 \(a_i\) 或者后面有 \(b_i\),如果有 2 个,则就是前面选乘上后面选。

我们用前缀和维护,但是如果 \(a_i < b_i\),则计算 \(k \in [a_i,b_i)\) 时都会计入,但这是不合法的,我们可以用差分处理然后减去即可。

但是我们有一个要求 \(k\) 必须选,我们发现其实只关系一种颜色,且考虑到 \(h,f\) 不同时相同,所以我们就特判一下,选一个就只有一种方案,选两个就看一下是否有 \(b_i > k\) 即可。

时间复杂度 \(O(n^2)\),但是离散化一下其实可以做到 \(O(n \log n)\)。

提交记录

标签:621,题意,Cow,Codeforces,提交,Div,奶牛,我们
From: https://www.cnblogs.com/rlc202204/p/18400650

相关文章

  • 21J621-1天窗:建筑排烟通风图集
    21J621-1天窗是建筑行业的一本通用型天窗图集,图集内包含了平屋面罩体天窗(球面型、锥体型、穹体型、穹+平复合型)、平屋面平天窗(三角型、平开型、圆拱型)、钢天窗架天窗(上悬统长型、上悬分段型)、屋面采光带(平铺式采光带、凸起式采光带)、坡屋面天窗(组合屋顶窗(斜+立转角、斜+立露台......
  • CF1469D Ceil Divisions题解
    CF1469DCeilDivisions感觉是很巧妙的一题?一开始想到,对于任何小于$n$的数$x$,直接对它除以$n$可以得到$1$。那么对$3\simn-1$做完此操作后,还剩下$1$、$2$、$n$。将$n$变成$1$要花费$logn$次,显然总操作次数超过了$n+5$次。进一步地,发现瓶颈在于把$n$变成$1$,于是利用根号,用$\sqr......
  • CodeForces 2009G Yunli's Subarray Queries 题解
    云璃!高质量Div.4,吊打某些Div.2Only/Edu/Div.3。本题是下面四道题目的有机结合,优雅且经典。LuoguP4168[Violet]蒲公英|LuoguP1997faebdc的烦恼|LuoguP3203[HNOI2010]弹飞绵羊|LuoguP3246[HNOI2016]序列建议先完成这四题。(必须指出:用蒲公英的分块方......
  • Unet改进23:添加DiverseBranchBlock||通过组合不同规模和复杂度的分支来增强单个卷积的
    本文内容:在不同位置添加DiverseBranchBlock目录论文简介1.步骤一2.步骤二3.步骤三4.步骤四论文简介我们提出了一种通用的卷积神经网络(ConvNet)构建块,在不需要任何推理时间成本的情况下提高其性能。该块被命名为多元分支块(DBB),通过组合不同规模和复杂度的分支来增强......
  • Codeforces Round 968 (Div. 2)
    Preface今天课比较少,就抽点时间补一下之前欠的CF这场总体来说题还算简单,E1之前的题基本都是一眼,不过E2没往转化到区间不交的情况想,F更是完全没想到colorcoding,只能说太菜太菜A.TurtleandGoodStrings不难发现只要比较开头和结尾的字符是否相同即可#include<cstdio......
  • 《魔兽世界》divxdecoder.dll丢失怎么办?轻松解决指南
    在深入艾泽拉斯大陆的冒险旅途中,每一位玩家都希望拥有流畅且无碍的游戏体验。然而,技术问题偶尔会像突如其来的部落突袭一样打断我们的探索。其中,“divxdecoder.dll丢失”错误便是不少玩家可能遇到的一个小障碍。别担心,本文将为您提供一套简单易行的解决方案。divxdecoder.dll......
  • Codeforces Round 947 (Div. 1 + Div. 2) VP记录
    CodeforcesRound947(Div.1+Div.2)VP记录我是唐诗,我是唐诗,我是唐。场切:ABCE。笑点解析D是我不在场的GJ模拟赛的T1签到题。A找\(a_i<a_{i-1}\)然后按数量分讨即可。B最小值要取,不能被最小值表示出来的数的最小值要取,暴力即可。C先对相邻两个值的较小......
  • Codeforces LATOKEN Round 1 (Div. 1 + Div. 2)
    A.ColourtheFlag题意:给定一个棋盘,一些格子已经染上黑白色,判断能否将剩下的格子染色,使得相邻格子不同色。输出构造。思路:考虑一个棋盘的合法染色方案只有两种,分别比较一下即可。提交记录B.HistogramUgliness题意:一个柱状图,权值定义为操作次数加上竖直方向的周长。一次......
  • 2024 Xiangtan University Summer Camp-Div.2
    A.二度树上的染色游戏因为题目保证了是二叉树,所以每次至多只需要选择一个子节点染成红色。所以可以贪心的选择红色权值小的子树即可。#include<bits/stdc++.h>usingnamespacestd;usingi32=int32_t;usingi64=longlong;usingldb=longdouble;consti32inf......
  • Codeforces Round 971 (Div. 4) ABCD题详细题解(C++,Python)
    前言:    本文为CodeforcesRound971(Div.4)ABCD题的题解,包含C++,Python语言描述,觉得有帮助或者写的不错可以点个赞    比赛打了没一半突然unrated了就不是很想继续写了,早起写个题解    (之前的div3也没复盘,哎真菜)目录题A:题目大意和解题......