
算法
Rest
这个作者很懒,什么都没留下…
展开
-
STL 介绍 用法
STL 介绍 用法 (转载)一.标准C++库字符串类std::string的用法#includestd::string s1;std::string s3(s2);std::string s2("this is a string");begin 得到指向字符串开头的Iteratorend 得到指转载 2011-12-21 21:02:27 · 588 阅读 · 0 评论 -
poj 1273 Drainage Ditches(最大流的EK算法模板)
#include #include #include #include #include #include #define MAX 250using namespace std;int cap[MAX][MAX];int m;int EKarp(int s,int t){ queue Q; int flow[MAX][MAX],a[MAX],u,v,f,pre[MAX];转载 2013-01-29 22:03:14 · 635 阅读 · 0 评论 -
大数乘法模板
void mul( char *a, char *b, char *sum ) { int temp[2500]; int i,j,la,lb,l; la=strlen(a); lb=strlen(b); for ( i=0;i<la+lb;i++ ) temp[i]=0; for ( i=la-1;i>=0;i-- ) { l=la-1-i; f原创 2012-04-11 11:06:28 · 1001 阅读 · 0 评论 -
拓扑排序
参见ural 1022#include#include#define MAXD 110#define MAXM 10010int N, cnt, e, first[MAXD], next[MAXM], v[MAXM], topo[MAXD], vis[MAXD];void add(int x, int y){ v[e] = y; next[e] = first[x]原创 2013-07-25 15:10:08 · 703 阅读 · 0 评论 -
最大连续子序列和
long long maxsequence3(long long a[], int len){ long long maxsum, maxhere; maxsum = maxhere = a[0]; //初始化最大和为a【0】 for (int i=1; i<len; i++) { if (maxhere <= 0) maxhe原创 2013-07-23 13:43:59 · 771 阅读 · 0 评论 -
康托展开 压缩
#include#include#include #includeusing namespace std;const int MAX=362882;int s[9]={1,10,100,1000,10000,100000,1000000,10000000,100000000};int jie[9]={0,1,2,6,24,120,720,5040,40320};int visit原创 2012-07-06 22:47:07 · 2908 阅读 · 0 评论 -
树状数组
http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=binaryIndexedTrees原创 2012-04-11 11:17:39 · 513 阅读 · 0 评论 -
什么是离散化?
如果说今年这时候OIBH问得最多的问题是二分图,那么去年这时候问得最多的算是离散化了。对于“什么是离散化”,搜索帖子你会发现有各种说法,比如“排序后处理”、“对坐标的近似处理”等等。哪个是对的呢?哪个都对。关键在于,这需要一些例子和不少的讲解才能完全解释清楚。 离散化是程序设计中一个非常常用的技巧,它可以有效的降低时间复杂度。其基本思想就是在众多可能的情况中“只考虑我需要用的值”。下面我转载 2012-02-29 11:13:16 · 603 阅读 · 0 评论 -
输出N个数中取M个数的所有组合,排列情况
一般思路是由组合算排列,现在借助Next_permutation函数由排列到组合。1.组合读入一个字符串,一个整数n,输出字符串中取n个字符的所有组合情况算法:借助Next_permutation函数,构造一个大小为len=str.length()的数组,0表示要输出的数,1表示不要输出的数。代码如下:#include #include #inc原创 2011-12-30 12:46:40 · 5708 阅读 · 0 评论 -
大约10000个素数的表
3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271原创 2012-01-16 22:30:20 · 3379 阅读 · 0 评论 -
gcd的递归表现形式
int gcd(int a,int b){ if(b==0) return a; else return gcd(b,a%b);}这应该是最简单明了的表现方式了。原创 2011-12-21 18:44:53 · 4239 阅读 · 0 评论 -
求组合数的递归算法
int comm(int n,int k){ if(n==k||k==0) return 1; else if(k==1) return n; else return comm(n-1,k)+comm(n-1,k-1);}原创 2011-12-21 20:20:33 · 2909 阅读 · 0 评论 -
poj 1006 Biorhythms(中国剩余定理)
大致题意:这题在POJ上有译文(原文右上角) 解题思路:中国剩余定理,本题难点不在编程,而是分析题目并转化为数学公式要引入本题解法,先来看一个故事 “韩信点兵”: 传说西汉大将韩信,由于比较年轻,开始他的部下对他不很佩服。有一次阅兵时,韩信要求士兵分三路纵队,结果末尾多2人,改成五路纵队,结果末尾多3人,再改成七路纵队,结果又余下2人,后来下级军官向他报告共有士兵转载 2012-05-20 16:57:45 · 722 阅读 · 0 评论