VIrtuoso

两把多兰剑加个布甲鞋

导航

上一页 1 ··· 6 7 8 9 10 11 12 下一页

2018年11月30日 #

Codeforces Round #523 (Div. 2) E. Politics(最小费+思维建图)

摘要: 题意 有n个点( 假设v为u的子孙节点且p[u] 0(有限制),sum=p[v1]+p[v2]+..+p[vn], sum p[u],则对于本棵树来说不存在满足条件的选点情况 sum define N 2005 define M 4000000 define inf 0x3f3f3f3f using 阅读全文

posted @ 2018-11-30 12:18 VIrtuoso 阅读(218) 评论(0) 推荐(0) 编辑

2018年11月29日 #

Codeforces Round #523 (Div. 2) F. Katya and Segments Sets (交互题+思维)

摘要: 题意 假设存在一颗完全k叉树(n define pb push_back using namespace std; char s[10]; int n,k,d,a,b,vi[2000],i,cnt; vectorp,P; int pw(int bs,int x){ int ans=1; while( 阅读全文

posted @ 2018-11-29 21:11 VIrtuoso 阅读(155) 评论(0) 推荐(0) 编辑

2018年11月22日 #

Codeforces Round #510 (Div. 2) D. Petya and Array(离散化+反向树状数组)

摘要: 题意 给一个数组n个元素,求有多少个连续的子序列的和 (1sum[r]的数有多少,但是反向树状数组是包含自己当前这个点的,所以要加一 反向树状数组的右边界最好是数组大小 c++ include define M 400005 define ll long long using namespace s 阅读全文

posted @ 2018-11-22 21:10 VIrtuoso 阅读(118) 评论(0) 推荐(0) 编辑

2018年11月20日 #

Codeforces 1060E(思维+贡献法)

摘要: 题意 给一颗树, 在原始的图中 假如两个点连向同一个点,这两个点之间就可以连一条边,定义两点之间的长度为两点之间的最少边数,求加边之后任意两点长度之和 思路 一看到求任意两点,知道需要用每条边的贡献计算(每条边使用了多少次) 每条边的贡献等于边左边的点数 边右边的点数 然后就一直不知道怎么解决加边后 阅读全文

posted @ 2018-11-20 00:33 VIrtuoso 阅读(313) 评论(0) 推荐(0) 编辑

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) 编辑

2018年11月16日 #

Codeforces Round #514 (Div. 2) E. Split the Tree(倍增+贪心)

摘要: 题意 给出一棵树,每个点都有一个权值,要求你找出最少条链,保证每个点都属于一条链,而且每条链不超过L个点 和 每条链的权值和不超过S 题解 对于儿子来说,父亲节点只有一个,所以没有决策点。可以从下往上处理出,每个节点最远能爬到那个节点(过程就是倍增) 然后从下往上贪 (选择往上走的远的子节点) c+ 阅读全文

posted @ 2018-11-16 19:57 VIrtuoso 阅读(116) 评论(0) 推荐(0) 编辑

Educational Codeforces Round 54 E. Vasya and a Tree(树上差分数组)

摘要: 题意 给一棵树(n define ll long long define M 300005 define pb push_back using namespace std; struct N{ int d;ll v; }; ll sum[M],d[M]; vectorp[M]; vectorg[M] 阅读全文

posted @ 2018-11-16 16:50 VIrtuoso 阅读(140) 评论(0) 推荐(0) 编辑

上一页 1 ··· 6 7 8 9 10 11 12 下一页