Codeforces#619 (Div.2)
A. Three Strings 题意 给定三个长度为 $n$ 的字符串 $a$ , $b$ , $c$ ,遍历每个 $c$ 中每个字符 $c_i$,可以将其替换成 $a_i$ 或者 $b_i$ ,必须操作其中一个,问能否通过此操作使得字符串 $a$ , $b$ 相同。 ...
A. Three Strings 题意 给定三个长度为 $n$ 的字符串 $a$ , $b$ , $c$ ,遍历每个 $c$ 中每个字符 $c_i$,可以将其替换成 $a_i$ 或者 $b_i$ ,必须操作其中一个,问能否通过此操作使得字符串 $a$ , $b$ 相同。 ...
前言 今天又是颓废的一天,被大佬拉去跟他一起做牛客网的题,QAQ…那我会点啥嘛,就只能替大佬写两道水题了··· ...
A. 方格取数 题意 有一个 $N*N$ 的整数方阵,每个点初始值为0,在一些点上放上数,一个人从左上角走到右下角,规定只能向下或向右走,当他经过的点上有数时会取走它,问走两遍最多能取的数的和最大为多少。 ...
前言 最近感觉遇到了好多单调队列和单调栈的问题,但是因为以前没学好,所以遇见了就一脸懵逼,然后绝对下决心来学一下。。感觉遇到啥都不会,这可咋办呐。。补不完的漏洞。 ...
A. Non-zero 题意 给出一段含有 $n$ 个数的序列 $a$ ,可以对其中任何数加一,问最少操作多少次让每一个数和序列和都不为0。 ...
1. 分组背包 题意 在01背包基础上,将其中的物体分成 $k$ 组,每组内的物品相互冲突,即只能取其中一个,问最大价值。 ...
前言 今天跟着背包九讲把背包再学习一下,dd_engi大佬的背包九讲Github链接: 背包九讲 1. 采药(01背包) 题意 有 $n$ 个价值为 $w_i$ ,体积为 $v_i$ 的物品,装入体积为 $V$ 的背包中,问能获得的最大为多少。 ...
1. 石子归并 题意 $N$ 堆石子摆成一条线。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价。计算将 $N$ 堆石子合并成一堆的最小代价。 思路 很经典的区间dp例题,我们可以用 $dp[i][j]$ 来表示合并 $i\sim j$ 所需的最小代价,通过枚举中间的断点,来通过方程 $dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+cost[i][j])$ ,其中 $cost[i][j]$ 表示从 $i\sim j$ 的石子总数,通过前缀和很容易计算。在进行状态转移时需要前面状态已知,因为是枚举中间断点,所以断开区间的长度一定要小于原区间,因此在转移之前需要确保比他短的区间都已经达到了最小代价,因此我们可以通过枚举区间长度从 $2\sim N$ 来实现。 ...
前言 某位大佬曾经说过,dp不会没问题,想不到状态转移方程没问题,多做题就会了。所以,我打算多刷点dp题。那么,先从基础刷起吧。 1. P1091 合唱队形 题意 已知序列 $a$ 有 $n$ 个数,通过取出其中一些数可以使他满足严格的先增再减序列,问最少取出几个。 ...
A. Array with Odd Sum 题意 给出包含 n 个正整数的序列 a ,你可以把任何一个元素 $a_i$ ,赋值给另一个元素 $a_j$ ($i\neq j$) ,问通过任意此操作能否将序列 a 的和变为奇数。可以输出 YES ,不可以输入 NO. 思路 首先当起始和为奇数的时候,就直接可输出 YES 了,如果是偶数的话,我们可以发现,如果序列元素中同时包含奇数和偶数,那么就是可以的,否则不可以。 ...