上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 55 下一页
摘要: #include<bits/stdc++.h> using namespace std; inline int read() { int x=0,f=1;char c=getchar(); while(c<'0'||c>'9') {if(c=='-') f=-1;c=getchar();} whil 阅读全文
posted @ 2021-05-23 13:22 zlc0405 阅读(46) 评论(0) 推荐(0) 编辑
摘要: #include<bits/stdc++.h> using namespace std; inline int read() { int x=0,f=1;char c=getchar(); while(c<'0'||c>'9') {if(c=='-') f=-1;c=getchar();} whil 阅读全文
posted @ 2021-05-23 00:46 zlc0405 阅读(77) 评论(0) 推荐(0) 编辑
摘要: D.MEX Tree 题意: 给出一棵树,下标0到n-1。 对从0到n的每个k,求出有多少条路径MEX=k。 题解: 树上分类讨论+容斥 首先容斥计算0的答案,有多少条路径不包含0? 答案是取出0的所有相邻节点,他们内部的子树的路径数量加起来。 然后容斥计算1的答案,有多少条路径包含0不包含1? 所 阅读全文
posted @ 2021-05-22 21:06 zlc0405 阅读(192) 评论(0) 推荐(0) 编辑
摘要: Codeforces Round #721(Div.2)题解(1527A~E) Prepared by Wogua_boy 整完OS期中考终于把这场补完了,少有的能让我全部补完的场.. A.And Then There Were K 题意: 给出一个数$n$,找到最大的$k$,使得$n&(n-1)& 阅读全文
posted @ 2021-05-22 21:03 zlc0405 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 建两个图,正图和反图。 正图里的边权是现金,反图里的边权是旅游金。 然后分别以1为起点在正图上跑最短路,以n为起点在反图上跑最短路。 这样计算出每个点的答案,取最小,不带修改的情况就做完了。 带修改的情况放线段树上维护一下就好了。 注意巨大坑点:不保证图连通。 #include<bits/stdc+ 阅读全文
posted @ 2021-05-02 21:51 zlc0405 阅读(103) 评论(0) 推荐(1) 编辑
摘要: 题意: 给出一棵树。 对于每个点,求出距离它不超过k的所有点的点权和。 题解: 定义$f(i,j)$表示第i个点的j范围内的点权和。 定义$gg(i,j)$表示第i个点向下j范围内的点权和。 \(gg(i,j)=c_i+\sum_{v \in son_u}gg(v,j-1)\) \(f(i,j)=f 阅读全文
posted @ 2021-04-11 14:45 zlc0405 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出一棵树, 每个点有点权,每条边有边权。 定义答案为所有点自身的点权乘上它到根节点的距离之和。 询问怎么选择根节点使得答案最小。 题解: 计算出每个点子树内的所有点权之和。 计算出每个点子树外的所有点权之和。 换根的时候,答案加上子树外的所有点权之和乘上这条边的权值,减去子树内的所有点权之 阅读全文
posted @ 2021-04-11 13:46 zlc0405 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出一棵树。 询问最少断几条边,使得存在大小为P的连通块。 题解: 以每个点为根节点跑树上背包即可。 时间复杂度$O(n^3)$ #include<bits/stdc++.h> using namespace std; const int maxn=200; int n,p; vector< 阅读全文
posted @ 2021-04-09 14:31 zlc0405 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出一棵树。 每个叶子有点权,每条边有边权。 问你最多选多少叶子,使得总边权小于等于总点权。 题解: 树上背包。 定义状态$f(i,j,k)$表示子树$i$内选取$j$个叶子仅考虑$i$的前$k$个儿子的最优答案。 这里注意状态的转移的一些细节。 //f(i,j,k)表示在子树i内选择j个用 阅读全文
posted @ 2021-04-08 15:59 zlc0405 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出n个区间,每个区间有颜色。 m次询问,每次询问:这n个区间中所有被包含在[x,y]这一区间中的区间,它们的颜色是否取遍了[l,r]中的所有颜色。 题解: 先对所有线段的左右端点离散化。将所有线段按左端点排序。 然后对每个左端点x建一颗线段树。 线段树的下标是颜色,值为该颜色左端点大于等于 阅读全文
posted @ 2021-04-07 11:37 zlc0405 阅读(49) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 55 下一页