摘要:
传送门【题目分析】用命分析,这个数据范围很状压。。。。。。然后就状压啊。数组dp[i][j][k]表示前i-1个人已经拿到菜,j枚举i以及他后面7个的拿菜情况,k表示上一个吃饭的位置(相对的)注意一下枚举的上下界即可。【代码~】#includeusing namesp... 阅读全文
摘要:
传送门【题目分析】维护非常巧妙。。。。看了看网上的做法才知道每个节点可以维护一个堆qwq每次询问相当于求不经过该点路径的最大权值,所以考虑每次加入一条路径的时候,将除这条路径上的所有点更新即可。所以就用堆来维护。。。开两个堆,一个维护压入堆的元素,一个维护出堆的元素,... 阅读全文
摘要:
士兵站队问题#includeusing namespace std;int n,x,y,cnt;int du[1005],Head[1005],nxt[2010],to[2010];int vis[1005],use[1005];queue q,Q;void add(... 阅读全文
摘要:
内网传送门【题目分析】考虑一个非法直径,如果将所有距离小于该直径的点连边(上下界缩为一个点),那么一定存在一条路径联通上下界。所以用类似kruskal的做法,先将这些边排序,然后从小到大加边,如果加到一条边使得上下界联通,那么边权即为答案。【代码~】#includeu... 阅读全文
摘要:
内网传送门【题目分析】菜的只能打线段树拿60滚粗。。。。。CGL太巨了!!!!AK爷啊!!!!考虑一个合法区间,那么区间gcd一定为区间最小值,所以60pts线段树做法就很脑残了。然后因为没有修改操作就用ST表可以得80(但我不会啊QAQ)考虑再转化一下,合法区间内所... 阅读全文
摘要:
传送门【题目分析】蒟蒻并不会树上差分。。。。。所以只能用树链剖分套线段树维护。。。。。对于每条路径,都相当于将所有经过的点+1,最后查询最大值即可。【代码~】#includeusing namespace std;const int MAXN=5e4+10;const... 阅读全文