摘要:
贪心 从上级比赛向下级比赛枚举 用一个堆维护一下可以作为对手人选的价值 每次取最小即可 如果当前比赛不用花钱就能打赢就跳过 没做出来的原因在于还想维护每个对手的手下败将 其实根本不用维护 因为剩下的人总能合理分配 只要比这个人弱的人数量足够就行 因为只要弱就行 #include <bits/stdc 阅读全文
摘要:
贪心 一条边的价值肯定大于其子树里边的价值 那么先将叶子节点对应的边放进一个$set$ 从后往前扫 每次选$set$里最小的配对 如果出现新的叶子加入$set$ 每条边的价值就是自己以及子树中最大的编号 有点类似超级钢琴的贪心 不过简单很多 #include <bits/stdc++.h> usin 阅读全文
摘要:
计算几何 先枚举被围住的点 计算合法比较困难 考虑计算不合法方案数 枚举其他点 选一个点连线作为基准边 当其他三个点连线都在基准边的一侧时不合法 极角排序+双指针统计即可 时间复杂度$O(n^{2}logn)$ #include <bits/stdc++.h> using namespace std 阅读全文
摘要:
状压dp 看起来不是很好状压 反过来考虑计算贡献 $dp[S]$表示当前已经放置了集合$S$的字母 $S$内部距离之和以及$S$内部摆放方法距离对于外部还未选的字母的贡献和 这样外面怎么放不会影响当前状态的最优 因为当添加一个字母在末尾 它和$S$的未计算的贡献只有一个间隔 之前的间隔已经计算了 其 阅读全文
摘要:
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) { 阅读全文