摘要:
题意:给定 n 个结点,表示要修复的点,然后机器人每秒以 v 的速度移动,初始位置在 x,然后修复结点时不花费时间,但是如果有的结点暂时没修复, 那么每秒它的费用都会增加 d,修复要花费 c,坐标是 pos,问你最少花费是多少。 析:dp[i][j][k] 表示已经修复了 i-j 区间,并且当前在 阅读全文
摘要:
题意:你用k 个生成树构成一个完全图。 析:n 个点的完全图有n(n-1)/2个边,一个生成树有n-1个边,你有k 个生成树 即边数等于 K(n-1) ,即 n(n-1)/2 == k(n-1) n = 2*k 所以2k 个边足够,你会发现在每个结点只能做一次开头或者结尾。然后找找规律就好。 代码如 阅读全文
摘要:
题意:给定两个序列,让你找出这两个序列的LCIS的长度。 析:DP a[i] 表示以ai结尾的最大值,b[i]表示以bi结尾的最大值。 代码如下: 阅读全文
摘要:
题意:给定一个浮点数,让你在时间 t 内,变成一个最大的数,操作只有把某个小数位进行四舍五入,每秒可进行一次。 析:贪心策略就是从小数点开始找第一个大于等于5的,然后进行四舍五入,完成后再看看是不是还可以,一循环下去,直到整数位,或者没时间了。 代码如下: 阅读全文
摘要:
题意:给定一个序列,让你用最少的操作把它变成交替的,操作有两种,任意交换两种,再就是把一种变成另一种。 析:贪心,策略是分别从br开始和rb开始然后取最优,先交换,交换是最优的,不行再变色。 代码如下: 阅读全文
摘要:
题意:根据题目,给定一些数字,让你判断是上升还是下降。 析:注意只有0,15时特别注意一下,然后就是14 15 1 0注意一下就可以了。 代码如下: 阅读全文
摘要:
题意:给定一个序列,问你最多有多少个合法的括号。 析:区间DP,dp[i][j] 表示在 第 i 到 第 j 区间内最多有多少个合法的括号。 代码如下: 阅读全文
摘要:
题意:给定一个圆形的环,有两个只兔子,一只顺时针跳,一个逆时针,但每次跳到的石头必须一样,问你最多能跳多少轮。 析:本来以为是LCS呢,把那个序列看成一个回文,然后就能做了,但是时间受不了。其实是一个区间DP,dp[i[j] 表示从 i 到 j 中最长的回文数。 代码如下: 阅读全文
摘要:
题意:给定一个括号序列,让你添加最少的括号,使得所有的括号都匹配。 析:首先用DP来把这个最少的找出来,然后再打印出解,dp[i][j]表示从 i 到 j 所要添加最少的数。 注意有空行的数据。 代码如下: 阅读全文
摘要:
题意:给定一个 10*10的矩阵,每一个W可以跳过一个B向对角走到#并把B吃掉,并且可以一直跳直到不能动为止,现在是W走的时候,问你最多吃几个B。 析:直接暴力+回溯,深搜就好。 代码如下: 阅读全文
摘要:
题意:有n个只包含两个字母的字符串, 要求构造一个m*m的字母矩阵, 使得矩阵的每行每列都不包含所给的字符串, m要尽量大, 如果大于20的话构造20*20的矩阵就行了。 析:开始吧,并没有读对题意,后来才看懂什么意思,然后主要思想就是如果有环,那么一定是可以构造成20*20的,只要环一直重复就好, 阅读全文
摘要:
题意:给定一个序列,让你经过不超过9的6次方次操作,变成一个有序的,操作只有在一个连续区间,交换前一半和后一半。 析:这是一个构造题,我们可以对第 i 个位置找 i 在哪,假设 i 在pos 位置,那么如果 (pos-i)*2+i-1 <= n,那么可以操作一次换过来, 如果不行再换一种,如果他们之 阅读全文
摘要:
题意:给定一个序列,让你经过不超过9的6次方次操作,变成一个有序的,操作只有在一个连续区间,交换前一半和后一半。 析:这是一个构造题,我们可以对第 i 个位置找 i 在哪,假设 i 在pos 位置,那么如果 (pos-i)*2+i-1 <= n,那么可以操作一次换过来, 如果不行再换一种,如果他们之 阅读全文
摘要:
题意:给出一个长度在 100 000 以内的正整数序列,大小不超过 10^ 12。求一个连续子序列,使得在所有的连续子序列中, 它们的GCD值乘以它们的长度最大。 析:暴力枚举右端点,然后在枚举左端点时,我们对gcd相同的只保留一个,那就是左端点最小的那个,只有这样才能保证是最大,然后删掉没用的。 阅读全文
摘要:
题意:给出一个长度在 100 000 以内的正整数序列,大小不超过 10^ 12。求一个连续子序列,使得在所有的连续子序列中, 它们的GCD值乘以它们的长度最大。 析:暴力枚举右端点,然后在枚举左端点时,我们对gcd相同的只保留一个,那就是左端点最小的那个,只有这样才能保证是最大,然后删掉没用的。 阅读全文
摘要:
题意:略. 析:不解释,水题。 代码如下: 阅读全文
摘要:
题意:给定一些动物的叫声,然后再定某些动物的叫声,让你去除这些叫声后得到的叫声。 析:先存储所有的叫声,然后用map来记录其他的叫声,在输出时再判定一下就好。 代码如下: 阅读全文