随笔分类 -  图论--------------------------

摘要:【题目】 " 6354. 「CodePlus 2018 4 月赛」最短路" 【题意】给定n个点,m条带权有向边,任意两个点i和j还可以花费(i xor j) C到达(C是给定的常数),求A到B的最短距离。$n \leq 10^5,m \leq 5 10^5$。 【算法】异或优化建图+Dijkstra 阅读全文
posted @ 2018-05-24 14:31 ONION_CYC 阅读(447) 评论(0) 推荐(0)
摘要:【题目】 "百度科学家(困难)" 【题意】给定n个非负整数,最终需要选择一个数字集合。m次操作,修改一个非负整数,或规定选择第x个数字则必须选择区间[l,r]内的数字。最终求非空数字集合的最小值。$n,m \leq 10^5$。 需要特别注意,被替换了的非负整数也是可以选择的。每一个非负整数都是本质 阅读全文
posted @ 2018-05-12 23:43 ONION_CYC 阅读(464) 评论(0) 推荐(0)
摘要:【题意】给定n个点m条边的无向连通图,每条边有非负边权wi,求从1到n的路径,使得路径上的边权异或和最大。n,m include define int long long using namespace std; const int maxn=100010; int n,m,d[maxn],firs 阅读全文
posted @ 2018-05-04 18:36 ONION_CYC 阅读(180) 评论(0) 推荐(0)
摘要:【题目】#2146. 「SHOI2017」寿司餐厅 【题意】给定n种寿司的代号,取区间[i,j]的寿司收益是d[i,j]和所有子区间的d,吃了c(c>0)种代号x的寿司的代价是mx^2+cx,给定n,m和矩阵d(有负数!),求最大收益。n<=100。 【算法】最大权闭合子图 【题解】开始考虑每个区间 阅读全文
posted @ 2018-04-07 15:18 ONION_CYC 阅读(440) 评论(0) 推荐(1)
摘要:【题目】LibreOJ 【题意】n场游戏,有三种车ABC,给定长度为n的字符串,'a'表示不能选A,'b''c'同理,'x'表示不限,至多d个'x'。有m个限制(i,hi,j,hj)表示如果第i场选择车hi,那么第j场必须选择车hj。求可行方案,或无解。n<=10^5,d<=8。 【算法】2-sat 阅读全文
posted @ 2018-03-19 22:49 ONION_CYC 阅读(332) 评论(0) 推荐(0)
摘要:【题意】有n个城镇被分成了k个郡,有m条连接城镇的无向边。要求给每个郡选择一个城镇作为首都,满足每条边至少有一个端点是首都。n,m,k<=10^6。 【算法】2-SAT,前后缀优化建图 【题解】每个城镇只有作为首都和不是首都两种选项,即2-sat问题。 2-sat问题中所有边必须加反向边,下面过程忽 阅读全文
posted @ 2018-03-19 16:43 ONION_CYC 阅读(402) 评论(0) 推荐(0)
摘要:【题目】B. Restoration of string 【题意】当一个字符串在字符串S中的出现次数不小于任意子串的出现次数时,定义这个字符串是高频字符串。给定n个字符串,求构造出最短的字符串S满足着n个字符串都是高频字符串,若不存在输出NO,若存在多个输出字典序最小的一个。n<=10^5,Σ|si 阅读全文
posted @ 2018-03-15 21:18 ONION_CYC 阅读(320) 评论(0) 推荐(0)
摘要:【题目】D. Best Edge Weight 【题意】给定n个点m条边的带边权无向连通图,对每条边求最大边权,满足其他边权不变的前提下图的任意最小生成树都经过它。n,m<=2*10^5,1<=wi<=10^9。 【算法】最小生成树+倍增LCA+并查集 【题解】首先求出图的一个最小生成树M,则所有边 阅读全文
posted @ 2018-03-07 22:08 ONION_CYC 阅读(405) 评论(0) 推荐(0)
摘要:【参考】 ★仙人掌相关问题的处理方法(未完待续) ★WC2017-immortalCO Making Graph into Trees 【DFS树】 仙人掌图:每条边至多在一个环上的图。 仙人掌图中每个环相当于一个点双连通分量,那么用Tarjan算法处理dfs树。 对于树边(low[y]>dfn[x 阅读全文
posted @ 2018-01-19 10:55 ONION_CYC 阅读(3933) 评论(0) 推荐(5)
摘要:【题意】给定带边权仙人掌图,Q次询问两点间最短距离。n,m,Q<=10000 【算法】圆方树处理仙人掌问题 【题解】树上的两点间最短路问题,常用倍增求LCA解决,考虑扩展到仙人掌图。 先对仙人掌图建圆方树,圆圆边和原图边权一致。对于每个方点代表的环,记深度最小的点为x,则圆方边的边权是圆点到x的最短 阅读全文
posted @ 2018-01-19 09:17 ONION_CYC 阅读(1355) 评论(0) 推荐(5)
摘要:【题意】给定仙人掌图,求最大独立集(选择最大的点集使得点间无连边)。n<=50000,m<=60000。 【算法】DFS处理仙人掌图 【题解】参考:【BZOJ】1023: [SHOI2008]cactus仙人掌图 对仙人掌进行无向图的点双连通分量Tarjan算法,树边正常DP,环边(low[y]<= 阅读全文
posted @ 2018-01-18 20:17 ONION_CYC 阅读(567) 评论(0) 推荐(1)
摘要:【题意】给定仙人掌图(每条边至多在一个简单环上),求直径(最长的点对最短路径)。n<=50000,m<=10^7。 【算法】DFS树处理仙人掌 【题解】参考:仙人掌相关问题的处理方法(未完待续) 对仙人掌建立DFS树,参考无向图的点双连通分量Tarjan算法,在访问x时容易知道边(x,y)是否属于一 阅读全文
posted @ 2018-01-18 10:18 ONION_CYC 阅读(865) 评论(0) 推荐(0)
摘要:【题目】D. Almost Acyclic Graph 【题意】给定n个点的有向图(无重边),问能否删除一条边使得全图无环。n<=500,m<=10^5。 【算法】拓扑排序 【题解】找到一个简单环,则欲删除的边一定经过该环。尝试环上的每一条边(至多n条边)后再次拓扑排序判断全图是否有环。 拓扑排序后 阅读全文
posted @ 2018-01-15 13:10 ONION_CYC 阅读(594) 评论(0) 推荐(0)
摘要:【题目】E. Logical Expression 【题意】令x=11110000(2),y=11001100(2),z=10101010(2),n次询问,每次要求用[与][或][非][括号]构成含至多各1个xyz的表达式使得结果等于给定的数字(0~255),要求表达式最短(一样短时字典序最小)。n 阅读全文
posted @ 2018-01-10 07:02 ONION_CYC 阅读(607) 评论(0) 推荐(0)
摘要:【题意】给定无向带权图,求最小生成树数。n<=100,m<=1000,相同权值边数<=10。 【算法】最小生成树(MST),DFS 【题解】首先需要一个结论:同个图的不同MST一定满足同个权值的边数相同。 考虑kruskal算法的过程,已经统计了<x的所有边,现在考虑=x的边,根据生成树的性质一定要 阅读全文
posted @ 2017-12-29 09:42 ONION_CYC 阅读(377) 评论(0) 推荐(0)
摘要:【题目】C. Bipartite Segments 【题意】给定n个点m条边的无向连通图,保证不存在偶数长度的简单环。每次询问区间[l,r]中包含多少子区间[x,y]满足只保留[x,y]之间的点和边构成的图是一个二分图。 【算法】Tarjan缩点(找环) 【题解】如果两个奇数长度的环相交,会得到一个 阅读全文
posted @ 2017-12-28 08:36 ONION_CYC 阅读(247) 评论(0) 推荐(1)
摘要:【题目】D. Flights for Regular Customers 【题意】给定n个点m条边的有向图,每条边有di表示在经过该边前必须先经过di条边,边可重复经过,求1到n的最小经过边数。n,m<=150,di<=10^9,time=4s。 【算法】floyd+矩阵快速幂 【题解】需要计算步数 阅读全文
posted @ 2017-12-14 12:27 ONION_CYC 阅读(352) 评论(0) 推荐(0)
摘要:【题意】求一个k的倍数使其数位和最小,输出数位和,k<=10^5。 【算法】最短路 【题解】考虑极端情况数字是可能爆long long的(例如k*num=100...000),所以确定基本方向是依次考虑答案x的每个数位。 考虑x初始是1~9,每次在后面加一位,就有x*10+0~9十种操作。 但是x可 阅读全文
posted @ 2017-11-05 21:10 ONION_CYC 阅读(854) 评论(0) 推荐(0)
摘要:【题意】给定无向图,距离定义为边权和+最大点权,询问若干个两点最短距离。n<=250。 【算法】排序+floyd 【题解】考虑floyd的过程是每次找一个中转点,为了在当前找到一条新路径时方便地统计路径上的最大点权: 对点权进行排序,按点权从小到大的顺序枚举中转点,这样最大点权一定是i,j,k三点中 阅读全文
posted @ 2017-10-19 21:50 ONION_CYC 阅读(196) 评论(0) 推荐(0)
摘要:【题意】给定n个点的图,正权无向边,正负权有向边,保证对有向边(u,v),v无法到达u,求起点出发到达所有点的最短距离。 【算法】拓扑排序+dijkstra 【题解】因为有负权边,直接对原图进行spfa,加slf优化后可过,但是这道题就没意思了。 理论上,最短路问题用spfa是不能保证复杂度的,但d 阅读全文
posted @ 2017-10-19 21:06 ONION_CYC 阅读(353) 评论(0) 推荐(0)