题目意思:

一共有n+m个变量。行有那个x1,x2...xn,   列有m个b1 b2 ..bm;

然后保证 aij位置    l<=aij*xi/bj<=r;

解题思路:

对上面这个试子取对数 那么就形成了  一个典型的差分约束系统了。

每个不等试形成一条从被减数到减数的相应权值的边。

然后构图spfa即可,注意要用邻接表,这个题目容易超时。

还有注意一点:

spfa判断存在负权环:

(1) 单个点入队列的次数大于 sqrt(N)  , N代表所有点的个数

(2)  点入队列的次数总和大于 T*N  ,据说T一般取2.

《算法导论》里面说构造一个原点,他到其他每个点的边的长度为0,然后再SPFA,

其实直接可以讲所有0~n+m点先直接入队列,然后设置所有长度为0,效果一样

#include<cstdio>
#include<cstring>
#include<iostream>
#include<cmath>
#include<queue>
using namespace std;const double MAX=0x3f3f3f3f;
int n,m;
double l,r;
struct node
{int v,nxt;double w;
}edge[800000];
int head[1000],nume;void add(int u,int v,double w)
{edge[nume].v=v;edge[nume].w=w;edge[nume].nxt=head[u];head[u]=nume++;
}
int spfa(){double dis[1000];int inque[1000],i;queue<int >q;for(i=0;i<=n+m;i++){dis[i]=0;inque[i]=0;q.push(i);}int sum=1;while(!q.empty()){int temp=q.front();q.pop();inque[temp]=0;for(i=head[temp];i!=-1;i=edge[i].nxt){int v=edge[i].v;if(dis[temp]+edge[i].w<dis[v]){dis[v]=dis[temp]+edge[i].w;if(!inque[v]){q.push(v);inque[v]=1;sum++;if(sum>2*(n+m)) return 0;}}}}return 1;}int main()
{while(scanf("%d%d%lf%lf",&n,&m,&l,&r)!=EOF){int i,j;nume=0;memset(head,-1,sizeof(head));// for(i=1;i<=n+m;i++) add(0,i,0);for(i=1;i<=n;i++)for(j=1;j<=m;j++){double temp;scanf("%lf",&temp);add(n+j,i,log10(r)-log10(temp));add(i,n+j,log10(temp)-log10(l));}if(spfa()) printf("YES\n");else printf("NO\n");}return 0;
}

hdu 3666 THE MATRIX PROBLEM 差分约束系统相关推荐

  1. hdu 3666 THE MATRIX PROBLEM

    差分约束系统. 根据题意,可以写出不等式 L <= (Xij * Ai) / Bj <= U 即 Ai/Bj<=U/Xij和Ai/Bj>=L/Xij 由于差分约束系统是减法.. ...

  2. Hdu 3666(差分约束系统)

    Hdu 3666 (1)思路: 将不等式化简L<=xij*(ai/bj)<=R L/xij <= ai/bj <= R/xij 将两边开log log(L) - log(xij ...

  3. 提高篇 第三部分 图论 第4章 差分约束系统

    差分约束系统_我的ACM,我的梦!!!-CSDN博客_差分约束系统 差分约束系统详解 - hr_whisper - 博客园 最短路径算法:Bellman和差分约束系统_算法导论视频课程_其他视频-51 ...

  4. 图论 —— 差分约束系统

    [概述] 如果一个系统由 n 个变量 m 个约束条件组成,形成 m 个形如  的不等式,其中 ,k 是常数,则称这 m 个不等式为差分约束系统(system of difference constra ...

  5. Codevs2404糖果——差分约束系统整理

    http://codevs.cn/problem/2404/ 典型的差分约束系统,给定多个约束条件,求满足条件的答案最小,最大值等. 对于一个差分约束系统,我们可以将其转化为一个不等式组,然后据此建边 ...

  6. bzoj 2330 / AcWing 368 银河 差分约束系统+tarjan缩点+拓扑排序

    怎么最近bzoj一直上不了,莫非是挂了? AcWing的地址:https://www.acwing.com/problem/content/370/ 题意: 银河中的恒星浩如烟海,但是我们只关注那些最 ...

  7. 差分约束系统学习笔记

    一.预备知识 最短路基本性质 #define inf 0x3fffffff #define M 1005 //最大点数struct edge{int v, w, next; }e[10005]; // ...

  8. hdu6525——Subway Chasing(差分约束系统)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6252 题目大意: 第一个人比第二个人先走了x分钟,路上有n个车站,现在有m个询问,每次询问会得到第一个 ...

  9. 【图论专题】差分约束系统

    整理的算法模板合集: ACM模板 题目列表: 题目 算法 AcWing 1169. 糖果 差分约束系统.超级源点.求最值 UVA1723 Intervals 差分约束.求最值 AcWing 1170. ...

最新文章

  1. applicationContext.xml 的位置问题
  2. type python_typepython
  3. HBase+Spark技术双周刊 第四期
  4. python爬虫在哪里学_学完了python基础想学习python爬虫从哪里学起呢?
  5. 每日程序C语言31-auto的使用
  6. 图论-欧拉图-欧拉回路-Euler-Fluery-Hierholzer-逐步插入回路法-DFS详解-并查集
  7. Linux_日志管理介绍(一)
  8. nc 结合htc hts 反弹shell(内网代理环境下)
  9. zabbix监控进程的CPU和内存占用量
  10. MutationObserver监听页面是否加载完成
  11. 机器视觉产业链全解析
  12. C语言if else语句详解
  13. ❤️【图文并茂】Chrome浏览器(油猴子)插件安装使用教程❤️
  14. jdk7对list进行排序(按照list中entity的某个属性比如age)
  15. 大学如何自学计算机科学与技术?
  16. UVA 177 Paper Folding
  17. 台式计算机 无线接收,台式电脑无线接收器插上连不上网怎么处理
  18. 铁道部购票网站可能造成另一次的密码危机
  19. 福斯数据服务平台产品白皮书
  20. 青春不负韶光,梦想再次起航——记JavaEE班毕业典礼

热门文章

  1. Kafka 3.0重磅发布,都更新了些啥?
  2. 实战演示 Go 反射的使用方法和应用场景
  3. 《长安十二时辰》背后的文娱大脑:如何提升爆款的确定性?
  4. 第二章 Spark RDD以及编程接口
  5. 深入解读无服务器架构下的数据库
  6. 揭开腾讯IDC节能环保黑科技
  7. 腾讯容器云平台GaiaStack亮相kubeCon
  8. 腾讯数据库内核团队资深架构师:TXSQL Internals @2018
  9. 从流程上对rtmp协议经行总结
  10. cmake使用示例与整理总结