上一页 1 ··· 62 63 64 65 66 67 68 69 70 ··· 109 下一页

2019年5月23日

树形dp——cf1092F

摘要: 被傻逼题降智了。。 就是第一次dfs 时 求一次size,一次deep数组 然后第二次dfs时直接求最大值 先把结点1的值求出来, u->v过程中,v子树的所有结点深度-1,v外的所有结点深度+1,这个过程等价于 u的值-size[v]+size[1]-size[v] 所以第二次dfs时把父亲的值传 阅读全文

posted @ 2019-05-23 19:09 zsben 阅读(167) 评论(0) 推荐(0) 编辑

线段树区间合并+k维空间的曼哈顿距离——cf1093G好题

摘要: 和去年多校的CSGO一样,用状态压缩来求Manhattan距离的最大值 然后要用线段树维护一下区间最大值 阅读全文

posted @ 2019-05-23 17:04 zsben 阅读(335) 评论(0) 推荐(0) 编辑

贪心+MST——cf1095F

摘要: 开始看错求最短路了。。 但是MST的思路和最短路也差不多 就是先不考虑特殊边,用最小点做一个生成树 然后加入特殊边,进行一次krus即可 阅读全文

posted @ 2019-05-23 13:27 zsben 阅读(214) 评论(0) 推荐(0) 编辑

括号匹配——cf1095E

摘要: 正解应该是求后缀和前缀 但是多情况讨论好像也能过。。 大概分为: 首先排除不能改的情况 1.改左括号 2.改右括号 阅读全文

posted @ 2019-05-23 11:34 zsben 阅读(169) 评论(0) 推荐(0) 编辑

2019年5月22日

线性dp——cf1096D

摘要: dp[i][j]表示到第i位,与hard的匹配状态到达了第j位 每位有两种决策:消或者不消 分别转移一下即可 转移代码 阅读全文

posted @ 2019-05-22 23:07 zsben 阅读(90) 评论(0) 推荐(0) 编辑

树的直径+质因子——好题!cf1101D

摘要: /* 因为质因子很少 状态转移时用dp[u][i]表示结点u的第i个质因子所在的最大深度即可 等价于带限制的求直径 */ #include #include using namespace std; #define maxn 200005 int n,a[maxn],ans; vectorG[maxn],p[maxn],dp[maxn]; void dfs(int u,int pre){ ... 阅读全文

posted @ 2019-05-22 22:08 zsben 阅读(213) 评论(0) 推荐(0) 编辑

字符串——cf1109B

摘要: /* 先判不可行的情况:n/2的是单一字符 判只切割一次能不能组成回文 枚举每个切割点,交换两个串的位置 剩下就是割两次 */ #include #include using namespace std; #define maxn 5005 char s[maxn]; int n; int judge(int pos){ vectorv; v.clear(); ... 阅读全文

posted @ 2019-05-22 17:41 zsben 阅读(160) 评论(0) 推荐(0) 编辑

线段树+欧拉函数——cf1114F

摘要: 调了半天,写线段树老是写炸 阅读全文

posted @ 2019-05-22 16:39 zsben 阅读(326) 评论(0) 推荐(0) 编辑

等差数列+随机数——cf1114E

摘要: 先确定上界 然后用查询随机位置的数,求gcd作为公差即可 阅读全文

posted @ 2019-05-22 11:46 zsben 阅读(257) 评论(0) 推荐(0) 编辑

2019年5月21日

区间dp——好题cf1132F

摘要: 真的是很好的题 要通过左端点 l 和中间点k进行比较(去找和l同色的k即可) 然后n3来转移 然后是记忆化写法 阅读全文

posted @ 2019-05-21 23:26 zsben 阅读(205) 评论(0) 推荐(0) 编辑

上一页 1 ··· 62 63 64 65 66 67 68 69 70 ··· 109 下一页

导航