个人模板记录II♪(^∇^*)♪(^∇^*)♪(^∇^*)

1、树的重心(树的重心定义为:找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心

2、O(n^2)TSP:

3、set排序

4、Java A+B

5、ex_gcd:

6、逆元
7、卡特兰数公式:F【n+1】=(4*n-2)/(n+1)*F【n】;

8、2-Sat+输出可行解。

9、转负二进制:

10、最长递减子序列(nlogn)

11、带权并查集:

12、并查集

13、最小表示法

14、优先队列:

15、01字典树贪心查询+建立+删除

16、set使用实例1+lower_bound(val);

17、线段树,最大值查询位子。

18、Cnm%

19、预处理素数

20、分解质因子:

21、nlogn LIS

22、最长不递减

23、Floyd最小环

24、分组背包

25、后缀模???

26、01分数规划

当有求:Σ(a【i】)/Σ(b【i】)的最大(小)值的时候,我们可以将问题转化变成减法:

设定函数F(L)=Σ(a【i】)-L*Σ(b【i】);

若此时F(L)>=0,那么肯定有Σ(a【i】)-L*Σ(b【i】)>=0,那么就有:Σ(a【i】)/Σ(b【i】)>=L;

根据化出的等式可以得知,我们有比L更大。那么我们这里可以二分枚举这个L,同时也就是在二分枚举最终的答案。

若有F(L)>=0,我们要增大答案,相反减小答案即可。


27、离散化+Bfs

FZU 2235

28、Java求斐波那契数列


29、三分查找(int)

30、Hash

31、倍增LCA:

32、树链剖分最基础操作:

33、单调队列基础操作

34、斜率优化Dp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值