模板
sprite_
这个作者很懒,什么都没留下…
展开
-
最长上升子序列nlogn 模板
参考了别人的博客,在此表示感谢,链接:http://blog.csdn.net/shuangde800/article/details/7474903 代码: #include #include #define MAXN 40005 int 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 long using 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 #include using namespace std; #define MAXN 9999 #define MAXSIZE 300 #define DLEN 4 class 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 评论