ACM算法
c_3Po_
这个作者很懒,什么都没留下…
展开
-
zzuli OJ 2271—魔法交流活动 51nod 1640(跑两次kruskal)
题目描述魔法学校近日开展了主题为“天气晴朗”的魔法交流活动。N名魔法师按阵法站好,之后选取N - 1条魔法链将所有魔法师的魔力连接起来,形成一个魔法阵。魔法链是做法成功与否的关键。每一条魔法链都有一个魔力值V,魔法最终的效果取决于阵中所有魔法链的魔力值的和。由于逆天改命的魔法过于暴力,所以我们要求阵中的魔法链的魔力值最大值尽可能的小,与此同时,魔力值之和要尽可能的大。现在给定魔法师人数N,魔法链数...原创 2018-06-13 13:39:08 · 203 阅读 · 0 评论 -
URAL 1099 Work Scheduling (一般图匹配带花树)
kuangbin模版题//// main.cpp// wzazzy//// Created by apple on 2018/10/23.// Copyright © 2018年 apple. All rights reserved.//#include<stdio.h>#include<iostream>#include<algor...原创 2018-11-05 21:02:23 · 228 阅读 · 0 评论 -
51nod 1102 面积最大的矩形 (笛卡尔树)
之前用的单调栈解决的,这次发现了一个新方法 笛卡尔树,记录一下#include<cstdio>#include<cstring>#include<iostream>using namespace std;const int maxn=100005;int n,a[maxn],ls[maxn],rs[maxn],fa[maxn],stk[maxn]...原创 2018-10-30 21:56:07 · 325 阅读 · 0 评论 -
poj 3660 Cow Contest (floyd传递闭包)
题意:有n头牛比赛,m种比赛结果,最后问你一共有多少头牛的排名被确定了,其中如果a战胜b,b战胜c,则也可以说a战胜c,即可以传递胜负。求能确定排名的牛的数目。代码如下。。。。floyd处理一下#include<stdio.h>#include<iostream>#include<algorithm>#include<cmath>...原创 2018-10-29 21:42:02 · 242 阅读 · 0 评论 -
poj 3020 Antenna Placement (二分图最小路径覆盖)
#include<stdio.h>#include<iostream>#include<algorithm>#include<cmath>#include<cstring>#include<queue>#include<stack>#include<list>#incl原创 2018-10-24 09:58:01 · 205 阅读 · 0 评论 -
hdu 4185 Oil Skimming(二分匹配)
//// main.cpp// wzazzy//// Created by apple on 2018/10/23.// Copyright © 2018年 apple. All rights reserved.//#include<stdio.h>#include<iostream>#include<algorithm>#inc...原创 2018-10-24 00:09:38 · 203 阅读 · 0 评论 -
HDU 2444 (判断二分图+二分图最大匹配)
题目链接题意:首先判断这个图是否是二分图,如果不是二分图就输出no,如果是二分图就输出最大匹配数判断二分图可以用染色法。。bfs一次就可以求二分图最大匹配我用的匈牙利#include<stdio.h>#include<iostream>#include<algorithm>#include<cmath>#include<...原创 2018-10-19 11:03:06 · 245 阅读 · 0 评论 -
二分图匹配 匈牙利算法 模版
/*匈牙利算法邻接表形式使用前用init()进行初始化,给uN赋值加边使用函数addedge(u,v)*/const int MAXN=5010;//点数的最大值const int MAXM=50010;//比数的最大值struct Edge{ int to,next;}edge[MAXM];int head[MAXN],tot;void init(){ tot...原创 2018-10-09 23:23:29 · 157 阅读 · 0 评论 -
有向图的强连通分量 模版
const int MAXN=20010;//点数const int MAXM=50010;//边数struct Edge{ int to,next;}edge[MAXM];int head[MAXN],tot;int low[MAXN],DFN[MAXN],Stack[MAXN],Belong[MAXN];//Belong数组的值是1~sccint Index,top;in...原创 2018-10-08 23:15:42 · 279 阅读 · 0 评论 -
约瑟夫环问题(循环链表实现)
约瑟夫环问题,n个人围成一圈,报数到m的人出列,直至n个人全部出列,问出列人的顺序手写循环链表模拟实现#include<stdio.h>#include<stdlib.h>typedef struct SingleNode{ int date; struct SingleNode *next;}list;int main(){ ...原创 2018-09-29 20:33:58 · 3093 阅读 · 1 评论 -
最小费用最大流 模版
最小费用最大流,求最大费用只需要取相反数,结果取相反数即可。 点的总数为 N,点的编号 0~N-1const int MAXN=10000;const int MAXM=100000;const int INF=0x3f3f3f3f;struct Edge{ int to,next,cap,flow,cost;}edge[MAXM];int head[MAXN],to...原创 2018-10-07 21:53:53 · 509 阅读 · 0 评论 -
最大流 模版 ISAP邻接表形式
const int MAXN = 100010;//点数的最大值const int MAXM = 400010;//边数的最大值 const int INF = 0x3f3f3f3f;struct Edge{ int to,next,cap,flow;}edge[MAXM];//注意是MAXMint tol;int head[MAXN];int gap[MAXN],dep...原创 2018-10-07 19:30:43 · 210 阅读 · 0 评论 -
A*算法(启发式搜索)第K短路。 POJ2449
模版题#include<bits/stdc++.h>using namespace std;#define INF 0xffffff#define MAXN 100010struct node{ int to; int val; int next;};struct node2{ int to; int g,f; b...原创 2018-09-10 21:01:07 · 272 阅读 · 1 评论 -
POJ 3368(RMQ ST表)
题目链接 #include<stdio.h>#include<iostream>#include<algorithm>#include<cmath>#include<cstring>#include<queue>#include<stack>#include<list&原创 2018-09-03 18:23:51 · 184 阅读 · 0 评论 -
洛谷 P3865 ST表
题目链接#include<stdio.h>#include<iostream>#include<algorithm>#include<cmath>#include<cstring>#include<queue>#include<stack>#include<list>原创 2018-09-03 17:19:39 · 165 阅读 · 0 评论 -
POJ 3264 Balanced Lineup (ST表 模版题)
题目链接题意 :给定n个数和q次查询区间输出每次查询区间的最大值与最小值之差题解:建立两个二维数组,分别存最大值,最小值 ,ST表预处理一下,对于每次查询输出相减一下就行了。#include<stdio.h>#include<iostream>#include<algorithm>#include<cmath>#in...原创 2018-09-03 17:00:46 · 176 阅读 · 0 评论 -
分层图(最短路 模版)
#include <bits/stdc++.h>using namespace std;#define ll long longconst int N = 1e5+10;const ll INF = 1e17;const int M = 2e5+10;ll cnt, k, n, m, t, v, u, ww;ll dist[N][30], w[M];int fir[N...原创 2018-09-05 18:08:12 · 1084 阅读 · 0 评论 -
最小生成树之kruskal算法
先构造一个只含 n 个顶点、而边集为空的子图,把子图中各个顶点看成各棵树上的根结点,之后,从网的边集 E 中选取一条权值最小的边,若该条边的两个顶点分属不同的树,则将其加入子图,即把两棵树合成一棵树,反之,若该条边的两个顶点已落在同一棵树上,则不可取,而应该取下一条权值最小的边再试之。依次类推,直到森林中只有一棵树,也即子图中含有 n-1 条边为止。 时间复杂度为为O(e^2), 使用并查集优化...原创 2018-06-06 19:43:10 · 463 阅读 · 0 评论 -
2017ACM/ICPC广西邀请赛-重现赛 hdu 6186
Little A has come to college and majored in Computer and Science.Today he has learned bit-operations in Algorithm Lessons, and he got a problem as homework.Here is the problem:You are giving ...原创 2019-05-15 13:19:41 · 317 阅读 · 0 评论