算法模板
文章平均质量分 94
Albert_Bolt
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
判断线段相交
判断线段相交模板:( 快速排斥+跨立 )#define maxn 1000001#define man 1e-12//点 struct point{ double x; double y;};//线段 struct line{ point a; point b;}lline[maxn];//判断线段是否相交 bool judge(li...原创 2018-07-28 10:43:20 · 315 阅读 · 0 评论 -
ACM总结
Piggy-Bank(难度:1)Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Problem DescriptionBefore ACM can do anything, a budget must be prepared and the necessary financ...原创 2018-09-05 16:53:50 · 509 阅读 · 0 评论 -
矩阵
矩阵乘法矩阵加法矩阵快速幂原创 2018-09-05 16:07:18 · 333 阅读 · 0 评论 -
动态规划的几个模板
错排公式dp[1]=0; dp[2]=1;for(int i=3;i<=20;i++){ dp[i]=(i-1)*dp[i-1]+(i-1)*dp[i-2];}cin>>n;cout<<dp[n]<<endl;最长递增子序列 LISfor(int i=1;i<=n;i++){ int tmax=1; ...原创 2018-09-05 15:57:20 · 664 阅读 · 0 评论 -
输入外挂
输入外挂int input()//自己写输入函数 { char ch=' '; while(ch<'0'||ch>'9') { ch=getchar(); } int x=0; while(ch<='9'&&ch>='0') { x=x*10+ch-'0'; ...原创 2018-09-08 09:57:59 · 305 阅读 · 0 评论 -
背包问题
一、01背包题目有n件物品,容量为V的背包放入第 i 件物品耗费的费用是ci,得到的价值是wi求解将哪些物品装入背包可使价值总和最大特点每种物品仅有1件,可以选择放或不放。状态转移方程dp[j]表示背包内放入物品费用为 j 时的最大价值 dp[j] = max { dp[j], dp[ j - ci ] + wi }初始化要求恰好装满背包:dp[0]=0...原创 2018-09-05 11:39:20 · 258 阅读 · 0 评论 -
最小生成树
prim算法void prim(){ int min,k; memset(vis,0,sizeof(vis)); for(int i=1;i&lt;=n;i++) { dis[i]=city[1][i]; } dis[1]=0; vis[1]=1; for(int i=1;i&lt;=n;i++) { ...原创 2018-08-29 11:27:22 · 243 阅读 · 0 评论 -
哈夫曼树
哈夫曼树模板#include <iostream>#include <cstring>#include <cstdio>#include <queue>using namespace std;priority_queue<int,vector<int>,greater<int> >q;//建立小顶堆原创 2018-08-31 11:27:08 · 380 阅读 · 0 评论 -
二叉排序树 / 二叉搜索树 / 二叉查找树
二叉排序树 / 二叉搜索树 / 二叉查找树特点中序遍历的结果必为递增序列结构体定义struct node{ int data; node *lc; node *rc;};建树//建二叉排序树 void create(node *&amp;amp;amp;amp;root,int t){ if(root==NULL) { roo...原创 2018-08-28 15:33:34 · 411 阅读 · 0 评论 -
二叉树
二叉树模板 结构体定义struct node{ char data;//节点为字母,若为数字就是int data; node *lc;//左儿子 node *rc;//右儿子};先序遍历//先序遍历void preorder(node *root){ if(root) { cout&amp;lt;&amp;lt;root-&amp;gt...原创 2018-08-27 15:28:50 · 227 阅读 · 0 评论 -
最短路径
最短路径算法模板:Floydvoid floyd(){ for(int k=1;k&amp;amp;amp;lt;=n;k++) { for(int i=1;i&amp;amp;amp;lt;=n;i++) { for(int j=1;j&amp;amp;amp;lt;=n;j++) { if(dis[i][j]&a原创 2018-07-28 11:22:29 · 935 阅读 · 0 评论 -
并查集
并查集算法模板:不需要确定集合内元素个数int findroot(int x)//查找函数 { while(tree[x]!=x) x=tree[x]; return x; }void join(int x,int y)//合并函数 { int fx=findroot(x); int fy=findroot(y); if(fx!=fy) t...原创 2018-07-28 11:02:40 · 225 阅读 · 0 评论 -
拓扑排序
拓扑序列模板#define maxn 510int n,m;//n个点m个关系 int team[maxn][maxn];//记录关系int in[maxn];//入度int topo[maxn];//拓扑序列void toposort(){ for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++...原创 2018-09-03 11:36:49 · 248 阅读 · 0 评论
分享