上一页 1 ··· 49 50 51 52 53 54 55 56 57 ··· 68 下一页
摘要: 如果想要判定是否是DAG,用拓扑排序是一个好选择,但是本题可以删一条边 如果真的傻傻的去枚举删边就难顶了 我们要想到,对于删边,其实就是入度-1,而我们知道,删完能拓扑,说明成功了,因此只要枚举点,对入度操作再跑拓扑,就能AC 这个转化还是很有意思的,我们来思考正确性,首先对于一个环,肯定因为到了某 阅读全文
posted @ 2020-04-04 19:54 朝暮不思 阅读(201) 评论(0) 推荐(1) 编辑
摘要: 在DAG上用拓扑排序求最长最短路似乎十分常见,我在做一道cf的题目时无意间看到这题 这题要求的是最长路,因此用拓扑序来求,为什么可以用拓扑序呢? 因为我们对于每个点,都会跟他相连的点被更新,因此就可以通过max操作,直到所有点被更新完,才会将他入队,那么这个点的最终值也就被确定 #include<i 阅读全文
posted @ 2020-04-04 18:39 朝暮不思 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 这道题本质上就是找左右边第一个比他小的数在哪,作为他的边界 因为数据范围比较大,所以我们考虑用到单调栈来写 可以先求左边,再反转数组重求,也可以直接到着求右边 如果反转数组,那么就要注意最后相减的表达式 #include<iostream> #include<cstring> #include<cs 阅读全文
posted @ 2020-04-04 15:37 朝暮不思 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 本题比较简单,就是线段树的几个基本操作,而素数,我们自然想到用素数筛筛一下后直接判定即可 这里有几个小坑点,在单点更新的时候也需要pushdown,因为区间更新可能会影响到最后节点的值 另外按照我的写法,我把lazy和数值分开表示,所以在pushdown的时候要特判是否到了叶子,如果到了,num也需 阅读全文
posted @ 2020-04-04 11:35 朝暮不思 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 这道题乍一看是最长上升子序列(其实也是) 但是这里要求是+1的最长上升子序列,我们自然想到由dp[a[i]-1]+1转移过来。但是很坑的是这个数据很大 有1e9,我当时还以为有什么精妙的解法,没想到是利用map进行映射。既然数组存不下,那就用存的下的去存 只要遍历map找到最大的,之后倒着枚举就行了 阅读全文
posted @ 2020-04-03 21:37 朝暮不思 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 这道题暴力没办法做,所以要从题目式子找性质,我们发现,分母的大小最多不会超过30,而我们要求的是一个和,所以想到对分母相同的数进行前缀处理 这样求和很快,也就是说,我们进行预处理,把这些数的30个分母情况都列举一遍,而求的时候,利用二分判断分母的位置,所以在开始前先对a数组排序,就变成了一段一段求和 阅读全文
posted @ 2020-04-03 16:42 朝暮不思 阅读(161) 评论(0) 推荐(0) 编辑
摘要: dp问题的状态设计都是十分巧妙,根据y总的说法,可以把他看作集合,对于转移,考虑最后一个不同量/ 对于dp状态,首先要观察题目的信息,看他有什么,我认为所有的dp的状态都能从题目中猜出来,这题目告诉你括号可以移动。 我们进一步发现,左括号只能与右括号相换,所以所有左括号的相对顺序是不变的,同理右括号 阅读全文
posted @ 2020-04-03 10:49 朝暮不思 阅读(178) 评论(0) 推荐(1) 编辑
摘要: 这道题是最长上升子序列求方案数的题目 对于这种题目,需要多几个变量,一个是前置,一个是当前id 因为我们肯定想到要对他进行排序 在求方案数的时候只需要从末端一直往前缀走就行,直到-1 这题因为前提要大于这个信,所以在输入时需要判断一下 #include<iostream> #include<cstr 阅读全文
posted @ 2020-04-02 15:11 朝暮不思 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 一看数据范围很小,直接暴力搜索判断,枚举m位看能否满足条件,递归的时候分奇偶,因为每次加的方向不一样,之后比对一下是否相同以及是否比他大 #include<iostream> #include<cstring> #include<cstdio> #include<map> #include<algo 阅读全文
posted @ 2020-04-02 14:20 朝暮不思 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 1.首先明确这道题想要求取的是在l-r中新认识的人的对数 如果想要知道新认识的人是多少,那么我们可能会考虑到上次认识的人的左右边界。并且可以想象到的是,在一个区间中,右边的人新认识的左边的人,其实就是左边的人新认识的右边的人 如果重复的计算,那么最后要/2。所以我们可以直接考虑有边界 2.有一个性质 阅读全文
posted @ 2020-04-01 22:38 朝暮不思 阅读(144) 评论(0) 推荐(0) 编辑
上一页 1 ··· 49 50 51 52 53 54 55 56 57 ··· 68 下一页