关闭

[色多项式] UOJ #308. 【UNR #2】UOJ拯救计划 & SRM 717 div1 AcyclicOrientation

一个图的 kk 染色数是关于 kk 的 nn 次(?) 多项式 称为色多项式 那么这里模6 我们只要知道模2和模3的值 然后分类讨论下就好了 一张图的0染色数是0,1染色数等于[m=0][m=0],2染色数与二分图的联通块个数有关#include #include #include #include #define...
阅读(123) 评论(0)

[贪心 构造] SRM 717 div1 ScoresSequence

首先他保证图唯一确定,那么可以把图给构出来 类似这个题,按照出度从大到小排序,出度最大那个点怎么分配,类似无向图可图判定,应该是向出度小的点连,使得出度大的向他连,让出度大的出度减小// BEGIN CUT HERE #include #include // END CUT HERE #include #include...
阅读(95) 评论(0)

[动态最小生成树 CDQ分治] SnackDown 2017 Online Elimination Round #GQUERY Game Revisited

给每条边的权值赋为编号 那么就相当于一个做kruskal的过程 也就是一个最小生成树的过程 跟BZOJ 2001 [Hnoi2010]City 城市建设一样? 被阿爷教导了 多年前的模板又臭又长#include #include #include using namespace std; typedef pair abc...
阅读(194) 评论(0)

[特殊的一般图最大匹配] BZOJ 4874 筐子放球

我们把能够放在一个桶里的球连边 就是个最大匹配 这种图比较特殊 其实是比较老的模型了 在算法合集之《数据关系的简化》就有讲过一个连通块 必然能够达到⌊n2⌋\lfloor {n\over 2}\rfloor 这个上界 具体我们把一个连通块拎成一棵树 其中左儿子和自己同名 右儿子和自己同姓 我们每次必然能够找到一个点 他的儿子全是叶子 如果只有一个儿子 直接连 不然 可以选择一个 把另一个...
阅读(112) 评论(0)

[BEST定理 矩阵树定理] BZOJ 3659 Which Dreamed It

BEST theorem 一个证明?注意区分下题目中要求的“欧拉回路”的条数和定理中欧拉回路的条数 欧拉回路是个回路 所以存在循环同构 题中要求起点是1 实际上还要乘上1的度数 因为从1的任一边出发在题中都算作一种不同方案#include #include #include using namespace std; typedef lon...
阅读(539) 评论(0)

[可图性判定 Havel-Hakimi定理 构造] Codeforces Gym 100269 NEERC 13 Northern K. Kids in a Friendly Class

黑点和白点的个数可以从小到大枚举 黑白点之间的连边是显然的 那么对于白点或黑点内部 我们就需要连边使得每个点度数相同每次选两个剩余度最大的点相连是错误的 反例 6 2那么应该怎么连 需要Havel-Hakimi定理 由非负数组成的非增序列s:d1,d2,⋯,dn(n≥2,d1≥1)s:d_1,d_2,\cdots,d_n(n\geq2,d1\geq1)是可图的,当仅当序列s1:d2−1,d3...
阅读(526) 评论(0)

[矩阵乘法转图论 强连通] Codeforces 403C #236 (Div. 1) C. Strictly Positive Matrix

考虑矩阵乘法在图论下的意义 Aki,j>0A^k_{i,j}>0意味着ii到jj存在长度为kk的路径 我们考虑两两之间都有路径 那么必定是一整个强连通分量 这是必要性 因为至少有子环 当kk足够大时 肯定能够成立 这是充分性#include #include #include #define read(x) scanf("%d",&(x...
阅读(158) 评论(0)

[完全二分图生成树个数] BZOJ 4766 文艺计算姬

结论题 我也不会证 Kn,m=nm−1∗mn−1K_{n,m}=n^{m-1}*m^{n-1}#include #include #include using namespace std; typedef long long ll;ll n,m,P;inline ll mul(ll x,ll y){ return (x*y-(ll)(((...
阅读(507) 评论(0)

[无向图简单环计数 状压DP] Codeforces 11D Beta Round #11 D. A Simple Task

这是NP的 算是一道模板题 学习下#include #include #include #define read(x) scanf("%d",&(x)) using namespace std; typedef long long ll;const int N=20;int n,m; int w[N][N]; ll f[1<<N][N],an...
阅读(113) 评论(0)

[真正的单色三角形] BZOJ 3498 PA2009 Cakes

Description给定一个无自环重边的无向图,求这个图的三元环的个数以及补图的三元环个数。 n≤105,m≤105n ≤ 10^5,m ≤ 10^5PS. 可以在这里交Analysis这个东西 首先我们可以用BZOJ 2916 [Poi1997]Monochromatic Triangles的方法算出原图三角形和补图三角形的个数之和 然后我们再算出原图三角形的个数就好了 以下的代码都是求原图...
阅读(592) 评论(0)

