9.18 CF1817题解

9.18CF1817题解

A. Almost Increasing Subsequence

题意

给定长度为 n 一个序列 a 以及 q 次询问,每次询问给出 lr,找出序列 a[l,r] 内最长的几乎递增子序列。

对于几乎递增的定义:如果一个序列中不存在连续的三个数 xyz,使得 xy z,则这个序列是几乎递增的。

题解

直接找出区间内 ai1aiai+1 个数,区间长度减去这个的个数。

因为连续3个只能选择两个。

前缀和记录一下就可以。

B. Fish Graph

题意

定义“鱼图”为满足以下条件的无向图:

  • 该图包含正好 1 个环,环上有 1 个特殊的结点 uu 除了连在环上的 2 条边外还有正好 2 条边,每一条边连向一个环外的结点(即,若环的大小为 s,整个图一共有 s+2 个结点)。

现在给定一个简单无向图,问该图中是否有一个子图为“鱼图”。一个无向图的子图即为原图中删去若干个点和若干条边所形成的图。如果存在,还需要构造出其中任意一个满足要求的子图。

题解

找环小技巧:

枚举一个点 sbfs,记录 faifai 里面全是 s 相邻的点,表示 i 被搜索到是从 fai 这个 s 的邻居搜到的。

若有边 (u,v) 并且 faufav 那么就可以形成一个环。

所以枚举度 4 的点暴力找环就完了。

C. Similar Polynomials

题意

给定两个次数为 d 的多项式 A,B0,1,2,,d 处的点值对 109+7 取模,保证 B(x)A(x+s)(mod109+7)。求 smod109+7

题解

多项式差分

定义差分运算 Δ

Δhi=hi+1hi

定义 k 阶差分:

Δkhi=Δ(Δk1hi)=Δk1hi+1Δk1hi

我们发现连续点值差分一次就会消掉一项,消到只剩两项就是 ax+b,一项就是 a

然后两个多项式都求一次,就是已知 a,ax+b,a(x+s)+bs,这很简单。

D. Toy Machine

题意

有一个长 n2 的矩形游戏机。保证 n 是奇数。

游戏开始之前,有 n2 个玩具放在第一排中间的 n2 个位置中(两个角除外)。编号从左到右依次为 1n2。第二行为空,其最左、最右和中心位置是障碍物。你可以控制玩具机向左、向右、向上、向下,分别用字母 LRUD 表示。

操控时,所有玩具将同时沿相应方向移动,碰到另一个玩具、墙壁或障碍物停止。您的目标是将第 k 个玩具移动到第一行最左边。给定 nk,构造一个最多使用 1000000 次操作的方案。

题解

如果 k 在左边,直接 LURD 一直循环即可。

如果 k 在中间,直接 DR

如果 k 在右边,比较难搞。

  • 我们先考虑 k=n2k 在最后的情况,直接循环 LULD,最后形成如同图一的情况,直接 RDL

  • 对于平凡的情况我们考虑通过循环 RULD 把这个点移动到最后位,然后通过上面的方法做。

图一
(图一)

E. Half-sum

题意

有一个非负整数序列 {a1,a2,,an}

你可以从序列中取任意两个数,并将它们的平均数放回序列。

序列最后会剩两个数,请求出这两个数的差的绝对值的最大值。

因为答案将会是一个小数,所以请输出答案对 109+7 取模的结果。

题解

最优情况应该是:

先排序,找一个断点,左边从右向左依次操作,右边从左向右依次操作。

左边就是 A,右边就是 B

如果直接找断点是 O(n2) 的,我们考虑找前 32 个和后 32 个。

因为超过 32 的必定要除以 232 ,数据范围 231 ,除之后必定 <1 贡献太小了,不需要考虑。(这是感性理解)

posted @   He_Zi  阅读(34)  评论(7编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示