上一页 1 2 3 4 5 6 7 8 9 10 ··· 19 下一页
摘要: "题目" 搜索。并且通过题意所得到的信息先推出几个性质。 如果每个字母在开头的出现次数等于结尾的出现次数,则说明每个单词都有可能要成为起点。 而如果有字母在开头的出现次数比结尾的出现次数大,则只有以该字母为开头的单词才有机会成为起点,这样我们就可以只从他们开始dfs了。 阅读全文
posted @ 2019-10-15 14:18 DAGGGGGGGGGGGG 阅读(235) 评论(0) 推荐(0) 编辑
摘要: "题目" dp状态定义的好题,初看这个题其实并不好想到他的状态,但是可以根据状态的定义,需要满足最优子结构。还有比较重要的一点就是方便转移方程。 首先我们定义dp[i]表示前i个数所能得到的最多个数,发现并不好转移,因此我们考虑多加一维状态j表示前i个数选j个的最多个数。这样就可以得出状态转移方程了 阅读全文
posted @ 2019-10-14 10:53 DAGGGGGGGGGGGG 阅读(141) 评论(0) 推荐(0) 编辑
摘要: "题目" 一道入门的dp,首先要先看懂题目要求。 容易得出状态$dp[i][j]$定义为i时间疲劳度为j所得到的最大距离 有两个坑点,首先疲劳到0仍然可以继续疲劳。 有第一个方程: $dp[i][0]=max(dp[i 1][0],d[i][0])$ 而如果要休息则一定要休息到疲劳值为0才可以停止。 阅读全文
posted @ 2019-10-13 09:53 DAGGGGGGGGGGGG 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 每个海面要么放要么不放,因此可以用二分图匹配, 考虑把同一行内的能互相看到的点放到一个行块里,同一列内能看到的点放到一个列块里,然后每一个行块都可以和该行块里所有海面的列块连边,选了这个行块,就必须选且只选择一个该行块里的一个海面对应的列块。 c++ include include include 阅读全文
posted @ 2019-10-11 17:14 DAGGGGGGGGGGGG 阅读(99) 评论(0) 推荐(0) 编辑
摘要: "题目" ) 二分好题 首先用二分找最小的绝对值差,对于每个a[i]都两个方向扫一遍,先都改成差满足的形式,然后再找a[k]等于0的情况,发现如果a[k]要变成0,则从他到左右两个方向上必会有两个连续的区间也随之变化, 然后我们有一点K, 使K点=0时,可以分别向左和右影响区间的值。并且影响之后的值 阅读全文
posted @ 2019-10-11 14:38 DAGGGGGGGGGGGG 阅读(129) 评论(0) 推荐(0) 编辑
摘要: n SAT 是给定多个条件,问是否有一个赋值方式使所有条件得到满足。 每个条件都有n个变量, 而2 SAT 是存在时间复杂度为$O(nm)或O(n+m)$的做法($m$是条件数)的算法的问题。 2 SAT往往是判断是否有方案使条件得到满足的一个算法。 建图: 求解2 SAT问题,需要转移到图上,对于 阅读全文
posted @ 2019-10-09 10:51 DAGGGGGGGGGGGG 阅读(235) 评论(0) 推荐(0) 编辑
摘要: "题目" 首先分析数据范围发现m很大,所以线性做法肯定不行,因此考虑倍增,即预处理出每个点跳1次后的位置。然后只用两个数组类似于快速幂,推出每个点跳m次后的位置。 预处理离每个点第k小的点,可以用长度为k的尺子尺取。 c++ include include include include inclu 阅读全文
posted @ 2019-10-08 18:19 DAGGGGGGGGGGGG 阅读(136) 评论(0) 推荐(0) 编辑
摘要: "题目" 该题目可以用辅助数组l[i], r[i]来指向以data[i]为最小值的左端点和右端点。然后最后枚举每个data[i]寻找每个data[i]的美丽值的最大值。 然后辅助数组可以用单调栈求出。 c++ include include include include include inclu 阅读全文
posted @ 2019-10-08 16:25 DAGGGGGGGGGGGG 阅读(116) 评论(0) 推荐(0) 编辑
摘要: "题目" 先判断是否有解,然后开两个栈,分别存进入递归时间复杂度为O(1)的变量,和时间复杂度为O(n)的变量,最后取最大值。 include using namespace std; int T; int tong[1000100]; stack s, s2; int main() { // fr 阅读全文
posted @ 2019-10-08 13:50 DAGGGGGGGGGGGG 阅读(173) 评论(0) 推荐(0) 编辑
摘要: "题目" DP,及DP的优化。 这个题显然是一个DP,状态也比较好定义, 定义dp[i]表示双方总共取i个数时,所得到的最大差值。 然后可以得出状态转移方程,即 $dp[i]=max(data[j] dp[j 1]);j define N 1010010 define int long long u 阅读全文
posted @ 2019-09-25 16:04 DAGGGGGGGGGGGG 阅读(130) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 19 下一页