AGC004B 线性做法

$\text{Description}$

有 $n$ 个所罗门,你需要执行以下两个操作:

  • 花费 $x$,将你拥有的所罗门的编号都循环地加一。
  • 花费 $a_i$,拥有第 $i$ 个所罗门

来获得所有所罗门,并最小化花费。

原题:$2\le n\le 2000$。

加强:$2\le n\le 10^6$。

SNOI2019 字符串 题解

$\text{Description}$

给定一个字符串 $s[1\cdots n]$,定义字符串 $s_i$ 为 $s[1\cdots i-1]+s[i+1\cdots n]$,试为 $s_1,s_2,\cdots,s_n$ 排序。

$n\le 10^6$

CF1363E 题解

CF1363E 题解

$\text{Description}$

给定一棵以 $1$ 为根的有根树,每个节点有三个权值 $a_i,b_i,c_i$。每次操作可以选定一个节点 $x$,然后选择其子树内任意个节点(设为 $k$ 个)并任意排列其 $b_i$,花费 $k\times a_i$。你可以进行若干次操作,求使得所有结点的 $b_i=c_i$ 的最小花费。

CF1365E 题解

CF1365E 题解

$\text{Description}$

给出一个长度为 $n$ 的数列 $\{a\}$,你需要选出一个子序列,使其价值最大,输出最大的价值。

对于一个长度为 $k$ 的子序列,若在这个子序列中有不少于 $\max(1,k-2)$ 个数的二进制位 $i$ 上是 $1$,则其价值增加 $2^i$。

$n\le 500$

CF1328F 题解

CF1328F 题解

$\text{Descrption}$

给定 $n$ 个数,每次可以将最小的数加一或者将最大的数减一,问要有 $k$ 个相等的数最少需要多少此操作。

$n,k\le 2\times 10^5,a_i\le 10^9$。

SEERC2018-F 题解

SEERC2018-F 题解

$\text{Description}$

给定两个长度为 $n$ 的序列 $A,B$。

你有两种操作:

  • 将 $A$ 中的某一个区间里的数替换成这个区间的最小值。
  • 将 $A$ 中的某一个区间里的数替换成这个区间的最大值。

现在你需要构造一个操作方案,在操作次数不超过 $2n$ 的前提下,将 $A$ 变为 $B$。

$n\le 10^5$。

CF505E 题解

CF505E 题解

$\text{Description}$

给定 $n,m,k,p$,给定两个序列 $\{h_n\}$ 和 $\{a_n\}$,接下来你要执行 $m$ 轮操作:

  1. 进行 $k$ 次特殊操作,每次特殊操作可以选择一个数 $i\in[1,n]$,然后使得 $h_i\gets \max(h_i-p,0)$;
  2. 对于所有 $i\in[1,n]$,使得 $h_i\gets h_i+a_i$。

现在你需要使得最后 $\max\limits_{1\le i\le n}\{h_i\}$ 最小。

CSP2019 树上的数 题解

$\text{Description}$

给定一棵无根树,树上每个点都有一个数,这些数是一个 $[1,n]$ 的全排列。你需要删除所有的边,每次删边会交换边连接的两个点上的数。删完之后,按照点上的数升序排列,使得最后编号组成的字典序最小。

CSP2019 树的重心 题解

$\text{Descripton}$

给定一棵树,求出删除每一条边后分裂出的两个子树的重心编号和。

拟阵

概论

拟阵是一种数学工具,可以用来证明贪心算法的正确性。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×