【模板啊模板】
键盘上的舞者
这个作者很懒,什么都没留下…
展开
-
【模板】高精度计算
加法#include #include #include void add(char a[],char b[],char back[]){ int i,j,k,up,x,y,z,l; char *c; if(strlen(a) > strlen(b)) l = strlen(a)+2; else l原创 2013-07-18 09:06:30 · 3403 阅读 · 0 评论 -
【模板】最长公共子序列
#include #include #include using namespace std;char s1[1000],s2[1000];int len1,len2,dp[1000][1000],mark[1000][1000];//如果数据太大,dp数组可以考虑滚动数组void LCS(){ int i,j; memset(dp,0,si原创 2013-08-01 18:05:41 · 2502 阅读 · 0 评论 -
【模板】最长递增公共子序列
二维:#include #include #include using namespace std;int n,m,a[505],b[505],dp[505][505];int LICS(){ int MAX,i,j; memset(dp,0,sizeof(dp)); for(i = 1; i<=n; i++) {原创 2013-08-01 18:13:15 · 2181 阅读 · 0 评论 -
【模板】计算1的个数
__int64 CountOne(__int64 n){ __int64 count =0; if (n ==0) count =0; else if (n >1&& n <10) count =1; else { __int64 highest = n; __int64 bit原创 2013-07-20 15:26:30 · 1503 阅读 · 0 评论 -
【模板】BFS
#include #include #include using namespace std;struct node{ int x,y,step;};char map[105][105];int vis[105][105];int to[4][2]= {1,0,-1,0,0,1,0,-1};int n,m,sx,sy,ex,ey,ans;原创 2013-07-18 10:49:41 · 3925 阅读 · 0 评论 -
【模板】各种欧几里得
int gcd(int n,int m)//n>m{ //最大公约数 int r; while(m) { r = n%m; n = m; m = r; } return n;}int kgcd(int a,int b){ if(!a) return b;原创 2013-07-18 10:35:04 · 1721 阅读 · 0 评论 -
【模板】KMP
int next[N];char str1[M],str2[N];//str1 长,str2 短//len1,len2,对应str1,str2的长void get_next(int len2){ int i = 0,j = -1; next[0] = -1; while(i<len2) { if(j == -1 ||原创 2013-07-18 10:15:24 · 1657 阅读 · 0 评论 -
【模板】快速幂取模
long long quickmod(long long a,long long b,long long m){ long long ans = 1; while(b)//用一个循环从右到左便利b的所有二进制位 { if(b&1)//判断此时b[i]的二进制位是否为1 { ans = (ans*a)%m原创 2013-07-18 09:18:43 · 6529 阅读 · 0 评论 -
【模板】排序
//sort#includebool cmp(const int a,const int b){ return a>b;//降序排列}//qsort#include int cmp(const void *x,const void *y){ return (*(int*)x-*(int*)y);//升序}qsort(s,n,sizeo原创 2013-07-18 09:28:08 · 1199 阅读 · 0 评论 -
【模板】二分
int binsearch(int *t,int k,int n){//t为数组,k是要查找的数,n为长度 int low = 1,high = n,mid; while(low<=high) { mid = (low+high)/2; if(k == t[mid]) return mid;原创 2013-07-18 09:22:52 · 1412 阅读 · 0 评论 -
【模板】01背包
# include # include # include # define max(x,y) x>y?x:y;int v[1001];//价值int w[1001];//重量int dp[1001][1001];int main(){ int n,m; while(scanf("%d%d",&m,&n)!=EOF) {原创 2013-07-18 10:56:46 · 2703 阅读 · 2 评论 -
【模板】素数筛选
#include int main(){ int i,j,a[505]={0}; for(i=1;i<=500;i++) a[i]=1; for(i=2;i<=500;i++) if(a[i]) for(j=i+i;j<=500;j+=i) a[j]=0; for(i=2;i<=500;i++) if(a[i]) printf原创 2013-07-18 10:37:29 · 1599 阅读 · 0 评论 -
【模板】并查集
int find(int x){ int r = x; while(father[r]!=r) r = father[r]; return r;}/*int find(int x){ if(father[x] == x) return x; else return father[x] =find(f原创 2013-07-18 10:22:58 · 2251 阅读 · 0 评论 -
【模板】线段相交
#include #include #include #include using namespace std;struct point{ double x,y;};point a[105][2];//a[i][0]代表第i条线段的头,a[i][1]代表尾double fan(double x,double y){ return原创 2013-07-18 09:11:49 · 1966 阅读 · 0 评论 -
【模板】最长递增子序列
一般情况:#include #include #include using namespace std;int a[1005],dp[1005],n;int LIS(){ int i,j,ans,m; dp[1] = 1; ans = 1; for(i = 2;i<=n;i++) { m = 0原创 2013-08-01 18:11:27 · 2253 阅读 · 0 评论