hdu 3666 THE MATRIX PROBLEM 差分约束系统
题目意思:
一共有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 差分约束系统相关推荐
- hdu 3666 THE MATRIX PROBLEM
差分约束系统. 根据题意,可以写出不等式 L <= (Xij * Ai) / Bj <= U 即 Ai/Bj<=U/Xij和Ai/Bj>=L/Xij 由于差分约束系统是减法.. ...
- Hdu 3666(差分约束系统)
Hdu 3666 (1)思路: 将不等式化简L<=xij*(ai/bj)<=R L/xij <= ai/bj <= R/xij 将两边开log log(L) - log(xij ...
- 提高篇 第三部分 图论 第4章 差分约束系统
差分约束系统_我的ACM,我的梦!!!-CSDN博客_差分约束系统 差分约束系统详解 - hr_whisper - 博客园 最短路径算法:Bellman和差分约束系统_算法导论视频课程_其他视频-51 ...
- 图论 —— 差分约束系统
[概述] 如果一个系统由 n 个变量 m 个约束条件组成,形成 m 个形如 的不等式,其中 ,k 是常数,则称这 m 个不等式为差分约束系统(system of difference constra ...
- Codevs2404糖果——差分约束系统整理
http://codevs.cn/problem/2404/ 典型的差分约束系统,给定多个约束条件,求满足条件的答案最小,最大值等. 对于一个差分约束系统,我们可以将其转化为一个不等式组,然后据此建边 ...
- bzoj 2330 / AcWing 368 银河 差分约束系统+tarjan缩点+拓扑排序
怎么最近bzoj一直上不了,莫非是挂了? AcWing的地址:https://www.acwing.com/problem/content/370/ 题意: 银河中的恒星浩如烟海,但是我们只关注那些最 ...
- 差分约束系统学习笔记
一.预备知识 最短路基本性质 #define inf 0x3fffffff #define M 1005 //最大点数struct edge{int v, w, next; }e[10005]; // ...
- hdu6525——Subway Chasing(差分约束系统)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6252 题目大意: 第一个人比第二个人先走了x分钟,路上有n个车站,现在有m个询问,每次询问会得到第一个 ...
- 【图论专题】差分约束系统
整理的算法模板合集: ACM模板 题目列表: 题目 算法 AcWing 1169. 糖果 差分约束系统.超级源点.求最值 UVA1723 Intervals 差分约束.求最值 AcWing 1170. ...
最新文章
- 《JavaScript面向对象精要》读书笔记
- python写一个表白程序-用Python写一个表白神器让你脱单
- 今天,“场景赋能•驱动有数”,神策数据 2018 数据驱动大会在京成功举办
- 【Linux基础】kiickstart无人值守安装
- Git安装Windows / Redhat / Ubuntu
- Oracle B-tree、位图、全文索引三大索引性能比较及优缺点汇总(转载)
- 黑客攻防技术宝典Web实战篇第2版—第5章 避开客户端控件
- 【英语学习】【Daily English】U01 Greetings / L04 Hello, this is Peter Jones speaking
- Docker可视化界面(Consul+Shipyard+Swarm+Service Discover
- 关于数据库中的char与varchar
- html怎么读取2进制视频,IE 中如何读取二进制文件的内容?
- python绘制基因结构图_分分钟教你绘制基因结构图!
- 六大iT公司的组织结构
- nlpir语义分析 java_集成nlpir语义分析
- 国内外FPGA主要厂商和其主要芯片代表汇总
- Powerdesigner将数据表的Name变中文,字段全部变大写
- 华为5g鸿蒙折叠,华为再次亮剑!5G新旗舰已经确认,折叠屏+升级到鸿蒙2.0,价格过万...
- Google 设计师谈论 Material Design
- 高级前端基础-JavaScript抽象语法树AST
- ratelimit+redis+lua对接口限流