
ACM TYPE
梁千仞
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Segment Tree 扫描线
#include#include#include #define Max 1005using namespace std;struct line{ double x, y1, y2; int flag;}x_line[Max];struct node{ int l, r, flag; double x, f;}tree[Max];double point[Max];原创 2014-08-29 13:08:03 · 578 阅读 · 0 评论 -
二分图匹配
#include#includeusing namespace std;bool map[505][505];int n, k;bool vis[505];int linker[505];void sscanf(){ int x, y; scanf("%d%d",&n,&k); for(int i=1;i<=k;i++) { scanf("%d%d",&x,&y);原创 2014-10-01 19:57:34 · 502 阅读 · 0 评论 -
二分图匹配(KM算法)n^3
#include #include#include#includeconst int maxn = 301;const int INF = (1<<31)-1;int w[maxn][maxn];int lx[maxn],ly[maxn]; //顶标int linky[maxn];int visx[maxn],visy[maxn];int slack[maxn];int原创 2014-10-01 21:46:22 · 1551 阅读 · 0 评论 -
二分图匹配(KM算法)n^4
#include #include#include#include#includeusing namespace std; int g[505][505]; int dx[505],dy[505];bool vx[505], vy[505];int dis[505]; int n, x, y; int res, minn;bool find(int u){原创 2014-10-04 11:36:27 · 691 阅读 · 0 评论 -
Least Common Ancestors
#include #include #include #include #include using namespace std;struct node{ int f, s;};vectorimap[40005];int deep[40005];int dis[40005];int fa[40005];int ffa[40005];bool vis[40005];v原创 2014-10-19 11:24:45 · 607 阅读 · 0 评论 -
Bzoj 1036 树的统计
Description一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM u v: 询问从点u到点v的路径上的节点的权值和 注意:从点u到点v的路径上的节点包括u和v本身Input原创 2014-12-29 18:55:07 · 723 阅读 · 0 评论 -
short-path problem (Spfa)
#include #include #include #includeusing namespace std;const int INF = 0x3fffffff;int g[1005][1005];int m;int Spfa(int s,int t){ queueq; int dis[1005]; for(int i=1;i<=m;i++)原创 2014-09-02 00:30:46 · 631 阅读 · 0 评论 -
hash值的计算与转换
#include using namespace std;const int MAXN = 100;const int X = 3;long long f[1005];void init() { f[0] = 1; for(int i = 1;i < MAXN; i++) { f[i] = f[i-1]*X; } } int原创 2015-05-07 17:49:34 · 9877 阅读 · 0 评论 -
Dijkstra with priority queue
POJ 1511 Invitation Cards(单源最短路,优先队列优化的Dijkstra)原创 2015-07-23 20:12:35 · 642 阅读 · 0 评论 -
max_flow(Dinic)
#include #include #include #include #include using namespace std; const int INF = 0x3fffffff; int g[1005][1005]; int pre[1005]; int m; int bfs(int s,int原创 2014-09-02 15:42:28 · 564 阅读 · 0 评论 -
max_flow(Edmond_Karp)
#include #include #include #include using namespace std; const int INF = 0x3fffffff; int g[1005][1005]; bool vis[1005]; int m; int Edmond_Karp(int s,int t)原创 2014-09-02 10:47:29 · 538 阅读 · 0 评论 -
short-path problem (Floyd)
#include #include #include using namespace std;const int INF = 0x3fffffff;int g[1005][1005];int m;void Floyd(){ int i, j, k; for (k=1;k<=m;k++) { for (i=1;i<=m;i++)原创 2014-09-01 23:58:23 · 674 阅读 · 0 评论 -
Segment Tree with Lazy
#include#include#includeusing namespace std;struct node{ int l, r, s;}num[800005];int n, m, key;void build(int l,int r,int k){ num[k].l = l; num[k].r = r; num[k].s = 0; if原创 2014-08-29 11:28:28 · 755 阅读 · 0 评论 -
Segment Tree
#include#includeusing namespace std;struct node{ int l, r, m; int max;}num[800005];int val[200005];int n, m;int init(int l, int r, int k){ num[k].l = l; num[k].r原创 2014-08-29 13:04:55 · 519 阅读 · 0 评论 -
快速幂取模
#include #include //快速幂算法,数论二分 long long powermod(int a,int b, int c) //不用longlong就报错,题目中那个取值范围不就在2的31次方内 { long long t; if(b==0) return 1%c; if(b==1) return a%c; t=原创 2014-08-29 22:01:04 · 541 阅读 · 0 评论 -
Binary Indexed Tree
#include#include#includeusing namespace std;int n, m;int num[100005];int front(int x){ return x&(-x);}int update(int x,int k){ do { num[x]+=k; x-=front(x); }原创 2014-08-29 13:08:25 · 549 阅读 · 0 评论 -
博弈论入门小结
转载博弈论:是二人或多人在平等的对局中各自利用对方的策略变换自己的对抗策略,达到取胜目标的理论。博弈论是研究互动决策的理论。博弈可以分析自己与对手的利弊关系,从而确立自己在博弈中的优势,因此有不少博弈理论,可以帮助对弈者分析局势,从而采取相应策略,最终达到取胜的目的。博弈论分类:(摘自百度百科)(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规转载 2014-08-31 10:15:09 · 600 阅读 · 0 评论 -
Binary Indexed Tree 2D
#include #include #include #include #include using namespace std; int map[1015][1015]; void update(int x,int y, int n) { for(int i=x;i<=1005;i+=(i&(-i)))原创 2014-09-01 08:40:31 · 594 阅读 · 0 评论 -
short-path problem (Dijkstra)
#include #include #include using namespace std;const int INF = 0x3fffffff;int g[1005][1005];int m;int Dijkstra(int s,int t){ bool visit[1005]; int dis[1005]; for(int i = 1; i <原创 2014-09-01 23:51:30 · 739 阅读 · 0 评论 -
max_flow(Ford-Fulkerson)
#include #include #include #includeusing namespace std;const int INF = 0x3fffffff;int g[1005][1005];bool vis[1005];int m;int Ford(int s,int t,int f){ if(s==t) return f; for(in原创 2014-09-02 01:50:55 · 686 阅读 · 0 评论 -
树链剖分模板题
1036: [ZJOI2008]树的统计CountTime Limit: 10 Sec Memory Limit: 162 MBSubmit: 3401 Solved: 1418[Submit][Status]Description一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t转载 2015-07-24 14:15:31 · 629 阅读 · 0 评论