模板
sprite_
这个作者很懒,什么都没留下…
展开
-
最长上升子序列nlogn 模板
参考了别人的博客,在此表示感谢,链接:http://blog.csdn.net/shuangde800/article/details/7474903代码:#include#include#define MAXN 40005int arr[MAXN],ans[MAXN],len;/* 二分查找。 注意,这个二分查找是求下界的; (什么是下界?详情见《算法入门经典》 P1原创 2015-11-04 19:26:04 · 801 阅读 · 0 评论 -
多重背包的二进制优化模板
我们都知道多重背包可以转化为01背包来做,最朴素的就是直接通过枚举个数来判断。不过通过二进制优化,可以节省一些时间。二进制是一个神奇的东西,应用到计算机里面有很多的妙用。二进制优化的原理如下:1、2、4可以组合出所有小于8的数;1、2、4、8可以组合出所有小于16的数。……例如,一个数10,我可以分成1、2、4、3。这样就将原本的10个价值相同的物品转化为价值不同的4个原创 2015-09-18 11:18:58 · 2065 阅读 · 1 评论 -
线性素数筛法模板
素数筛法模板:#include#include#include#define mod 258280327#define ll long longusing namespace std;int prime[100000]={2};bool is_prime(int k){ for(int i=0;prime[i]*prime[i]<=k;i++){ if(k%p原创 2015-09-18 11:30:06 · 555 阅读 · 0 评论 -
大数模板
只适用于整数。#include#include#include#include#include#includeusing namespace std;#define MAXN 9999#define MAXSIZE 300#define DLEN 4class BigNum{private: int a[500]; //可以控制大数的位数 in原创 2015-11-16 21:13:08 · 487 阅读 · 0 评论 -
组合数取模(卢卡斯定理、模板)
卢卡斯定理:用来求C(n,m)%p。p要求为素数,且不能太大。复杂度为O(logp(n)*p)。代码:#include #include #include #include #include #include #define C 240 #define TIME 10 #define LL __int64 using namespace s原创 2016-05-24 14:42:41 · 1613 阅读 · 0 评论 -
KMP模板
//优化过后的next 数组求法 void GetNextval(char* p, int next[]) { memset(next,0,sizeof(next)); int pLen = strlen(p); next[0] = -1; int k = -1; int j = 0; while (j < pLen原创 2015-11-06 20:38:50 · 472 阅读 · 0 评论