摘要:
分析 考虑 $n$ 的二进制数下的 $1$ 的个数为 $bitcount(n)$ . 则 $n$ 最少可以合并为 $bitcount(n)$ 杯水. 如果 $bitcount(n) k$ ,则让 $n$ 的最右端的 $1$ 向左进位(有可能与左边的 $1$ 合并,也可能只是单纯地把 1 的位置向左移 阅读全文
摘要:
关键在于读题 知道要求的东西后,直接建立数据结构直接暴力即可 时间复杂度 $O(n^3)$ <! more cpp include using namespace std; const int N=302; int n,s; vector e[N],p[N];//next path int pre[ 阅读全文
摘要:
分析 汉诺四塔 设 $f[i]$ 表示求解 $i$ 盘四塔的最少步数,设 $d[i]$ 表示求解 $i$ 盘三塔的最少步数: $$ d[i]=2\cdot d[i 1]+1\\ f[i]=\min_{j=1}^{i 1}\left\{2\cdot f[j]+d[i j]\right\} $$ 第二个 阅读全文
摘要:
分析 对于一条信息 $x,y$,将两者之间的牛的高度 $ 1$. 考虑差分,将区间修改转化为单点修改 注意,排除重复信息 cpp include include include using namespace std; const int N=10004; int n,r,h;//I 省略 int 阅读全文
摘要:
分析 简单递归模拟即可 注意转向 代码 cpp include include define int long long using namespace std; int t,n,a,b; int city(int k,int p,int& x,int& y){//2^2k,标号为 p 时的房屋的坐 阅读全文
摘要:
摘要 题意:一个 n 个点 m 条边的无向图 $n\equiv 0(\bmod 3)$,保证存在一个大小为 $\frac{2}{3}n$ 的团,要求输出一个大小为 $\frac{1}{3}n$ 的团.$n\leq 3000$. <! more 这道题的特殊之处在于找团,而它保证有一个 $\frac{ 阅读全文
摘要:
按题意模拟即可 关于题意 语法的检查是在整个程序执行前先进行的,因此即使在无法进入的循环中(x y),变量名也不能重名 输入的数据要读完,不要中途 break(如果一边检查语法一边判断复杂度) 代码实现 阅读全文
摘要:
分析 相同大小箱子个数最多的即为答案 然后从大到小依次填充 ans 个序列即可 代码 cpp include include include include using namespace std; const int N=10006; int n,a[N],mx,p,dfn; struct qxx 阅读全文
摘要:
枚举第一行的点击方案。 则点完后剩余的黑灯只能由第二行同一列的点击来弥补 并且第二行除了弥补第一行的黑灯之外,不能点其他灯,否则会使第一行的灯灭 上述构成了递推关系,则递推到最后一行即可。 二进制位运算优化;注意最后一行的状态的判断 复杂度 $O(n2^n),n=5$. 代码 阅读全文
摘要:
暴力枚举油滴的编号的排列(next_permutation),然后按序一个一个扩展。面积的求最小值即可。也可以深搜。 复杂度 $O(n!\times n^2)$. cpp include include include define sq(a) ((a) (a)) define PI 3.14159 阅读全文