上一页 1 2 3 4 5 6 7 ··· 53 下一页
摘要: 贪心 从上级比赛向下级比赛枚举 用一个堆维护一下可以作为对手人选的价值 每次取最小即可 如果当前比赛不用花钱就能打赢就跳过 没做出来的原因在于还想维护每个对手的手下败将 其实根本不用维护 因为剩下的人总能合理分配 只要比这个人弱的人数量足够就行 因为只要弱就行 #include <bits/stdc 阅读全文
posted @ 2020-01-27 23:14 19992147 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 贪心 一条边的价值肯定大于其子树里边的价值 那么先将叶子节点对应的边放进一个$set$ 从后往前扫 每次选$set$里最小的配对 如果出现新的叶子加入$set$ 每条边的价值就是自己以及子树中最大的编号 有点类似超级钢琴的贪心 不过简单很多 #include <bits/stdc++.h> usin 阅读全文
posted @ 2020-01-27 23:07 19992147 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 计算几何 先枚举被围住的点 计算合法比较困难 考虑计算不合法方案数 枚举其他点 选一个点连线作为基准边 当其他三个点连线都在基准边的一侧时不合法 极角排序+双指针统计即可 时间复杂度$O(n^{2}logn)$ #include <bits/stdc++.h> using namespace std 阅读全文
posted @ 2020-01-27 23:00 19992147 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 状压dp 看起来不是很好状压 反过来考虑计算贡献 $dp[S]$表示当前已经放置了集合$S$的字母 $S$内部距离之和以及$S$内部摆放方法距离对于外部还未选的字母的贡献和 这样外面怎么放不会影响当前状态的最优 因为当添加一个字母在末尾 它和$S$的未计算的贡献只有一个间隔 之前的间隔已经计算了 其 阅读全文
posted @ 2020-01-27 22:54 19992147 阅读(156) 评论(0) 推荐(0) 编辑
摘要: A 枚举一下 #include <bits/stdc++.h> using namespace std; int n; string End; string s[55]; int t[55]; int main() { cin >> n; for(int i = 1; i <= n; ++i) { 阅读全文
posted @ 2020-01-27 22:37 19992147 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 我们把所有点分成四类 $A_{0,0},A_{0,1},A_{1,0},A_{1,1}$ 发现如果$A_{0,0}+A_{1,1} > 0$并且$A_{0,1}+A_{1,0} > 0$或者$A_{0,0}+A_{0,1} > 0$并且$A_{1,0} + A_{1,1} > 0$,这样可以直接得出 阅读全文
posted @ 2019-12-30 15:40 19992147 阅读(332) 评论(4) 推荐(0) 编辑
摘要: 暴力 把区间按左端点排序 然后用set维护右端点 暴力加边 加到n条不加了即可 然后dfs一遍判断 比赛的时候想到了前一半 但是没想到加到n条跳 一直想合并已经连接的点 希望均摊比较小 然后就爆炸了 问题出在思考判是否是树的地方 思维僵化 #include <bits/stdc++.h> using 阅读全文
posted @ 2019-12-20 01:05 19992147 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 其实我们发现一个人欠债跟债主是谁没关系 因为总和是不变的 然后根据题目给出的操作 我们希望账面数字尽量小 于是我们每次随便选一正一负 让正的借钱给负的 这样账面数字就会减小 于是贪心选取即可 其实也不是贪心 可以说是任意选取 复杂度$O(n)$ 比赛的时候陷入思维误区 不断向图论方向想 得出跟这差不 阅读全文
posted @ 2019-12-18 22:56 19992147 阅读(182) 评论(0) 推荐(0) 编辑
摘要: dfs 本质上这道题是求割点所在子树大小,但是由于只有两个点,所以直接$dfs$求即可 #include <bits/stdc++.h> using namespace std; const int maxn = 2e5 + 5; int n, m, a, b, ca, cb; int vis[ma 阅读全文
posted @ 2019-12-17 18:39 19992147 阅读(110) 评论(0) 推荐(0) 编辑
摘要: dp $dp[i][j][k]$表示第一个串匹配到$i$,第二个串匹配到$j$,前缀和为$k$ 由于前缀和不会超过$n$,所以直接$bfs$转移即可 输出方案记录$dp$前继即可 时间复杂度$O(n^3)$ #include <bits/stdc++.h> using namespace std; 阅读全文
posted @ 2019-12-17 18:37 19992147 阅读(148) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 53 下一页