首页 > 其他分享 >Codeforces Round 997 (Div. 2) 题解(A~D 题)

Codeforces Round 997 (Div. 2) 题解(A~D 题)

时间:2025-01-18 10:23:59浏览次数:1  
标签:997 le 题解 sum Codeforces cdots Div

Codeforces Round 997 (Div. 2) 题解(A~D 题)

A

因为 \(x,y < m\),所以每次必有重叠的长方形。

且重叠部分长为 \(m-x\),宽为 \(m-y\) ,用总周长减去算重了的部分就行。

注意处理第一个长方形的边界条件。

B. Find the Permutation

按照 \(g_{i,j}\) 的大小关系直接写 cmp 然后 sort 就行。

考场还写了拓扑(

C. Palindromic Subsequences

构造:\(1,1,2,3,\cdots,n-3,1,2\)。

\(g(a) = n-3 + n-4 + n-4 = 3n-11 > n\)

即 \(n > 5.5\) 都可满足。

D

场切 *2200 ?!

感觉好数组不是很好统计啊,正难则反,我们统计坏数组的数量。

看到值域很小,考虑从值域下手。

坏数组形如:

\[\cdots,x,y,\cdots \]

其中 \(y > x\), \(x\) 为第 \(\frac{len}{2}\) 个数。

我们枚举这个 \(x\),统计所有第 \(\frac{len}{2}\) 个数为 \(x\) 的坏数组数量。

我们将 \(a_i \ge x\) 的数打成 \(1\),\(a_i < x\) 的数打成 \(0\),然后做个前缀和。

问题似乎转化为:

统计多少 \(1 \le l \le r \le n\)

\[sum_r -sum_{l-1} = \frac{r-l+1}{2} \]

通过一个常用的 trick 可以化成:

\[2sum_r - sum_{l-1} = r-l+1 \]

\[(2sum_r-r) - (sum_{l-1}-l+1) = 0 \]

令 \(S_i = 2 \times sum_i - i\),就可以化成:

\[S_r - S_{l-1} = 0 \]

这个就可以轻松地用 map 计数了。

但是还没完。

我们发现这个算法有点问题。

比如:

\(1 \ 10\)

在 \(x=1\) 的时候会统计一遍,而在 \(x = 2\) 时,会再次统计一遍。

我们加入一条限制:\([l,r]\) 中必须包含 \(x\),加上 \(S_r - S_{l-1}=0\) 的条件,便能实现不重不漏。

我们从头到尾枚举 \(r\),当遇到一个 \(x\) ,就把 \(x\) 前面的 \(S_l\) 加进 map 内,保证 map 内取到的 \(S_i\) 都能保证 \([l,r]\) 内有 \(x\)。

本题就做完了。

标签:997,le,题解,sum,Codeforces,cdots,Div
From: https://www.cnblogs.com/codwarm/p/18678087

相关文章

  • 题解:CF140A New Year Table
    CF140ANewYearTable思路注意到题目中提到了大圆与小圆相切,我们可以计算由两条经过小圆周长与大圆圆心的切线组成的圆心角的度数。但是这个角度其实不好算,所以我们可以求出它一半的正弦值,也就是\(b\div(a-b)\),然后用asin函数求出其度数(以弧度为单位)。最后答案就是判断\(......
  • Desant 2 题解
    LibreOJ-3614Luogu-P9040很好的题。先不考虑区间,先想\(l=1,r=n\)的情况。考虑dp,\(f_i\)表示考虑\([l,r]\)的答案。则容易得到:\[f_i=\max\left\{f_{i-1},f_{i-k}+s_i-s_{i-k}\right\},f_0=0\]其中\(s\)为\(a\)的前缀和。这个转移本身是\(\Theta(n)\)的。遇......
  • 【洛谷训练记录】【LGR-213-Div.4】洛谷入门赛 #31
    训练情况赛后反思模拟题差点红温,差一道字符串模拟题AKA题问一个数\(a\)加多少后的个位数变成\(b\),取出\(a\)的个位数,再用\(b\)去减,如果小于零答案再加十。#include<bits/stdc++.h>//#defineintlonglong#defineendl'\n'usingnamespacestd;voidsolve()......
  • [CF2048F] Kevin and Math Class 题解
    注意到这里有个区间的\(b_i\)最小。我们考虑每个\(b_i\)作为最小的时候各操作几次。显然每个\(b_i\)的【操作区间】更长是不劣的。于是这些个\(b_i\)是可以打成笛卡尔树,进行DP。想到这一点,DP便是不难的了。定义\(f_{i,j}\)为以\(i\)为根的子树内,最优操作后最大值......
  • 如何使用css3实现一个div设置多张背景图片?
    在CSS3中,你可以使用background-image属性为一个div设置多张背景图片。这些图片将按照它们在值列表中的顺序堆叠,第一张图片位于最前面(即最靠近用户),最后一张图片位于最后面。以下是一个示例:div{width:500px;height:500px;background-image:url(image1.jpg),url(image......
  • Educational Codeforces Round 149 (Rated for Div. 2) / 1837
    A.GrasshopperonaLine难度(个人感觉)☆☆☆☆☆Codeif(L%k==0){ans.push_back(1);ans.push_back(L-1);}else{ans.push_back(L);}B.ComparisonString难度(个人感觉)★☆☆☆☆思考:注意到最长链(指一些连续的位置,它们是单调的)是答案的下界,而实际上这是下......
  • 嵌入式杂谈——(问题解决三:嵌入式中的数据类型)
    列举1. 标准固定宽度整数类型这些类型定义在 <stdint.h> 头文件中,用于明确指定数据的位数,适合嵌入式系统中需要精确控制数据大小的场景。类型位数范围(有符号)范围(无符号)说明int8_t8-128到127-8位有符号整数uint8_t8-0到2558位无符号整数int16_t16-32,768到32,767-......
  • Educational Codeforces Round 146 (Rated for Div. 2) / 1814
    A.Coins难度(个人感觉)☆☆☆☆☆思考:关键是2可以凑出任意偶数Code:if(n%2==0){ok=1;}else{if(k%2==0){ok=0;}else{ok=n>=k;}}B.LongLegs难度(个人感觉)★☆☆☆☆思考:当最终\(m=1e5\),答案不超过\(3e5\),因此最优的情况......
  • AcWing 98. 分形之城 题解
    题面link【题目描述】城市的规划在城市建设中是个大问题。不幸的是,很多城市在开始建设的时候并没有很好的规划,城市规模扩大之后规划不合理的问题就开始显现。而这座名为Fractal的城市设想了这样的一个规划方案,如下图所示:当城区规模扩大之后,Fractal的解决方案是把和原来......
  • 信号与系统(郑君里)第一章-绪论 1-2 课后习题解答
    题目详情(1-2分别判断下列各函数式属于何种信号,即是连续时间信号还是离散时间信号,若是离散时间信号是否为数字信号?其中各式中n为正整数)答案解析:(1)连续信号模拟信号(2)离散信号抽样信号(3)离散信号数字信号 该函数只取±1,所以为数字信号(4)离散信号抽样信号 该函数随着n的......