差分约束
差分约束
gongyuandaye
不要再问我会不会写可持久化非确定状态AC自动分块维护线段平衡仙人掌优化最小费用最大流预处理混合图上莫比乌斯反演莫队带花舞蹈链并查集树状数组套主席树预处理动态DP分治FFT求多项式逆元对数函数的指数函数用可持久化并查集合并最小费用循环流上插头DP了。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HDU 3666 THE MATRIX PROBLEM (差分约束+栈优化spfa判负环)
题意:给出一个N∗M的矩阵C,要求构造两个序列a1,a2,…,an和b1,b2,…,bm, 矩阵的第i行元素乘上 ai,矩阵的第j列元素除以bj,最终矩阵的每个元素Cij∈[L,U]。若可以构造成功,则输出YES,否则输出NO。 题解:差分约束+栈优化spfa 可得约束方程:L<=c∗ai/bj<=UL <= c * ai / bj <= UL<=c∗ai/bj<=U 习惯最长路,于是可以转换为: ai/bj>=L/cai/bj>=L/cai/bj>=L原创 2020-09-24 22:02:48 · 222 阅读 · 0 评论 -
HDU 3592 World Exhibition (差分约束)
题意:n个人按顺序1-n排队,可并列排,给出x对关系,两两距离不超过D;给出y对关系,两两距离不小于D,求1到n的最远距离。 题解:差分约束 求最远,跑spfa最短路。 按题意建立差分约束方程即可。 由于并列排,所以相邻两人距离限制条件是≤0。 注意inf输出-2。 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<cstdio> #include<string> #include<cstring原创 2020-09-24 14:38:08 · 254 阅读 · 0 评论 -
HDU 3440 House Man (差分约束)
题意:有N个在一条直线上的房子, 每个房子有着不同的高度,超人可以将这些房子左右移动,但不能改变房子之间的相对位置。超人要从最矮的房子跳到刚好比他高的房子上面, 且每次跳的房子都要比当前房子要高,他要跳N-1次。那么最后超人肯定会跳到最高的房子上面,现在给出超人一次能够跳的最远距离D,求如何摆放这些房子, 使得超人能够经过所有的房子跳到最高的房子, 又要使最矮的房子和最高的房子之间的距离最远,输出最远距离。 题解:差分约束 求最远距离,跑最短路即可。我们用d[i]d[i]d[i]表示离起点的距离。 由于不改原创 2020-09-23 17:52:54 · 266 阅读 · 0 评论 -
HDU 1534 Schedule Problem(差分约束)
题意:一个项目可以分为几个部分。 每个部分都应连续完成。 这意味着如果一个零件需要3天,我们应该连续3天完成它。 这些部分中有四种约束,分别是FAS,FAF,SAF和SAS。 如果第一个零件应该在第二个零件开始之后完成,则零件之间的约束就是FAS。FAF完成后完成。 SAF完成后启动,SAS启动后启动。 假设有足够的人参与项目,这意味着我们可以同时进行任何数量的部分。 编写一个程序给出项目的时间表,该时间表最短。 题解:差分约束 用d[i]d[i]d[i]表示第iii个部分开始的时间,依据题意建立约束即可,原创 2020-09-22 22:34:27 · 201 阅读 · 0 评论 -
HDU 1531 King (差分约束)
题意:给出序列a的长度n,以及m个连续子序列的起始点及长度,对于每个连续子序列,给出其和与整数 ki 的大小关系,问是否存在序列a。 题解:差分约束 简单的差分约束问题,按照题目输入建立约束方程即可,然后跑spfa最长路。 由于我们用d[i]d[i]d[i]表示序列a前iii个元素和,那么就有包含0的n+1个点,所以负环的判断条件是>n+1。还有就是我们把n+1个点全部push即可。 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #i原创 2020-09-22 21:42:29 · 152 阅读 · 0 评论 -
HDU 1529 Cashier Employment (差分约束)
题意:德黑兰的某国营商店需要聘用一批员工,不同的时间有不同的人员需求,能够雇佣到的人数也不同。然而你一旦聘用了一个人,他就会跟着你干8个小时。输入24个时间点的需求与劳动力人数,输出满足需求最少需要的人数,不行就输出no solution。 题解:差分约束 设d[i]d[i]d[i]表示从0点到i−1i-1i−1点(包括i−1i-1i−1)雇佣的人数。答案就是d[24]d[24]d[24]。 每个点iii的需求和供应人数分别用r[i]r[i]r[i]和a[i]a[i]a[i]表示。 可得约束方程: d[i+原创 2020-09-22 17:55:07 · 225 阅读 · 0 评论 -
HDU 1384 Intervals (差分约束)
题意:给定n个区间[ai, bi],每个区间给出一个数ci,求一个整数集合s使得第i个区间里至少有ci个集合s中的数,并且s尽量小。 题解:差分约束 设f(i)f(i)f(i)表示集合s包含了[0,i−1][0, i-1][0,i−1]中的数的数量(因为起点是从0开始的)。 即可得约束: f(b+1)−f(a)>=cf(b+1)-f(a)>=cf(b+1)−f(a)>=c :(<a, b+1>=c) f(a)−f(a−1)>=0f(a)-f(a-1)>=0f(a)原创 2020-09-21 23:31:10 · 296 阅读 · 0 评论
分享