观察到这个数据范围,显然不可能真的存这么大的邻接矩阵。 进一步发现,题目要求正方形矩阵的边长为偶数,并且里面的1为奇数 这启发了我们,因为边长为4的一定要用边长为2的拼接起来,这样边长为4的里面一定是偶数个1 因此直接特判掉n>=4的答案 剩下只有n==2,和n==3。 对于n==2,我们发现因为每 ...
分类:
其他好文 时间:
2020-09-03 16:39:40
阅读次数:
36
题意: 给你一个括号序列,求其中最长的合法括号序列的长度。 思路: 这个题的核心思路,其实是合法括号序列的定义。 合法括号的定义如下: "()" 是一个合法括号序列; 如果 "|" 表示一个合法序列,那么 "(|)" 也是一个合法序列; 如果 "|" 表示一个合法序列,那么 "||" 也是一个合法序 ...
分类:
其他好文 时间:
2020-09-03 16:29:50
阅读次数:
24
题目描述 沙都子有一个序列,第i 个位置的数为ai。她知道,该序列共有2n ? 1 个子序列,但有一些子序列长得一样。于是她提出了一个问题:该序列的本质不同的子序列有多少种呢?对于1 ≤ p1 < p2 < · · · < pm ≤ n(m 是任意正整数),称(ap1 , ap2 , . . . , ...
分类:
其他好文 时间:
2020-08-28 11:44:13
阅读次数:
58
动态规划 讲解动态规划的资料很多,官方的定义是指把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解。概念中的各阶段之间的关系,其实指的就是状态转移方程。 我们一般看到的状态转移方程,基本长成下面这样(注:i、j、k 都是在定义DP方程中用到的参数。opt 指代特殊的计算逻辑,大多数情 ...
分类:
编程语言 时间:
2020-08-25 16:04:26
阅读次数:
48
题意: 有三个人各有x,y,z块钱,每次最多钱的人会把有1/2的概率給别人一块钱,问要给多少次,才能平均三个人的钱数。 0<x,y,z<=1e6 首先肯定是有明显的状态转移关系的。 假设x>=y>z 很容易列出dp[x][y][z]=1/2dp[x-1][y+1][z]+1/2dp[x-1][y][ ...
分类:
其他好文 时间:
2020-08-20 18:18:40
阅读次数:
55
任何大于 1 的自然数 N,都可以写成若干个大于等于2且小于等于 N 的质数之和表达式(包括只有一个数构成的和表达式的情况),并且可能有不止一种质数和的形式。例如9 的质数和表达式就有四种本质不同的形式:9 = 2+5+2 = 2+3+2+2 = 3+3+3 = 2+7 。 这里所谓两个本质相同的表 ...
分类:
其他好文 时间:
2020-08-19 19:23:20
阅读次数:
58
这里写了作者学过的一些背包问题的解法,希望能为新入门DP的OIer提供便利。 ...
分类:
其他好文 时间:
2020-08-19 19:12:33
阅读次数:
54
这题是LeetCode198. 打家劫舍的进阶版,除了要求不能 打劫相邻的房子以外,还不能同时打劫第一个和最后一个房子。因为所有房子的排列是环形的,所以实际上第一个房子和 最后一个房子也是相邻的。 我们也用dp[i]表示打劫到第i个房子能获得的最大收益,要打劫到最后一个房子,就得不打劫第一个房子,所 ...
分类:
其他好文 时间:
2020-08-17 17:25:10
阅读次数:
59
dp[i] = max_{j ∈ [i-R,i-L]}( dp[j] + v(j+1,i) )。做前缀和后,对每种s[j]的值,开一个单调队列。每次将i-L入队、将i-R-1出队。用线段树维护每个队列的队首。转移时最区间最大值查询。 ...
分类:
其他好文 时间:
2020-08-17 16:57:59
阅读次数:
68
对于这题,我们发现1和3点是同类点,因此其实就是二分图染色,如果只有一个连通块,那么判断一下是否是二分图就行。 现在有多个连通块,因此我们还要判定一下能否把这些2分给这么多个连通块 因此可以做一下背包,先存一下每个连通图的信息,之后dp,除了维护可达性,还要维护一个把图的哪部分分给2 如果最后不能分 ...
分类:
其他好文 时间:
2020-08-15 22:35:03
阅读次数:
76