摘要:
题意:给一个数字,看他最小是第几个菲波那切数列的前缀。 分析: 大数模板就是吊哦。 将菲波那切数列前500个数字放到字典树上。注意插入的时候不能像普通一样,只在尾节点处标记,而是一路标记下去。 #include <bits/stdc++.h> using namespace std; const i 阅读全文
摘要:
之前做过这个题目,现在回想起来,又有新的柑橘。 求必须出去的骑士人数。 每一个双连通分量,如果是一个奇圈,那么一定是二分图染色失败。 依次遍历每个双连通分量,但是,对于邻接表中,有一些点不是双连通分量里面的,于是要重新编号bccno,因为割点bccno只有一个值, 但是,他要多次使用,因此要重新编号 阅读全文
摘要:
之前做的大整数,都是一位一位操作。 优化方案:压缩方案。 模板: + - * 操作符重载 #include<cstdio> #include<iostream> #include<cmath> #include<algorithm> #include<cstring> #include<string 阅读全文
摘要:
题意:在树的最大独立集的基础上,加上权值。求最大。 分析: 采用刷表的方式写记忆化,考虑一个点选和不选,返回方式pair 型。 首先,无根树转有根树,dp(root)。 注意的是:u不选,那么他的子节点,可以选,或者不选。WA了无数次。 #include <cstdio> #include <vec 阅读全文
摘要:
题意:有一个n个按钮的锁,按下一些按钮打开门,有多少开门方式,其中,一些按钮可以选,可以不选,选中的按钮 可以分成一些集合,集合之间无序,是同时按下的。 分析: 1、首先选择 i 个按钮,组合数 2、枚举分成的集合 3、i 个按钮分成无序集合,第二类斯特林数 4、集合之间有序,排列数 #includ 阅读全文
摘要:
题意:有n个药片,每次吃半片,吃2n天,那么有多少种吃法。 分析:如果说吃半片,那么一定要吃过一整片,用 ) 表示吃半片,用 ( 表示吃整片,那么就是求一个正确的括号匹配方案数,即卡特兰数。 卡特兰数可以DP,也有一重循环的地推表达式:Catalan(n) = 2(2n-1)*Catalan(n-1 阅读全文