[竞赛图三元环存在性判断] HDU 4324 Triangle LOVE

给一个竞赛图 判断是否有三元环 首先 如果我们任意一个环 就可以找到一个三元环 证明: 假设有环上三个相邻的点a-> b-> c 如果c->a有边 就已经形成了一个三元环 如果c->a没边 那么a->c肯定有边 这样就形成了一个n-1元环 递归即可 我们可以考虑Tarjan求出强连通分量即可一个强连通分量必定包含一个环 不考虑读入 判断单次 O(n+m)O(n...
阅读(374) 评论(0)

[最小环 最小环计数 最大平均环 模板题] POJ 1734 Sightseeing trip & FZU 2090 旅行社的烦恼 & POJ 2949 Word Rings

不多说 网上有很多#include #include #include #include #define cl(x) memset(x,0,sizeof(x)) using namespace std; const int N=105; const int oo=1<<29; int n,m,Ans; int...
阅读(186) 评论(0)

[子集DP 斯坦纳树 模板题] HDU 4085 Peach Blossom Spring & BZOJ 4006 [JLOI2015]管道连接

斯坦纳树的模板题 状态f[s][j]f[s][j]表示 状态s表示的点集 在 j 连通 的代价 层间转移很轻易 层内转移 用最短路算法 平均情况下SPFA更好些 这两道题都可以生成森林而不是树 那么加一个check检验下#include #include #include #include #define cl(x)...
阅读(149) 评论(0)

[点双连通分量 缩点 树链剖分] Codeforces 487E #278 (Div. 1) E. Tourists

点双连通分量的缩点技巧 来自:http://blog.csdn.net/a_crazy_czy/article/details/52244069 在这里我们使用这样一种方法:对于每一个点双连通分量,我们建一个新建点储存点双所有点的最小权值,然后该点向点双内所有不是深度最小的点连一条边,然后深度最小的点(大多情况为割点,当然树根不一定是割点)向这个新建点连边。  注意到这棵树一定是普通...
阅读(216) 评论(0)

[BFS Tarjan_LCA 生成树] CERC 2016 H Hangar Hurdles

就是题解写的这样了 #include #include #include #include #define X first #define Y second using namespace std; typedef pair abcd; inline char nc(){ static char buf[100000],*p1=buf,*p2=buf;...
阅读(349) 评论(0)

[XOR最小生成树 分治 Trie || Prim 堆] BNUOJ 52318 Be Friends

关于位运算生成树问题 尛焱轟在APIO上专门讲过 一些杂七杂八的东西 不过还是没怎么搞清楚 这个可以分治 显然对于最高位 为0的一团 为1的一团 那么只需要找最小的一条边连接 这个可以在其中一半枚举 另一半建成Trie在上面查询 然后分治到低一位 #include #include #include #include using namespace std; typ...
阅读(207) 评论(0)

[AND最大生成树 分治 Trie || Kruskal] UOJ Goodbye Yiwei C #176. 新年的繁荣

这个直接上题解吧 :http://vfleaking.blog.uoj.ac/blog/1244 Kruskal  用尛焱轟的话来说就是 枚举边权 可以发现一种边权最多只有O(m)个联通块需要合并 O(m 2^m a(n)) #include #include #include using namespace std; typedef long long ll; inli...
阅读(159) 评论(0)

[LCT 边双连通分量缩点] BZOJ 2959 长跑

一个边双连通分量肯定可以定向成一个环 那么就缩点 每次连接 要是本来不连通 就连起来 连通的话就把树上路径全缩起来 询问就是树上路径的值 #include #include #include #include #include #include using namespace std; typedef pair abcd; typ...
阅读(152) 评论(0)

[K短路 可持久化堆] HDU 5960 Subsequence

建图不难 然后直接上K短路 A*被完虐 #include #include #include #include #include #include #define cl(x) memset(x,0,sizeof(x)); using namespace std; typedef long long ll; inline char nc(){ static char buf[1000...
阅读(213) 评论(0)

[K短路 可持久化堆 最短路径树] JDFZ 2978 第k短路(强)

链接:https://oj.jdfz.com.cn/oldoj/problem.php?id=2978 鼎爷的【课件】堆的可持久化和k短路 #include #include #include #include #include #include #define cl(x) memset(x,0,sizeof(x)); using namespace std; ty...
阅读(164) 评论(0)
66条 共4页1 2 3 4 下一页 尾页
    个人资料
    • 访问:261085次
    • 积分:11910
    • 等级:
    • 排名:第1320名
    • 原创:969篇
    • 转载:3篇
    • 译文:0篇
    • 评论:49条
    最新评论