ACM
Sunday
UE4 、工业仿真 、 Delta3D 、OpenGL、分布式仿真
展开
-
ACM 排列组合
<br /> <br /> <br /> <br />long com(int n,int k){ memset(a,0,sizeof(a)); long sum=0; int i; a[0]=1; for(i=1;i<=n;++i){ a[i]=a[i-1]*(n-i+1)/i; } for(i=0;i<=k;++i){ sum=sum+a[i]; } return sum;}原创 2011-04-01 19:59:00 · 2190 阅读 · 6 评论 -
最大独立集,二分图最大匹配 poj 1466
/******************************************************************** ** @file poj1466.cpp ** @author liuke ** @date Sat Apr 30 21:44:00 2011 ** @brief 二分图是这样一个图,它的顶点可以分类两个集合X和Y,所有的边关联在两个顶点中,恰好一个属于集合X,另一个属于集合Y。最大匹配: 图中包含边数最多的匹配称为图的最大匹配原创 2011-04-30 22:07:00 · 1765 阅读 · 1 评论 -
图论,割点求法
<br /> <br /> <br />/******************************************************************** ** @file poj1144.cpp ** @author liuke ** @date Sat Apr 30 00:28:42 2011 ** @brief 关节点也被称为是割点,在去掉这个点之后图将不再连通。 求割点的办法来源于两个事实: 1、若原创 2011-04-30 10:16:00 · 2385 阅读 · 0 评论 -
tree 树 详解
#includeusing namespace std;const int length=26;struct tree_node{ bool isStr;//判断是否是一个完整的字符 struct tree_node* next[length]; tree_node():isStr(false){}};class tree{ tree_node *root; char base;public: tree(){root=new tree_node()原创 2011-04-22 17:35:00 · 1294 阅读 · 0 评论 -
线段树+离散化
<br /> <br /> <br /> <br />http://acm.nuaa.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1040<br /> <br /> <br />#include<iostream>#include<cstdio>#include<algorithm>using namespace std;#define MAX 40004int a[MAX],b[MAX],h[MAX];int ls[2原创 2011-04-20 13:27:00 · 617 阅读 · 0 评论 -
会场安排问题
标准的贪心算法#include#includeusing namespace std;#define MAX 10002int a[MAX],b[MAX];// int cmp(const void *a,const void *b){ return *(int*)a-*(int*)b;}void solve(){ int m;int num=1,原创 2011-06-11 14:47:00 · 1012 阅读 · 0 评论 -
ACM 任务分配问题
http://acm.nuaa.edu.cn/acmhome/problemdetail.do;jsessionid=BFF12E82F8327E77AFA4BB86B0117245?&method=showdetail&id=1393#includeusing namespace std;#define MAX 301int a[MAX],b[MAX],f[MAX][50001];int n;void init(){ cin>>n; for(int i=1;i>a[i]>>原创 2011-04-21 22:00:00 · 3164 阅读 · 0 评论 -
最少硬币问题 动态规划
nuupt 最少硬币问题http://acm.njupt.edu.cn/acmhome/problemdetail.do;jsessionid=C5F74A298747B3520DE77A677A8E057F?&method=showdetail&id=1221#include#includeusing namespace std;#define MAX 20002#define INF 9999999struct node{ int m,num;}a[11];int n,f[原创 2011-04-14 20:17:00 · 3368 阅读 · 0 评论 -
ACM 多重背包 pku 1276
<br /> <br /> <br /> <br />PKU 1276<br /> <br />#include<iostream>#include<cstdio>#include<cstring>using namespace std;#define MAX 100001int f[MAX];int content;//背包的容量//01背包void onepack(int cost,int value){ for(int j=content;j>=cost;--j原创 2011-04-14 16:38:00 · 1017 阅读 · 0 评论 -
快速排序
#include #include #include #define N 11void QuickSort(int *a, int low, int high); //快排函数int Patition(int *a, int low, int high); //快排中的划分函数void Swap(int *pa, int *pb); //交换两个指针指向的值原创 2012-02-12 11:43:00 · 1078 阅读 · 0 评论 -
计算几何 常用算法模版
/*计算几何目录 ㈠ 点的基本运算 1. 平面上两点之间距离 1 2. 判断两点是否重合 1 3. 矢量叉乘 1 4. 矢量点乘 2 5. 判断点是否在线段上 2 6. 求一点饶某点旋转后的坐标 2 7. 求矢量夹角 2 ㈡ 线段及直线的基本运算 1. 点与线段的关系 3 2. 求点到线段所在直线垂线的垂足 4 3. 点到线段的最近点 4 4. 点到线段所在直线的转载 2013-08-04 19:23:17 · 4524 阅读 · 0 评论 -
最小路径覆盖-二分图最大匹配 poj 1422
<br />/******************************************************************** ** @file poj1422.cpp ** @author liuke ** @date Sun May 1 16:25:17 2011 ** @brief 最小路径覆盖-二分图最大匹配[定义] 设G=(V,{R})是一个无向图。如顶点集V可分割为两个互不相交的子集,并且图中每条边依附的两个顶点都分属两个不同的子原创 2011-05-01 17:06:00 · 1615 阅读 · 0 评论 -
poj 1966 无向图的点连通度
<br />/******************************************************************** ** @file poj1966.cpp ** @author liuke ** @date Tue May 3 09:33:58 2011 ** @brief 图的连通度问题是指:在图中删去部分元素(点或边),使得图中指定的两个点s和t不连通(不存在从s到t的路径),求至少要删去几个元素。图的连通度分为点连通度和原创 2011-05-03 09:40:00 · 4937 阅读 · 2 评论 -
poj 1679 次最小生成树
<br />/******************************************************************** ** @file poj 1679.cpp ** @author liuke ** @date Wed Apr 27 14:47:06 2011 ** @brief ***********次最小生成树********** ** ** **@version Copyright (c) 2011,河南理原创 2011-04-27 14:53:00 · 895 阅读 · 0 评论 -
Dijkstra 最短路径 优化
/******************************************************************** ** @file d.cpp ** @author liuke ** @date Thu Apr 28 20:53:05 2011 ** @brief ******普通Dijstra算法******** ** 以poj 2387 做试验 **@version Copyright (c) 2011,河南理工大学-信管08-原创 2011-04-28 21:00:00 · 1162 阅读 · 0 评论 -
最小m段和问题
<br />/******************************************************************** ** @file njupt1230.cpp ** @author liuke ** @date Sat Apr 23 20:53:26 2011 ** @brief ** 最小m段和问题描述给定n个整数组成的序列,现在要求将序列分割为m段,每段子序列中的数在原序列中连原创 2011-04-23 21:00:00 · 4041 阅读 · 0 评论 -
Bellman-Ford 算法详解
<br />/******************************************************************** ** @file my.cpp ** @author liuke ** @date Thu Apr 28 20:55:30 2011 ** @brief Bellman-ford 算法详解 ** 以poj2387 做试验 ** **@version Copyright (c) 2011,河南理工大原创 2011-04-28 21:30:00 · 1953 阅读 · 0 评论 -
poj 3177 边的双连通分支
<br />/******************************************************************** ** @file poj3177.cpp ** @author liuke ** @date Sun May 1 09:49:13 2011 ** @brief 边的双连通分量问题首先是根据割边求出所有点的双连通分量,然后进行缩点。然后对缩点后的图看度数为一的顶点可以有多少个。然后添加的边数即为(n+1)/ 2条。原创 2011-05-01 09:58:00 · 1029 阅读 · 0 评论 -
最近公共祖先(LCA)
<br /> <br /> <br />/******************************************************************** ** @file nuaa1025.cpp ** @author liuke ** @date Fri Apr 29 22:33:37 2011 ** @brief 此种算法比较适合,在一棵树上有多个询问的情况 ** **@version Copyright (c) 2011,河原创 2011-04-29 22:37:00 · 1052 阅读 · 0 评论 -
poj1236 强连通分支+缩点
<br />/******************************************************************** ** @file poj1236.cpp ** @author liuke ** @date Wed Apr 27 19:59:56 2011 ** @brief *******强连通分支+缩点********** ** **@version Copyright (c) 2011,河南理工大学-信管08-三原创 2011-04-27 20:08:00 · 1042 阅读 · 0 评论 -
ACM 组合数
<br /> <br /> <br />long com(int n,int r){//return C(n,r) if(n-r<r)r=n-r; int s=1;int j=1; for(int i=0;i<r;++i){ s*=(n-i); while(j<=r &&s%j==0){ s/=j;++j; } } return s;}原创 2011-04-17 19:44:00 · 2738 阅读 · 0 评论 -
表达式求值
<br /> <br /> <br />表达式求值问题<br />#include<iostream>#include<cstring>#include<stack>using namespace std;#define MAX 30char f1[MAX],f2[MAX];int s1=0,s2=0;bool isdigit(char c){ if(c>='0' && c<='9')return true; return false;}void xx(cha原创 2011-04-21 12:51:00 · 712 阅读 · 0 评论 -
Linux下C++开发工具介绍
Linux下C++开发工具介绍 概述 就C++开发工具而言,与Windows下微软(VC, VS2005等)一统天下相比,Linux/Unix下C++开发,可谓五花八门,各式各样。Emacs, vi, eclipse, anjuta,kdevelop等层出不穷。 Windows下,开发工具多以集成开发环境IDE的形式展现给最终用户。例如,VS2005集成了编辑器,宏汇编ml原创 2010-05-30 15:53:00 · 1062 阅读 · 0 评论 -
欧拉路径 (HDU1787 详解)
给定一个无向图G,一条路径经过图G的每一条边,且仅经过一次,这条路径称为欧拉路径(Eulerian Tour),如果欧拉路径的起始顶点和终点是同一顶点,则称为欧拉回路(Eulerian circuit). 欧拉路径算法:无向图G存在欧拉路径的充要条件:图G是连通的,且至多除两个点外(可以为0个,连接图不可能有且仅有一个顶点的度为奇数)其它所有顶点的度为偶数.要找欧拉路径,原创 2010-05-15 00:07:00 · 6658 阅读 · 0 评论 -
树状数组(代码详解)
#include#includeusing namespace std; int N;int d[1024];int lowbit(int x)//求某个点的管辖范围{ return x&(-x);}void update(int x,int num)////修改树状数组{ while(x {原创 2010-05-10 13:30:00 · 1104 阅读 · 0 评论 -
int 整形数所能表示的最大范围
#include #include using namespace std;const int MIN=1const int MAX=(1int main (){ cout " cout " cout cout::max() cout::max() cout::ma原创 2010-04-26 19:53:00 · 4717 阅读 · 2 评论 -
最大公约数问题
int gcc(int a,int b){ int c; while(a%b) { c=a%b; a=b; b=c; } return b; }原创 2010-04-22 21:50:00 · 691 阅读 · 0 评论 -
C++string类常用函数
C++string类常用函数 string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而原创 2010-04-25 00:49:00 · 910 阅读 · 0 评论 -
最大子段 ,最大子矩阵 算法
最大子段算法//n数组b的元素个数int max_arr(int n,int*b){ int i,s=-10000000,sum=0; for(i=0;i { if(s>0)s+=b[i]; else s=b[i]; if(s>sum)sum=s;原创 2010-04-22 19:57:00 · 992 阅读 · 0 评论 -
qsort函数应用大全
C中qsort对各种类型的数据进行排序C++学习 2008-08-14 22:34:40 阅读10 评论0 字号:大中小 订阅 一、对int类型数组排序int num[100];Sample:int cmp ( const void *a , const void *b ){return *(int *)a - *(int *)b;}qsort(原创 2010-04-20 09:34:00 · 675 阅读 · 0 评论 -
最小代价树
<br />#include<iostream>#include<algorithm>using namespace std;#define MAX 205int stone[MAX];int n;int f[MAX][MAX];int getSum(int l,int r){ int sum=0; for(int i=l;i<=r;++i){ sum+=stone[i]; } return sum;}int solve(){ int原创 2011-05-14 23:38:00 · 972 阅读 · 0 评论 -
并查集 & 路径压缩
<br />#include<iostream><br />#include<vector><br />using namespace std;<br />vector<int>ve;<br />int find(int v){<br /> if(v==ve[v])return v;//路径压缩<br /> else return ve[v]=find(ve[v]);<br /> <br /> while(v!=ve[v]){<br /> v=ve[v];<br /> }return v;<原创 2011-03-29 22:47:00 · 1098 阅读 · 0 评论 -
kruskal 最小生成树
<br />http://acm.nuaa.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1013<br /> <br />最小生成树 代码<br />#include<iostream>#include<algorithm>using namespace std;#define MAX 5003int u[MAX],v[MAX],w[MAX],p[MAX],r[MAX];int n;void init(){ int原创 2011-03-30 10:48:00 · 624 阅读 · 0 评论 -
快速排序 c++
<br /> <br />http://acm.njupt.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1064<br /> <br />#include<iostream>#include<cstdio>#include<algorithm>using namespace std;void swap(int &a,int &b){ int t=a; a=b; b=t;}int split(int *A原创 2011-04-17 19:53:00 · 797 阅读 · 0 评论 -
归并排序
http://acm.njupt.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1065#include#define MAX 100002int a[MAX],n;void meger_sort(int l,int m,int r){ int i=l,j=m+1,tmp[MAX];int index=0; while(i原创 2011-04-12 09:39:00 · 693 阅读 · 0 评论 -
静态 二叉排序树创建
<br /> <br /> <br /> <br /> <br /> <br />#include<iostream>#include<cstring>#include<fstream>using namespace std;ifstream in("a.txt");int a[100];void insert(int n,int num){ if(a[n]==-1){ a[n]=num;return; } if(a[n]>num)insert(2原创 2011-04-06 15:53:00 · 747 阅读 · 0 评论 -
网络流 acm
<br /> <br /> <br /> <br />网络流问题 详解<br />nuaa 上的1044<br /> <br /> <br /> <br />#include<iostream>#include<cstring>#include<queue>#include<stdio.h>using namespace std;#define MAX 405#define INT_MAX 999999int g[MAX][MAX];int flow[MAX],father[原创 2011-03-31 15:48:00 · 1276 阅读 · 0 评论 -
拓扑排序 判断是否有环
<br /> <br /> <br /> <br />#include<iostream>#include<cstring>using namespace std;#define MAX 103int g[MAX][MAX], n;bool hasCirle(){ int i,j,k;int d[MAX]; memset(d,0,sizeof(d)); for(i=0;i<n;++i){ for(j=0;j<n;++j){ d[i]+=g[j][原创 2011-04-01 14:51:00 · 2432 阅读 · 0 评论 -
线段树求区间最值
<br />线段树求区间最值<br />http://acm.njupt.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1042<br /> <br /> <br />#include<iostream>#include<algorithm>#include<stdio.h>using namespace std;#define MAX 10002struct node{ int l,r,min;}tree[MAX*原创 2011-03-30 21:18:00 · 1153 阅读 · 0 评论 -
最大01 子矩阵
<br /> <br />最大01 矩阵<br />http://acm.nuaa.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1017<br />这个在输入数据时候只能用printf ,用cin会超时<br /> <br />#include<iostream>#include<stdio.h>#define MAX 2004 int l[MAX],r[MAX],g[MAX][MAX],h[MAX];int main(i原创 2011-03-30 20:55:00 · 1453 阅读 · 1 评论