摘要:
Martian Sunrise 题意:给你一个曲谱由音符组成 曲谱长度是n,有m行,每行有7个音符。一个演奏家可以演奏任意两行的所有音符。曲谱按顺序演奏,问你至少需要几个演奏家,可以把曲谱演奏完。 分析:状态压缩,把字符串化成数,用二进制的或与完成,具体见代码 AC_Code: 1 #include 阅读全文
摘要:
Sleep Buddies 算法:状态压缩, 把每一个集合都压缩成一个数字。 使用方法:把每个状态都进行1<<(x-1)压缩,这样的话我们可以保证,每个二进制上代表的那个数字是1就代表存在这个属性。 AC_Code 1 #include <bits/stdc++.h> 2 using namespa 阅读全文
摘要:
我们知道,任何一个正整数都可以被表示成一个二进制数。如: \[\left ( 8 \right )_{10} = \left ( 1000 \right )_{2}\] 那么定义一个函数 \[f=lowbit(x)\] 代表x的二进制表达式中最低位的1所对应的值 比如: \( lowbit(\lef 阅读全文
摘要:
什么是网络流? 在生活中,什么比较像图呢?答案一定不少吧,其中我想举的例子就是水管了。水管相互之间都是连通的,会构成一张图。从供水的一端出发,水必然沿一个固定的方向流向最终的汇聚点,也就是有向图。同时,在条件的限制下,水管有粗有细,不同的水管单位时间内的流水量限制是不同的,可以看做是带权图。运输货物 阅读全文
摘要:
Sereja and Swaps AC_Code: 1 //枚举区间,o(n^2),然后将区间内最小的数逐个和区间外面最大的数交换 2 #include <bits/stdc++.h> 3 using namespace std; 4 typedef long long ll; 5 const in 阅读全文
摘要:
multiset:允许容器内有重复的元素 set:不允许有重复元素 阅读全文
摘要:
定义 欧拉路径: 经过图中每一条边恰好一次的路径 欧拉回路: 起点和终点是同一个点的欧拉路径 欧拉图: 有欧拉回路的图 半欧拉图: 有欧拉路径的图 判断 怎么判断一张图有没有欧拉路径或欧拉回路呢? 有向图 如果图中所有的点的入度都等于出度并且这张图的基图联通,那么就存在欧拉回路。 简单感性的证明:因 阅读全文
摘要:
求\(\sum_{i=1}^N \lfloor \frac Ni \rfloor\) ,\(N \leq 10^{12}\) 显然不能直接做, 数论性质: $ 1. \large \lfloor \frac Ni \rfloor$最多只有\(2\sqrt{N}\)种取值 证明:对于\(i\le \s 阅读全文
摘要:
蓝魔法师 分析:sz保存包括自身的所有子孙总节点数(为了求连通块的大小做准备) dp[i][j]表示只考虑根为i的子树,包含节点i的联通块大小为j的方案个数 dp[i][0]表示dp[i][1]+...+dp[i][k] 一棵子树根节点为u的连通块(包括u)对于它的一个子节点v,当u访问到v时,假设 阅读全文
摘要:
选点 分析:对于一颗树选出得点的权值的关系为:根节点 < 右子树 < 左子树。所以我们可以按照根节点、右子树、左子树进行 dfs 遍历,然后按照这个 dfs 序求 LIS 即为答案。用二分优化求LIS AC_Code 1 #include <iostream> 2 #include <bits/st 阅读全文