摘要: 这题比较容易看出来是dp,但是不容易看出来的一点是,如果当前点我们能够选,那么只要在这个范围内的可行答案我们都可以挑选,这是因为 s<t<d,如果当前点可以选,那么不会存在之前选过这些点,因为一旦选过,当前点就不能选。所以我们用优先队列预处理一下当前点选啥 之后dp求取即可 #include<bit 阅读全文
posted @ 2020-09-02 20:32 朝暮不思 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 队长:zwz 队内大佬:cyj 饮水机管理员:cty 获奖记录: 2021ICPC济南:Ag 2021CCPC桂林:Cu 2021CCPC湘潭邀请赛: Ag 2021浙江省赛:Ag 2020浙江省赛:Cu 2020CCPC绵阳:Cu 2020团体设计天梯赛:Ag 2020ICPC上海:Fe(无Fuc 阅读全文
posted @ 2020-09-02 16:45 朝暮不思 阅读(360) 评论(0) 推荐(1) 编辑
摘要: A 模拟大数取模 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int maxn = 10000000 + 1; const int mod = 10001; char s[maxn 阅读全文
posted @ 2020-09-02 16:43 朝暮不思 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 这题首先理解题意想暴力,在一个子树中,A想要两点异或值最大,B想要异或最小,A先选 这其实就是告诉我们,A要选择一个点,使得他和其他点的异或值的最小值最大。 对于异或贪心取值,一般来说,很容易想到使用01Trie上贪心。但是我们要求每个子树上的情况,暴力显然是平方级别。 这个时候,我们遇到的问题是, 阅读全文
posted @ 2020-09-02 16:34 朝暮不思 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 启发式合并是自底向上的,将小的集合合并到大的集合上的一种方法,从直觉上来说这样比较优,事实上也证明了这一点。 这题的贪心想法是,如果我当前的点是空的,那么我把子树中最深的点移到这,这样是最优的。那么合并子树集合信息来往上做就是采用启发式合并 #include<bits/stdc++.h> using 阅读全文
posted @ 2020-09-02 11:00 朝暮不思 阅读(226) 评论(2) 推荐(0) 编辑