自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

某人的诡异笔记

無限大な夢のあとの 何もない世の中じゃ

  • 博客(14)
  • 收藏
  • 关注

原创 网络流

SAP代码struct edge{ int v, r, flow; edge(int v, int flow, int r) : v(v), flow(flow), r(r) {}};vector<edge> mp[maxn];void add_edge(int u, int v, int flow){ mp[u].push_back(edge(v, flow, mp[v].

2016-06-30 21:37:43 193

原创 Hourai Jeweled

HDU - 4303 Hourai Jeweled Time Limit: 2000MS Memory Limit: 163840KB 64bit IO Format: %I64d & %I64u DescriptionKaguya Houraisan was once a princess of the Lunarians, a race of people living on the

2016-06-30 08:25:34 322

原创 Matrix Power Series

DescriptionTime Limit: 3000MS Memory Limit: 131072K Given a n∗nn*n matrix AA and a positive integer kk, find the sum S=A+A2+A3+…+AkS = A + A^2 + A^3 + … + A^k.InputThe input contains exactly one tes

2016-06-27 16:41:33 328

原创 树状数组(Binary indexed Tree)

代码int lowbit(int i){ return i & (-i);}int get_sum(int pos){ int rtn = 0; for(int i = pos; i >= 1; i -= lowbit(i)) rtn += c[i]; return rtn;}void modify(int pos, int delta){ for(int i

2016-06-26 14:45:19 259

原创 最短路算法

弗洛伊德(Floyd)设dist[k][i][j]dist[k][i][j]表示利用到1...k1...k作为中间点,ii到jj的最短路。for(int k = 1; k <= n; ++k)    for(int i = 1; i <= n; ++i)        for(int j = 1; j <= n; ++j)            dist[k][i][j] = min(dist

2016-06-25 11:02:58 321

原创 Balanced Number

DescriptionA balanced number is a non-negative integer that can be balanced if a pivot is placed at some digit. More specifically, imagine each digit as a box with weight indicated by the digit. When a

2016-06-23 11:39:27 815

原创 不知道名字的某题_20160622_2

Description已知规模为n∗nn*n的矩阵MM,处理TT次询问,对于每次询问给定矩阵VV,求Mk∗VM^k*VSolution传统做法用矩阵快速幂求出MkM^k,时间复杂度为O(T∗n3∗logk)O(T*n^3*logk)预处理对于询问次数较多的情况,快速幂的做法是较劣的,此时我们可以预先算出M0,M1,M2,...,M2iM^0, M^1, M^2, ..., M^{2^i} 答案矩阵

2016-06-22 23:28:06 275

原创 最近公共祖先(LCA)

代码// 倍增int maxbit;int dpth[maxn], ance[maxn][maxb];void dfs(int u, int fath){ dpth[u] = dpth[fath] + 1; ance[u][0] = fath; for(int i = 1; i <= maxbit; ++i) ance[u][i] = ance[ance[u][i-1]]

2016-06-22 19:00:07 212

原创 不知道名字的某题_20160622_1

Description给定序列 a1,...,ana_1, ..., a_n,求序列 b1,...,bnb_1, ..., b_n 满足 bi=Σajb_i = \Sigma a_j 其中 j & i = j\text{j & i = j} 1≤n≤201 \le n \le 20SolutionFWTvoid ftw(int left, int rght){ int mid = (le

2016-06-22 13:13:58 205

原创 图的连通性算法(Tarjan)

针对有向图// 求强连通分量:按割边缩点vector<int> edge[N];void add_edge(int u, int v){ edge[u].push_back(v);}int cnt, scc, top;int dfn[N], low[N], bel[N], stck[N]; // bel => belong, stck => stackbool inst[N]; //

2016-06-21 21:35:06 1430

原创 拓扑排序

利用栈实现概述 该方法的每一步均是输出当前无后继(即出度为0)的顶点。对于一个DAG,按此方法输出的序列是逆拓扑次序。因此设置一个栈(或向量)T来保存输出的顶点序列,即可得到拓扑序列。若T是栈,则每当输出顶点时,只需做人栈操作,排序完成时将栈中顶点依次出栈即可得拓扑序列。若T是向量,则将输出的顶点从T[n-1]开始依次从后往前存放,即可保证T中存储的顶点是拓扑序列。利用dfs实现概述 当从

2016-06-20 23:43:19 255

原创 AC-自动机(AC-Automachine)

代码代码// 0-Rootstruct trie{int size, indx[maxn][26], word[maxn], fail[maxn]; inline int idx(char ff){return ff - 'a';} inline void insert(char s[]){ int u = 0; for(int i = 0; s[i]; +

2016-06-20 13:07:27 672

原创 后缀数组(Suffix Array)

快排倍增代码快排倍增代码int n, arry[maxn];int rank[maxn], sa[maxn], _rank[maxn];bool cmpc(int i, int j){ return arry[i] < arry[j]; }int ll;bool cmps(int i, int j){ if(_rank[i] == _rank[j]){ if(

2016-06-19 13:24:46 527

原创 KMP

基本KMP算法基本KMP算法int fail[maxn];void get_fail(int arry[], int l){ fail[0] = fail[1] = 0; for(int i = 2, j = 0; i <= l; ++i){ while(j > 0 && arry[i] != arry[j+1]) j = fail[j]; if(ar

2016-06-19 13:12:10 204

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除