
图论
WayJasy
叁肆伍叁,伍肆伍物
展开
-
codeforces1252F Regular Forestation(树hash判子树同构)
传送门题意:给定一棵树,割掉某个点后树能分成xxx个相同的子树,求最大的xxx.思路:答案节点很容易发现就是树的重心。因此只要判断重心的子树是否同构就行了。我的方法是处理出重心的子节点的hash值,n方暴力判断每个节点的hash值。#include<bits/stdc++.h>using namespace std;typedef long long ll;const...原创 2019-11-10 22:16:53 · 199 阅读 · 0 评论 -
2017四川省赛 Dynamic Graph (bitset)
传送门题意:给定nnn个点,mmm条边的有向图,初始每个点颜色是白色,qqq次操作,每次操作将某个节点的颜色取反(白变黑,黑边白),每次操作求出二元组(u,v)(u,v)(u,v),从 uuu 到 vvv 的路径上无白色顶点的路径数。思路:暴力修改点,每次修改后dfsdfsdfs一遍求路径,dp[u]dp[u]dp[u]表示以uuu为初始点的路径数转移:dp[u]+=dp[v]dp[u]...原创 2019-10-05 21:28:48 · 150 阅读 · 0 评论 -
HDU4786 A - Fibonacci Tree (最大最小生成树)
VJ传送门题意:问你在一个无向图中是否存在一个生成树,权值为斐波拉契数。思路:生成树的权值范围必定在最小生成树和最大生成树的权值范围之间, 因此用 kruskal 分别求出最大最小生成树权值后,然后二分判断 是否是FIB数,或者用STL都可以。(有段时间没做题了,做做水题找下感觉)#include<iostream>#include<algorithm>#i...原创 2019-08-26 22:47:48 · 361 阅读 · 0 评论 -
hdu 6611 K Subsequence(最大费用流)
hdu6611题意:从一个无序数组中选出kkk个非严格递增序列使得总和最大。思路:(出题人卡spfaspfaspfa费用流还是比较骚的。。)源点向每一个数建一条容量为1,花费为0的边。 将每个数拆成两个点保证只选中一次,点间建一条容量为1,费用为−a[i]-a[i]−a[i]的边,小的点向大的点连容量为1,花费为0的边,然后点向汇点建一条容量为1,费用为0的边。 还需要一个超级汇点,汇点...原创 2019-08-16 11:37:53 · 202 阅读 · 0 评论 -
BZOJ 1001: [BeiJing2006]狼抓兔子 (最小割)
传送门题意不难理解,要求最少数量,其实就是求一个最小割。建图也简单。。有几个坑点:①边的数量大约是6倍的nm (因为三个方向)②点的数量只有nm,最多1e6,注意别开大了MLE其他就是正常的最小割模板。#include <cstdio>#include <cstdlib>#include <cmath>#include <cstring&...原创 2019-08-02 11:09:28 · 127 阅读 · 0 评论 -
POJ 1275 差分约束
传送门题意:有一个商店,给出了这个商店一天中每个小时所需要的最少收银员数量R[i]R[i]R[i]。有nnn个求职者,每个求职者有一个开始工作时刻t[i]t[i]t[i],在t[i]t[i]t[i]时刻后的八小时,这个求职者都在工作。问老板最少需要雇佣多少个员工,满足商店营业的条件。思路构造差分约束系统。(以下下标均从1开始)令S[i]S[i]S[i]表示前 iii 个小时在工作的员...原创 2019-08-04 23:03:05 · 538 阅读 · 0 评论 -
Codeforces Round #575 (Div. 3) F. K-th Path
题目地址题意:求出所有点对间距离的第kkk短路。题解:注意到虽然边的数量很多,但是kkk的数量很小,所以答案最差情况就在对边权排序后的第kkk短条,因此排序后重新建图跑一遍floydfloydfloyd处理出任意点间最短路。 然后就可以乱搞了。#include <iostream>#include <cstdio>#include <cstring>...原创 2019-07-26 14:35:23 · 129 阅读 · 0 评论 -
2019ICPC南昌邀请赛正赛 G (Tarjan)
题目地址题意:有n个人和3种状态,每个人在不同的状态下有个能力值,两人在一种模式下比赛,能力值高的人获胜。询问某个人能否获胜。题解:Tarjan对每个状态进行缩点。先对每个状态的人按照能力值从大到小排序,能力值高的向能力值低的人连一条边。。然后跑一遍Tarjan,最后入度为0的联通分量里的所有点都能获胜#include<iostream>#include<algori...原创 2019-07-26 14:31:05 · 306 阅读 · 0 评论 -
2019HDU多校一 E (最短路+最小割)
谁能想到签到题是个最短路+网络流??题目题意:给出一个图,切掉某些边后1~n的最短路变长,求割掉的最小价值题解:以1为起点跑一遍最短路以n为起点再跑一遍。将满足dis1[v]+dis2[u]+w=minroaddis1[v]+dis2[u]+w=minroaddis1[v]+dis2[u]+w=minroad的边建图跑个最小割就是答案。#include <bits/stdc++...原创 2019-07-22 18:22:20 · 142 阅读 · 0 评论 -
POJ3169 差分约束系统
http://poj.org/problem?id=3169题意:n头牛初始排列1~n, 现在给出几个限制条件,ML个条件A,B,C表示编号为A,B的奶牛的最远距离只能是C。MD个条件A,B,C表示A,B奶牛最近距离为C,求出编号为1与编号为n的奶牛的最远距离如果无法满足约束条件输出−1-1−1,最远距离如果可以无限远输出−2-2−2思路:看到有约束条件的题基本可以想到用差分约束系统求...原创 2019-08-04 00:52:42 · 182 阅读 · 0 评论 -
POJ1275 差分约束系统
传送门题意:有一个商店,给出了这个商店一天中每个小时所需要的最少收银员数量R[i]R[i]R[i]。有nnn个求职者,每个求职者有一个开始工作时刻t[i]t[i]t[i],在t[i]t[i]t[i]时刻后的八小时,这个求职者都在工作。问老板最少需要雇佣多少个员工,满足商店营业的条件。思路构造差分约束系统。(为了不出现负数,以下下标均从1开始)令S[i]S[i]S[i]表示前 iii ...原创 2019-08-04 23:01:51 · 138 阅读 · 0 评论 -
HDU2767 强连通 Tarjan缩点
hdu2767题意:求最少要添加几条边使得已知的图变成强连通图题意:求最少要添加几条边使得已知的图变成强连通图题意:求最少要添加几条边使得已知的图变成强连通图题解:Tarjan,缩点,那么只需要在缩成的点之间建边就行了。题解:Tarjan,缩点,那么只需要在缩成的点之间建边就行了。题解:Tarjan,缩点,那么只需要在缩成的点之间建边就行了。缩完点后若某个强连通分量的出度或者入度为0,那么就...原创 2019-07-10 17:12:19 · 201 阅读 · 0 评论 -
Meet 紧急集合 (LCA模板题)
https://vjudge.net/contest/302013#problem/A题意:给定一棵n个点的树,m次查询,每次查询3个点,要求这3个点到树上某个点的距离总和最小,输出选定的点和距离题意:给定一棵n个点的树,m次查询,每次查询3个点,要求这3个点到树上某个点 的距离总和最小,输出选定的点和距离题意:给定一棵n个点的树,m次查询,每次查询3个点,要求这3个点到树上某个点的距离总和最小...原创 2019-06-21 17:10:01 · 362 阅读 · 0 评论 -
Codeforces Round #565 (Div. 3) E (最小支配集)
http://codeforces.com/contest/1176/problem/E题意:n个点m条边组成的无自环图,要求选出不超过⌊n/2⌋个点,使得图中任意一条边都与选出的某个点相邻,输出这些点n个点m条边组成的无自环图,要求选出不超过⌊n/2⌋个点,使得图中任意一条边都与选出的某个点相邻,输出这些点n个点m条边组成的无自环图,要求选出不超过⌊n/2⌋个点,使得图中任意一条边都与选出的某...原创 2019-06-10 17:25:47 · 176 阅读 · 0 评论