做题记录高一下

ARC154

A

和定,差大,积小

B

删掉S开头,放入S任意一个位置,求多少次操作后和T相等

这里随着$i$的增大,在某一个点变成相等,$\color{red}有单调性,二分$

C

两个序列,$A$,$B$,操作$A[i]=A[i+1]$,求是否可以让A等于B,是个环

这里可一以发现,只有B是A的子序列满足要求

D

交互:一个被打乱的$1$到$N$的序列,告诉你$P[i]+P[j]$是否大于$P[k]$,要求你输出每个数的值

首先思考特例$1,\frac{N}{2},N...$

发现$P[i]+1>P[j]$可以推出$P[i]>P[j]$,所以要找$1$

$P[i]+P[i]<=P[j]$,则$i$,更优

过程用归并排序减少比较次数,也可以用$stable_sort()$

ARC153

B

有一个 $H$ 行 $W$ 列的矩阵,矩阵中每个位置都有一个小写字母。每次操作给出 $a,b$,含义是在第 $a,a+1$ 行之间切一刀,再在 $b,b+1$ 列之间切一刀,这样能得到四个矩阵;每个矩阵旋转半周,最后把四个矩阵拼起来得到新矩阵。有 $n$ 次操作,每次形如 $a_i,b_i$,希望输出操作后的矩阵。

$对于x_i,y_i关于a_i,b_i的操作,如果x_i<a_i,x_i=a_i-x_i+1,否则H+a_i-x+1,都mod\ H$

多次操作式子为$a_k-[a_j-(a_i-x+1)+1]+1$
我们可以把和$a$有关的提取出来单独算,那么对于每个点的位置$O(1)$计算

C

给定 $n$ 和一个长度为 $n$ 的序列 $A$,满足 $A_i \in {-1,1}$。

你要尝试求出一个长度为 $n$ 的序列 $x$,满足以下限制:

  • $|x_i| \leq 2 \times 10^{12}$;

  • 序列严格递增,即 $\forall 1 \leq i < n$,$x_i < x_{i+1}$;

  • $\sum_{i=1}^n{A_ix_i} = 0$。

如果存在这样的序列,输出 Yes 和一个满足条件的序列 $x$;如果不存在,则输出 No

这道题,$emmm...$,当我看到数据范围还是很惊讶的,这不是乱切吗?

对于第一个数,降低是可以把后面所有数的正值拖下去的

D

定义 $f(x)$ 为其十进制意义下各位数字之和,比如 $f(1)=1,f(123)=6$。

给定长度为 $n$ 的序列 $A$,请找到一个非负整数 $x$ 使得 $\sum\limits_{i=1}^nf(A_i+x)$ 最小,并输出这个最小值。

$dp[i][j]$表示当前枚举到第$i$位,向前进位$j$个的最小贡献,第一遍计算贡献,第二遍计算向前进位的贡献,当前是第$i$位,按照第$i-1$位排序

2月1日

烤串

$Q$次查询,每次查找一个区间,求区间中回文串数量

对于以每个点为中心的回文串,$logN$可以解决,通过$Hash$二分

对于每个点,是一条线段,查询线段长度,用区间修改主席树,标记永久化

乘积筛

$$
ans=\sum_{1\le x\le N,1\le y\le M,ic+jy=C}a_xb_y
$$

$\color{red}可以用exgcd?得看看$

暴力记忆化

2月3日

饼干

有$n$种饼干,第$i$种饼干有$a_i$块。你需要尽快吃掉这些饼干,但是你吃饼干时必须满足一个特殊限制:

假设你第$i$天吃掉第$j$种饼干$b_{i,j}$块,则$\forall i,2\max_{1\le j\le n}b_{i,j}=\sum_{j=1}^nb_{i,j}$。

构造一个吃完饼干的方案或者报告无解(当你不能吃完这些饼干时)。如果有解,你需要在$\lceil\frac{n}{2} \rceil $天内吃完饼干以得到满分。

被吃完只可能其中最大的不超过一半,对着这个目标选择加上删减

posted @ 2025-12-05 09:48  Heavenly  阅读(0)  评论(0)    收藏  举报