题目意思:

一共有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. 《JavaScript面向对象精要》读书笔记
  2. python写一个表白程序-用Python写一个表白神器让你脱单
  3. 今天,“场景赋能•驱动有数”,神策数据 2018 数据驱动大会在京成功举办
  4. 【Linux基础】kiickstart无人值守安装
  5. Git安装Windows / Redhat / Ubuntu
  6. Oracle B-tree、位图、全文索引三大索引性能比较及优缺点汇总(转载)
  7. 黑客攻防技术宝典Web实战篇第2版—第5章 避开客户端控件
  8. 【英语学习】【Daily English】U01 Greetings / L04 Hello, this is Peter Jones speaking
  9. Docker可视化界面(Consul+Shipyard+Swarm+Service Discover
  10. 关于数据库中的char与varchar
  11. html怎么读取2进制视频,IE 中如何读取二进制文件的内容?
  12. python绘制基因结构图_分分钟教你绘制基因结构图!
  13. 六大iT公司的组织结构
  14. nlpir语义分析 java_集成nlpir语义分析
  15. 国内外FPGA主要厂商和其主要芯片代表汇总
  16. Powerdesigner将数据表的Name变中文,字段全部变大写
  17. 华为5g鸿蒙折叠,华为再次亮剑!5G新旗舰已经确认,折叠屏+升级到鸿蒙2.0,价格过万...
  18. Google 设计师谈论 Material Design
  19. 高级前端基础-JavaScript抽象语法树AST
  20. ratelimit+redis+lua对接口限流

热门文章

  1. C++ COM编程之接口背后的虚函数表
  2. WinSock嗅探虚拟主机拿站取webshell
  3. 一件重要的事想要告诉大家
  4. 谷歌 I/O 2021 在音视频领域中有哪些技术值得被关注?
  5. 音视频技术开发周刊 | 192
  6. 【轻端重云和边缘架构新模式】
  7. 多媒体技术生态未来的三个关键要素
  8. Hulu直播服务难点解析(二):系统设计与实现
  9. 王琦:5G新视频应用的机会窗口将在2-3年内
  10. c++实现单例类(懒汉与饿汉)