
模板专栏
文章平均质量分 51
chaoyueziji123
这个作者很懒,什么都没留下…
展开
-
二分(模板)
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; els原创 2014-07-19 17:35:04 · 758 阅读 · 0 评论 -
出数据
ACM竞赛中题目的数据一般都可以用随机生成法+手动法。随机生成法主要用到随机函数rand().int rand(void);返回一个伪随机数a,a的取值范围是[0,RAND_MAX]。每次调用rand函数,都会返回内部算法生成的看似不相关的一连串的数。该算法使用随机种子,随机种子的值可以用srand()函数初始化。RAND_MAX是头文件里定义的常量, 其值为32767.例:生原创 2014-08-13 02:48:20 · 1006 阅读 · 0 评论 -
快速幂
int pow_mod(int a,int b,int n){ int ans ; if(b == 0) return 1 ; ans = pow_mod(a,b/2,n); ans = ans * ans % n ; if( b%2 ) ans = ans*a % n ; return ans ;}原创 2014-08-10 11:07:10 · 916 阅读 · 0 评论 -
最长公共子序列
[cpp] view plaincopy[cpp] view plaincopy #include #include #include using namespace std; char s1[1000],s2[1000]; int len1,len2,dp[1000][1000],mark[原创 2014-07-19 17:22:01 · 949 阅读 · 0 评论 -
素数筛选(模板)
#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("%d ",i); p原创 2014-07-19 17:27:08 · 981 阅读 · 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 || str2[i] ==原创 2014-07-19 17:34:01 · 688 阅读 · 0 评论 -
模板多重背包
/*** 多重背包:* 有N种物品和一个容量为V的背包。第i种物品最多有Mi件可用,* 每件耗费的空间是Ci,价值是Wi。* 求解将哪些物品装入背包可使这些物品的耗费的空间总和不超过背包容量,且价值总和最大。*/#include #include int max(int a, int b){ if (a > b)return转载 2014-06-02 15:13:17 · 831 阅读 · 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;int check(in原创 2014-07-19 17:24:43 · 992 阅读 · 0 评论 -
最长递增公共子序列
有奖征资源,博文分享有内涵 6月推荐文章汇总 优快云博文大赛初赛晋级名单公布 【模板】最长递增公共子序列分类: 【模板啊模板】 2013-08-01 18:13 262人阅读 评论(0)收藏 举报LICS模板二维:[cpp] view plaincopy #include #原创 2014-07-19 17:15:45 · 899 阅读 · 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(father[x]);}原创 2014-07-19 17:32:57 · 985 阅读 · 0 评论 -
最长递增的子序列(模板)
一般情况:[cpp] view plaincopy#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原创 2014-07-19 17:19:12 · 876 阅读 · 0 评论 -
0 1背包模板
# 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) { memset(dp,原创 2014-07-19 17:23:17 · 1000 阅读 · 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 =0;原创 2014-07-19 17:22:20 · 946 阅读 · 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; if(!b) retu原创 2014-07-19 17:29:06 · 1014 阅读 · 0 评论 -
二分查找全集
1,原始二分查找题目:给定一个有序(非降序)数组A,求任意一个i使得A[i]等于target,不存在则返回-1例如:[2,4,6,8,9]找(4) 位置11.1 递归版[cpp] view plaincopyint bSearch(int a[], int low, int high, int target){转载 2014-08-14 15:08:07 · 1083 阅读 · 0 评论