随笔分类 - 图论
摘要:战狂也在玩《魔方王国》。他只会征兵而不会建城市,因此他决定对小奇的城市进行轰炸。小奇有n 座城市,城市之间建立了m 条有向的地下通道。战狂会发起若干轮轰炸,每轮可以轰炸任意多个城市。每座城市里都有战狂部署的间谍,在城市遭遇轰炸时,它们会通过地下通道撤离至其它城市。非常...
阅读全文
摘要:Snuke 喜欢旗子.Snuke 正在将N 个旗子摆在一条线上.第i 个旗子可以被放在位置xi 或yi 上.Snuke 认为两个旗子间的最小距离越大越好. 请你求出最大值.今天这都是些集训队作业啊!这个题本来以为一眼能做结果死磕磕不动二分答案肯定是要的,问题是怎么判定...
阅读全文
摘要:Snuke 喜欢旗子.Snuke 正在将N 个旗子摆在一条线上.第i 个旗子可以被放在位置xi 或yi 上.Snuke 认为两个旗子间的最小距离越大越好. 请你求出最大值.今天这都是些集训队作业啊!这个题本来以为一眼能做结果死磕磕不动二分答案肯定是要的,问题是怎么判定...
阅读全文
摘要:胆小鬼连幸福都会害怕,碰到棉花都会受伤,有时还被幸福所伤。——太宰治《人间失格》 回顾我的一生,一共有n个事件,每一个事件有一个幸福值p_i。我想用n-1条线把所有的事件连起来,变成一个连通块。一条连接了事件x和事件y的线会产生min(p_x mod p_y,p_y ...
阅读全文
摘要:胆小鬼连幸福都会害怕,碰到棉花都会受伤,有时还被幸福所伤。——太宰治《人间失格》 回顾我的一生,一共有n个事件,每一个事件有一个幸福值p_i。我想用n-1条线把所有的事件连起来,变成一个连通块。一条连接了事件x和事件y的线会产生min(p_x mod p_y,p_y ...
阅读全文
摘要:你需要构造一个1~n的排列,使得它满足m个条件,每个条件形如(ai,bi),表示ai必须在bi前面。在此基础上,你需要使它的字典序最小。今天的题目比较和善了,然而排名又下降不少,TAT...第一题就是个一眼题嘛,拓扑排序字典序最小?优先队列啊。。。。#include#...
阅读全文
摘要:你需要构造一个1~n的排列,使得它满足m个条件,每个条件形如(ai,bi),表示ai必须在bi前面。在此基础上,你需要使它的字典序最小。今天的题目比较和善了,然而排名又下降不少,TAT...第一题就是个一眼题嘛,拓扑排序字典序最小?优先队列啊。。。。#include#...
阅读全文
摘要:我们注意到有ai>1,所以,ai+aj为质数当且仅当两者奇偶性不同我们可以以此将这个图变成一个二分图跑匈牙利算法即可(这个题n只有40害得我想了半天状压dp和折半搜索,坑。。。)#pragma GCC optimize("O3")#pragma G++ optimiz...
阅读全文
摘要:我们注意到有ai>1,所以,ai+aj为质数当且仅当两者奇偶性不同我们可以以此将这个图变成一个二分图跑匈牙利算法即可(这个题n只有40害得我想了半天状压dp和折半搜索,坑。。。)#pragma GCC optimize("O3")#pragma G++ optimiz...
阅读全文
摘要:题意:给定M个二元组(A_i, B_i),求X_1, ..., X_N满足:对于任意(A_i, B_i),有|X_{A_i} - X_{B_i}| = 1成立。我们发现,如果有解,那么一定存在一组解只有0,1构成证明:对于一个可行的解X,显然解集Y(Yi=Xi%2)也...
阅读全文
摘要:题意:给定M个二元组(A_i, B_i),求X_1, ..., X_N满足:对于任意(A_i, B_i),有|X_{A_i} - X_{B_i}| = 1成立。我们发现,如果有解,那么一定存在一组解只有0,1构成证明:对于一个可行的解X,显然解集Y(Yi=Xi%2)也...
阅读全文
摘要:模型显然就是最短路模型,我们考虑怎么计算距离首先,我们不能从起点开始跑最短路,鉴于此题是无向图,我们可以令dist[T]=p(即终点的距离为目标货运数量)这样就可以从终点开始跑最短路,dist[i]表示从i运送p个钥匙所需要的最小数量现在我们考虑如何计算Dis(u,v...
阅读全文
摘要:模型显然就是最短路模型,我们考虑怎么计算距离首先,我们不能从起点开始跑最短路,鉴于此题是无向图,我们可以令dist[T]=p(即终点的距离为目标货运数量)这样就可以从终点开始跑最短路,dist[i]表示从i运送p个钥匙所需要的最小数量现在我们考虑如何计算Dis(u,v...
阅读全文
摘要:更新中//Templates From Extended_Ash/Cooevjnz/JacaJava/Tubbcrafft//To be continued...//Suffix Automationchar str[N]; int s[N][26],mx[N],f...
阅读全文
摘要:更新中//Templates From Extended_Ash/Cooevjnz/JacaJava/Tubbcrafft//To be continued...//Suffix Automationchar str[N]; int s[N][26],mx[N],f...
阅读全文
摘要:这个题意很简单,就是问你连一条边会增加多少双联通点对按照一般的方法,先用Tarjan缩点化为一颗树,每次连起来就在树上找路径统计答案答案的统计方法,设树上节点i(原图的一个双联通块)的大小为v[i]那么一条路径[x,y]的端点被连接起来,贡献应该是(Σv[i])^2-...
阅读全文
摘要:这个题意很简单,就是问你连一条边会增加多少双联通点对按照一般的方法,先用Tarjan缩点化为一颗树,每次连起来就在树上找路径统计答案答案的统计方法,设树上节点i(原图的一个双联通块)的大小为v[i]那么一条路径[x,y]的端点被连接起来,贡献应该是(Σv[i])^2-...
阅读全文
摘要:最近的题目都太难了啊,于是在oj上面瞎找题目来切正好这一套题目名都比较优雅于是就选了这一套这个看起来十分像并查集没错,我们发现,如果两个结论互为逆反命题,那么这两个结论等价而且一个逆命题的逆命题或者是反命题的反命题就是自己所以我们发现,1和2是等价的,这就如同敌人的敌...
阅读全文
摘要:最近的题目都太难了啊,于是在oj上面瞎找题目来切正好这一套题目名都比较优雅于是就选了这一套这个看起来十分像并查集没错,我们发现,如果两个结论互为逆反命题,那么这两个结论等价而且一个逆命题的逆命题或者是反命题的反命题就是自己所以我们发现,1和2是等价的,这就如同敌人的敌...
阅读全文
摘要:给你一个联通无向图,问你要修建几条边使得该图是一个边双连通图无比经典,肯定是一个tarjan求桥,删掉后缩点,变成一颗树,看看有几个叶子结点,叶子结点一对对连起来即可#include#include#include#includeusing namespace std...
阅读全文