上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 22 下一页
摘要: 有限制的问题,显然考虑全选再根据限制去掉的想法较优,我们发现一个点四周的点受限,其x或者y差一,也就是说奇偶性不同,那我们可以将其分成白点和黑点,就变成了最小割的问题,将每个白点向受限制的黑点连边,capacity为INF,每个黑点向汇点连边,capacity为该点的值,同理,源点向每个白点连边,这 阅读全文
posted @ 2020-02-12 14:01 GRedComeT 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 简单的费用流问题,每个人对每个任务连边,每个任务对汇点连,源点对每个人连,最大费用取反即可 #include<bits/stdc++.h> using namespace std; #define lowbit(x) ((x)&(-x)) typedef long long LL; const in 阅读全文
posted @ 2020-02-12 12:44 GRedComeT 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 简单的最大流问题,一样的设源点汇点,每个单位向每个餐桌连capacity为1的边,源点向每个单位连capacity为人数的边,每个餐桌向汇点连capacity为座位数的边,跑最大流,若flow=总人数则有方案,遍历每一个单位流量为1的点即可 #include<bits/stdc++.h> using 阅读全文
posted @ 2020-02-12 12:11 GRedComeT 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 最小路径覆盖=节点数-最大匹配数,拆成二分图跑dinic/匈牙利即可,注意输出路径的时候判断拆成的入点和出点和另加的反向边 #include<bits/stdc++.h> using namespace std; #define lowbit(x) ((x)&(-x)) typedef long l 阅读全文
posted @ 2020-02-12 11:54 GRedComeT 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 本题很简单的费用流问题,有石头的点需要限制,那我们就可以拆点,capacity为1就可以限制,然后cost为-1,直接跑板子就可以了,注意输出的时候找残量网络的反向边 阅读全文
posted @ 2020-02-11 22:23 GRedComeT 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 给你一个数列,有一个操作,将一段数字变成其和除以个数,求字典序最小的那一个,分析知,求字典序最小,就是求一个不下降序列,但我们此时有可以更改数字的操作,已知已经不下降的序列不会因为操作而变的更小,只有右边的数比左边的数小的时候才需要操作,那我们可以维护一个单调栈,依次加入数字,栈顶就是当前最右的数字 阅读全文
posted @ 2020-02-11 18:18 GRedComeT 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 本题题目有点绕,结合图例大概可知,P(x,y)是以点给出的一个凸包,T是一个点集合,也构成一个凸包,构成的方法就是将原点(0,0)在P(x,y)的边上跑,移动坐标轴,其构成的最远点是个凸包,我们可以画出几个例子,可以看出,T一定是中心对称图形,而P与T相似,P也一定要是中心对称图形,且如果P是奇数条 阅读全文
posted @ 2020-02-11 14:54 GRedComeT 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 定义一个函数f(x,y), f(x,y) = x|y - y,给你一个数列,a1,a2,,an问如何排列能使f(f(f(a1,a2),a3),````,an)答案最大,我们将f(x,y)变形,就是f(x,y)=x&(~y),那么答案的大小只与第一个选取的x有关,其余都是取反交,那我们只要找出一个最大 阅读全文
posted @ 2020-02-11 14:49 GRedComeT 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 梦回高中,定义的f(i,j)为从(0,0)到(i,j)一共有多少条路可以选择,易知我们要做i+j次选择,其中有i次是选择x轴,剩下的是y轴,所以f(i,j)=C(i+j,i)=C(i+j,j),给你一个范围[r1,r2],[c1,c2],求出所有的f(i,j)之和,我们可以用容斥,设g(r,c)为范 阅读全文
posted @ 2020-02-10 16:36 GRedComeT 阅读(451) 评论(0) 推荐(0) 编辑
摘要: 数位DP模板,记忆化+限制即可 #include<bits/stdc++.h> using namespace std; #define lowbit(x) ((x)&(-x)) typedef long long LL; int n, K, dp[5][105][3]; char str[105] 阅读全文
posted @ 2020-02-10 16:24 GRedComeT 阅读(716) 评论(0) 推荐(1) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 22 下一页