
ACM TYPE
梁千仞
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Segment Tree 扫描线
#include #include #include #define Max 1005 using 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 · 579 阅读 · 0 评论 -
二分图匹配
#include #include using 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 #include const 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 #include using 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 · 692 阅读 · 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 · 724 阅读 · 0 评论 -
short-path problem (Spfa)
#include #include #include #include using 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 · 9879 阅读 · 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 · 565 阅读 · 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 · 675 阅读 · 0 评论 -
Segment Tree with Lazy
#include #include #include using 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 · 756 阅读 · 0 评论 -
Segment Tree
#include #include using 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 · 520 阅读 · 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 · 542 阅读 · 0 评论 -
Binary Indexed Tree
#include #include #include using 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 · 550 阅读 · 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 · 595 阅读 · 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 · 740 阅读 · 0 评论 -
max_flow(Ford-Fulkerson)
#include #include #include #include using 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 · 687 阅读 · 0 评论 -
树链剖分模板题
1036: [ZJOI2008]树的统计Count Time Limit: 10 Sec Memory Limit: 162 MB Submit: 3401 Solved: 1418 [Submit][Status] Description 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t转载 2015-07-24 14:15:31 · 630 阅读 · 0 评论