hdu3666(差分约束)
来源:互联网 发布:sql 替换 编辑:程序博客网 时间:2024/04/30 01:22
题目
题意:给你一个N*M的矩阵C,再给你一个L,U,问是否存在
题解:看到不等式就想起来差分约束,但是差分约束只能解决
取对数:
注意
优化:判负环应该判一个点入队次数大于
#include<bits/stdc++.h>using namespace std;#define inf 0x7fffffffconst int maxn = 405;int head[maxn * maxn], n, m,cnt[maxn * maxn],nm,k;double low[maxn * maxn],l,u;bool used[maxn * maxn];struct Edge{ int to, next; double w;} edge[maxn * maxn * 10];int SPFA(int start,int n){ nm = sqrt(n*1.0); for(int i = 0; i <= n; ++i) { low[i] = inf; used[i] = 0; cnt[i] = 0; } queue<int> a; used[start] = 1; low[start] = 0; a.push(start); while (!a.empty()) { int top = a.front(); a.pop(); used[top]=0; for (int k = head[top]; k != -1; k = edge[k].next) { if (low[edge[k].to] > low[top] + edge[k].w) { low[edge[k].to] = low[top] + edge[k].w; if (!used[edge[k].to]) { if(++cnt[edge[k].to]>nm){return 0;} used[edge[k].to] = 1; a.push(edge[k].to); } } } } return 1;}void add(int a,int b,double w){ edge[k].to = b; edge[k].w = w; edge[k].next = head[a]; head[a] = k++;}int main(){ while (~scanf("%d %d %lf %lf",&n,&m,&l,&u)) { double L = log(l),U = log(u); k = 0; memset(head,-1,sizeof head); for (int i = 0 ; i < n; i++) { for (int j = 0; j < m; j++) { double c; scanf("%lf",&c); add(j + n,i,U - log(c)); add(i,j + n,-(L - log(c))); } } if(SPFA(0,n+m)) { printf("YES\n"); } else printf("NO\n"); }}
阅读全文
0 0
- hdu3666(差分约束)
- hdu3666差分约束系统
- hdu3666 THE MATRIX PROBLEM --- 差分约束
- hdu3666 THE MATRIX PROBLEM--单源最短路径&差分约束
- ZOJ1508 (差分约束)
- hdu3592(差分约束)
- BZOJ2330(差分约束)
- poj3169Layout (差分约束)
- poj3169Layout(差分约束)
- poj1275(差分约束)
- Intervals (差分约束)
- 种树(差分约束)
- 【图-差分约束】 差分约束
- poj1201 Intervals(差分约束)
- poj 1201 Intervals(差分约束)
- POJ 3195 Candies (差分约束)
- poj1716(差分约束+Bellman_Ford)
- poj 2983(差分约束)
- 数据结构实验之链表三:链表的逆置
- java中的IO整理
- java中读取文件的方法
- tensorflow实战之四:MNIST手写数字识别的优化3-过拟合
- 二维数组中的查找
- hdu3666(差分约束)
- 实验二 线性表的综合实验(c++)
- Android Studio如何修改已建好的API Version
- Qt之界面实现技巧
- 【LeetCode】C# 3、Longest Substring Without Repeating Characters
- Android - 内存泄漏处理
- 20_顺时针打印矩阵
- UVa1642 Magical GCD-(最大权值子段和->map)
- DES算法