VIrtuoso

两把多兰剑加个布甲鞋

导航

2018年11月19日 #

Codeforces Round #520 (Div. 2) E. Company(dfs序判断v是否在u的子树里+lca+线段树)

摘要: 题意 给一颗树n,然后q个询问,询问编号l~r的点,假设可以删除一个点,使得他们的最近公共祖先深度最大。每次询问,输出删除的点和祖先的深度 思路 考虑dfs序来判断v是否在u的子树里: dfn[u] define M 100005 define pb push_back define inf 100 阅读全文

posted @ 2018-11-19 21:18 VIrtuoso 阅读(185) 评论(0) 推荐(0) 编辑

Codeforces Round #513 by Barcelona Bootcamp C. Maximum Subrectangle(双指针+思维)

摘要: 题意 给两个数组,a数组有n个元素,b数组有m个元素,两个数组元素互相相乘形成n m的矩阵,找一个子矩阵,元素和 子矩阵的和等于两个数组的连续子序列和相乘,面积大小等于子序列长度相乘 即要在两个数组中找出两个连续的子序列,保证他们的和相乘 define ll long long using name 阅读全文

posted @ 2018-11-19 20:50 VIrtuoso 阅读(134) 评论(0) 推荐(0) 编辑

Educational Codeforces Round 51 F. The Shortest Statement(lca+最短路)

摘要: 题意 给一个带权联通无向图,n个点,m条边,q个询问,询问两点之间的最短路 其中 m n ans=min(d[u]+d[v] 2 d[lca(u,v)],min(d[1~tot][u]+d[1~tot][v])) c++ include define ll long long define mk m 阅读全文

posted @ 2018-11-19 20:05 VIrtuoso 阅读(110) 评论(0) 推荐(0) 编辑

Educational Codeforces Round 51 D. Bicolorings(dp)

摘要: 题意 一个2 n的矩阵,你可以用黑白格子去填充他,求联通块数目等于k的方案数,答案%998244353. 思路 按列dp,定义状态dp[i][j][k]为前i列,有j个联通块,最后一列为k的方案数 处理出列状态之间的转移(会新产生多少个新的联通块) 注意初始化问题 c++ include defin 阅读全文

posted @ 2018-11-19 19:51 VIrtuoso 阅读(100) 评论(0) 推荐(0) 编辑