摘要:
1.要学的算法: 树形dp 虚树 树上差分 树链剖分 Splay LCT fhq_treap 左偏树 笛卡尔树 块状树 kdtree 带修莫队、树上莫队 点分治 边分治 动态点分治 整体二分 CDQ分治 可持久化线段树、并查集、trie树、平衡树 莫比乌斯反演,polya 杜教筛 洲阁筛 Min_2 阅读全文
摘要:
Capture Stars 圆的反演 #pragma GCC optimize(3) #include<bits/stdc++.h> using namespace std; #define y1 y11 #define fi first #define se second #define pi a 阅读全文
摘要:
"Regular Number" 思路: shifit and算法 代码: pragma GCC optimize(2) pragma GCC optimize(3) pragma GCC optimize(4) include using namespace std; define y1 y11 阅读全文
摘要:
"手铐" 思路: 缩环+树形dp 代码: pragma GCC optimize(2) pragma GCC optimize(3) pragma GCC optimize(4) include using namespace std; define y1 y11 define fi first d 阅读全文
摘要:
"2279" 思路:钩子公式 代码: 阅读全文
摘要:
"[ZJOI2009]取石子游戏" 思路: 博弈+dp,详见 "yyb博客" 代码: pragma GCC optimize(2) pragma GCC optimize(3) pragma GCC optimize(4) include using namespace std; define y1 阅读全文
摘要:
"星器" 思路: 势能分析法。 假设每颗星星的势能为$x^2+y^2$ 那么对于一行的两颗星星$(i, j), (i, k), j using namespace std; define y1 y11 define fi first define se second define pi acos( 阅读全文
摘要:
"The Nth Item" 思路: 先用特征根法求出通向公式,然后通向公式中出现了$\sqrt{17}$,这个可以用二次剩余求出来,然后可以O($log(n)$)求出。 但是还不够,我们先对$n$欧拉降幂,然后求base为$\sqrt{1e9}$的快速幂,预处理一些东西,就可以类似O(1)求出了。 阅读全文
摘要:
"2154: Crash的数字表格" 思路: 莫比乌斯反演+整除分块 代码: pragma GCC optimize(2) pragma GCC optimize(3) pragma GCC optimize(4) include using namespace std; define y1 y11 阅读全文
摘要:
"3529: [Sdoi2014]数表" 思路: 莫比乌斯反演+整除分块+树状数组维护前缀和 代码: pragma GCC optimize(2) pragma GCC optimize(3) pragma GCC optimize(4) include using namespace std; d 阅读全文
摘要:
"2820 YY的GCD" 思路: 莫比乌斯反演+整除分块 代码: pragma GCC optimize(2) pragma GCC optimize(3) pragma GCC optimize(4) include using namespace std; define y1 y11 defi 阅读全文
摘要:
"2301: [HAOI2011]Problem b" 思路: 莫比乌斯反演+整除分块 代码: pragma GCC optimize(2) pragma GCC optimize(3) pragma GCC optimize(4) include using namespace std; defi 阅读全文
摘要:
"E. New Year and Old Subsequence" 思路:线段树维护矩阵乘法。 代码: 阅读全文
摘要:
"5125: [Lydsy1712月赛]小Q的书架" 思路: 分治优化决策单调性dp 代码: pragma GCC optimize(2) pragma GCC optimize(3) pragma GCC optimize(4) include using namespace std; defin 阅读全文
摘要:
"3720: Gty的妹子树" 思路:块状树 代码: pragma GCC optimize(2) pragma GCC optimize(3) pragma GCC optimize(4) include using namespace std; define y1 y11 define fi f 阅读全文
摘要:
模板: struct Circle_Square_Tree { const static int N = 2e4 + 10; vector G[N]; int dp[N], anc[N][18], n; LL dis[N], cir[N]; //环的大小 bool vis[N];//记录到方点的最短 阅读全文
摘要:
"2125: 最短路" 思路:构建圆方树,然后如果两个点的lca是圆点,直接算,否则跳到环上相应的位置,再求环上两个点的最短距离。 代码1(在重链上跳): pragma GCC optimize(2) pragma GCC optimize(3) pragma GCC optimize(4) inc 阅读全文
摘要:
"1023: [SHOI2008]cactus仙人掌图" 思路:先求出非环上的最长链,然后环上用单调队列优化dp。 代码: pragma GCC optimize(2) pragma GCC optimize(3) pragma GCC optimize(4) include using names 阅读全文
摘要:
"4316: 小C的独立集" 思路:先将树上的转移做好。然后环上的转移就是强制最上面的的点选或者不选,然后在环上跑一遍转移就可以了。 代码: pragma GCC optimize(2) pragma GCC optimize(3) pragma GCC optimize(4) include us 阅读全文
摘要:
"D Shortest Cycle" 思路:n大于某个值肯定有个三元环,否则floyd找最小环。 代码: pragma GCC optimize(2) pragma GCC optimize(3) pragma GCC optimize(4) include using namespace std; 阅读全文
摘要:
1.DAG 按照拓扑序从小到大处理,对于每个节点,将所有连接它的点的lca求出来,它在支配树上的父亲就是这个lca。 2.一般图 模板: vector g[N], rg[N], tg[N], G[N]; int in[N], dfn[N], rak[N], fa[N], sdom[N], idom[ 阅读全文