模板
河渔船
成长的小垃圾
展开
-
多重背包
#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<queue>#include<vector>#include<algorithm>using namespace std;int n,m;int v[9999],w[9999],s[9999];int f[9999];int m原创 2016-12-14 16:05:46 · 273 阅读 · 0 评论 -
对拍
有时候我们对于一个题先写了不确定的貌似是正解的程序,然后又写了保证正确的暴力。 那么我们怎样来确定我们想的正解对不对呢?对拍。 对拍我们需要这样几个文件: data是数据生成器,right是暴力,test是待定正确程序。 举一个a+b的例子,里面是这样写的。data.cpp#include<iostream>#include<cstdio>#include<ctime>#include原创 2017-08-12 09:09:02 · 255 阅读 · 0 评论 -
线段树模板(区间乘混加)
https://www.luogu.org/problem/show?pid=3373#include<iostream>#include<cstring>#include<cstdio>#define M 100000#define LL long longusing namespace std;struct H{ LL sum,l,r,len,addi,tim;}st[4*原创 2017-08-06 10:03:35 · 446 阅读 · 0 评论 -
P3370 【模板】字符串哈希
luogu 传送门直接上板子#include<iostream>#include<cstdio>#include<algorithm>#include<string>#include<cstring> #define LL long long#define MOD1 1000000007#define MOD2 1000000009#define seed1 163#define原创 2017-08-16 09:13:05 · 263 阅读 · 0 评论 -
拓展欧几里得(转载)
收藏一篇博客 http://blog.csdn.net/zhjchengfeng5/article/details/7786595 在此非常感谢,%%%原创 2017-10-06 21:36:21 · 219 阅读 · 0 评论 -
线性筛欧拉函数
首先有以下性质:(p 为素数) 1. φ(p)=p-1 2. 如果i mod p==0,那么φ( i*p )=p*φ( i ) 3. 若i mod p≠0,那么φ(i*p)=φ(i)*(p-1)证明见http://blog.csdn.net/Lytning/article/details/24432651,在此表示感谢 典型题目见http://poj.org/problem?id=3090原创 2017-05-28 08:08:27 · 597 阅读 · 0 评论 -
欧拉函数专项
rho详解:http://blog.csdn.net/u012061345/article/details/48316811 欧拉函数应用与性质及求法:http://blog.csdn.net/sentimental_dog/article/details/52002608首先,先知道一个性质φ(n)=n(1-1/a1)(1-1/a2)……(1-1/ak); a1,a2……,ak为n分解的质因数原创 2017-10-07 21:38:17 · 299 阅读 · 0 评论 -
P1868 饥饿的奶牛(区间问题)
题目传送和 P1280 尼克的任务差不多 不重叠的区间最大覆盖。 dp解法。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<vector>#define LL long longusing namespace std;const int M=3000009;const i原创 2017-10-27 10:53:30 · 458 阅读 · 0 评论 -
洛谷10月月赛R1·浴谷八连测R1·提高组
SAC E#1 -T1 一道中档题 Factorial题目大意:求n!在k进制下末尾0的个数。 做法:我们对k进行质因数分解,然后用k的质因数去除 n!,然后取num2/num1的最小值就可以了。 看数据范围,对k的质因数分解是要用rho大整数分解来做的,然而数据好像比较弱,筛到1e7就可以过的QAQ。 对于rho的应用见我前边一篇博客 欧拉函数专项#include<iostream>#in原创 2017-10-15 16:00:40 · 278 阅读 · 0 评论 -
洛谷10月月赛R1·浴谷八连测R1·提高组 SAC E#1 -T1 一道中档题 Factorial
题目大意:求n!在k进制下末尾0的个数。 做法:我们对k进行质因数分解,然后用k的质因数去除 n!,然后取num2/num1的最小值就可以了。 看数据范围,对k的质因数分解是要用rho大整数分解来做的,然而数据好像比较弱,筛到1e7就可以过的QAQ。 对于rho的应用见我前边一篇博客 欧拉函数专项#include<iostream>#include<cstring>#include<cst原创 2017-10-15 16:45:21 · 369 阅读 · 0 评论 -
模板汇总
本博客所有模板都经过测试,保证正确。归并排序#include<iostream>#include<cstdio>#include<cstring>#include<cmath>using namespace std;const int N=1e5+77;int a[N],n,tmp[N];void Sort(int l,int r){ if(l==r) return;原创 2017-11-08 14:44:23 · 622 阅读 · 3 评论 -
HDU 2669 Romantic
HDU 传送门 裸的拓展欧几里得#include<iostream>//HDU 2669 #include<cstdio>#include<cstring>#include<cmath>#define LL long long using namespace std;LL A,B;LL ex_gcd(LL a,LL b,LL &x,LL &y){ if(b==0)原创 2017-10-16 16:00:26 · 217 阅读 · 0 评论 -
LCA (Tarjan)
感谢两位大佬的博客,讲得很明白。 %dalao %dalao 模板 评测传送#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#define LL long long #define M 750009 using namespace std;int head[M],to[2*M],nxt[2*M]原创 2017-10-16 17:34:39 · 222 阅读 · 0 评论 -
Codevs 2370 小机房的树
传送 LCA的应用。 用Tarjan的方法来找最近公共祖先,dfs过程中求出当前节点到根节点的距离。 那么ans=dep[u]-dep[lca]+dep[v]-dep[lca];#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#define LL long long #define M 750009原创 2017-10-16 17:37:49 · 289 阅读 · 0 评论 -
P1855 榨取kkksc03
题目传送二维费用的01背包。#include<iostream>#include<cstdio>#include<cstring>#include<vector>#include<algorithm>#include<cstdlib>#define LL long longusing namespace std;int n,m,T,f[209][209];int w1[109],w原创 2017-10-26 14:18:39 · 417 阅读 · 0 评论 -
P1939 【模板】矩阵加速(数列)
luogu 传送门 矩阵乘法快速幂,注意记录过程量; 还有就是如果前面已经算过了,直接赋值就好了。#include<iostream>#include<cstdio>#include<algorithm>#include<string>#include<cstring> #define LL long long#define MOD 1000000007using namespac原创 2017-08-19 09:36:01 · 377 阅读 · 0 评论 -
P3379 LCA(模板)
luogu#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<string>#include<cmath>#include<vector>#define NN 500000using namespace std;int n,m,s;//vector <int> a[NN+2]原创 2017-03-08 15:43:31 · 234 阅读 · 0 评论 -
P2757 导弹的召唤(数据加强)
评测 题目描述同上题。 其中n<=300000。 很明显,需要用dp而且要用nlogn复杂度的方法求子序列。#include<iostream>#include<cstdio>#include<algorithm>#define LL long long#define M 2147483647using namespace std;int n,a[300005],len;int原创 2017-06-06 08:25:58 · 403 阅读 · 0 评论 -
线段树区间修改与查询(求和)
P3372#include<iostream> #include<cstdio>#include<algorithm>#include<cstring>#include<string>#define MAXN 200000#define LL long longusing namespace std;struct H{ LL addi,sum,l,r,len;}st[MAX原创 2016-12-30 14:08:19 · 432 阅读 · 0 评论 -
最短路(模板)
Floyd 最短路 (时间复杂度O(N^3),适用于出现负边权的情况,可以求任意两点间的最短路径)#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include<cmath>#include<queue>#include<vector>#define LL原创 2016-12-31 10:35:10 · 249 阅读 · 0 评论 -
P3388 【模板】割点
https://www.luogu.org/problem/show?pid=3388#sub#include<iostream>#include<cstring>#include<cstdio>#include<string>#include<algorithm>#include<queue>#include<vector>using namespace std;int dfn[1原创 2017-03-19 10:05:42 · 345 阅读 · 0 评论 -
割点(模板)
#include<iostream>#include<cstring>#include<cstdio>#include<string>#include<algorithm>#include<queue>#include<vector>using namespace std;int dfn[1001],low[1001],dfs_num=0,n,m,cnt=0,root;int nu原创 2017-03-19 09:58:11 · 301 阅读 · 0 评论 -
线性筛素数
#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include<vector>#include<queue>#define L long#define M 200000007using namespace std;L prime[M],cnt=0;boo原创 2017-05-26 17:53:27 · 350 阅读 · 0 评论 -
P1313 计算系数
https://www.luogu.org/problem/show?pid=1313 系数应该是a^n*b^m*c(n,m),主要是求c(n,m) c(n,m)=n!/m!*(n-m)! 法1: 分解质因子#include<cstdio>#include<iostream>int su[20000],yz[20000];int n,m,k,a,b;int p=10007;voi原创 2017-06-06 10:14:51 · 402 阅读 · 0 评论 -
混合背包
主要是:将多重背包拆成01背包。#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include<queue>using namespace std;int w[3000],c[3000],p[3000],f[3000];int main(){ //f原创 2016-12-14 15:58:05 · 309 阅读 · 0 评论 -
P3402 最长公共子序列(nlogn)
https://www.luogu.org/problem/show?pid=3402 先看一下数据规模:n<=300000,n^2的做法肯定就要挂掉了,所以用到了这个nlogn的做法。 先介绍一下nlogn的做法: 最长公共子序列 的 nlogn 的算法本质是 将该问题转化成 最长增序列(LIS),因为 LIS 可以用nlogn实现,所以求LCS的时间复杂度降低为 nlo原创 2017-06-08 15:14:32 · 602 阅读 · 0 评论 -
P1207 双重回文数
https://www.luogu.org/problem/show?pid=1207#sub 练好基本功 进制转换#include<iostream>#include<cstdio>#include<cstring>#include<vector>#include<algorithm>using namespace std;int n,s,a[1000],t,ans[1000];原创 2017-06-09 10:08:47 · 352 阅读 · 0 评论 -
P1217 回文质数
https://www.luogu.org/problem/show?pid=1217#sub 首先,四位的,六位的,八位的回文数一定不是质数,因为它们都是11的倍数。 此题无需打表质数,因为回文数(应该)比质数少。 枚举回文数,举例五位的:for(int d1=1;d1<=9;d1++) for(int d2=0;d2<=9;d2++) for(int d3=0;d3<原创 2017-06-09 16:54:52 · 392 阅读 · 0 评论 -
最大子段和
送分题(songfen) Time Limit:1000ms Memory Limit:128MB题目描述 LYK喜欢干一些有挑战的事,比如说求区间最大子段和。它知道这个题目有O(n)的做法。于是它想加强一下。 也就是说,LYK一开始有n个数,第i个数字是ai,它找来了一个新的数字P,并想将这n个数字中恰好一个数字替换成P。要求替换后的最大子段和尽可能大。 LYK知道这个题目仍然很简单,原创 2017-07-23 11:03:20 · 343 阅读 · 0 评论 -
P3390 【模板】矩阵快速幂
luogu 传送门 矩阵乘法的法则 矩阵乘法的法则#include<iostream>#include<cstdio>#include<algorithm>#include<string>#include<cstring> #define LL long long#define MOD 1000000007using namespace std;LL a[109][109],an原创 2017-08-16 16:09:00 · 255 阅读 · 0 评论 -
KMP的板子题
给出n组询问,每一组询问包含两个字符串t s,问s中是否包含t。(t中有’?’,’?’可以代替任何字符)。 代码:#include<iostream>#include<cstring>#include<cstdio>#include<string>#include<algorithm>using namespace std;int l1,l2,n;char s[100009],t[1原创 2017-07-25 10:58:16 · 558 阅读 · 0 评论 -
P1349 广义斐波那契数列
luogu 传送门 我们可以设一个矩阵A={p , 1 q , 0}ans矩阵{a2 , a1},用ans矩阵*A矩阵的n-2次方,ans[1][1]就是答案了。 正确性自己在纸上画一画就显而易见了。#include<iostream>#include<cstdio>#include<algorithm>原创 2017-08-16 17:12:11 · 344 阅读 · 0 评论 -
NOIP 2012 国王游戏
评测传送贪心,按照a*b升序排序,如果相同,则a小的在前。如果直接上单纯的计算会炸掉,60分。需要加高精。我压了4位。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<ctime>#include<queue>#define LL long longconst long long原创 2017-10-19 14:11:01 · 337 阅读 · 0 评论