zoukankan      html  css  js  c++  java
  • HDU 3666

    此题不难,不等式很空易就列出来了,只是要把它转化成减法形式。。卡在这了。。。

    其实取一个log对数就好了。。。要记住这个技巧。用基于dfs的spfa。。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<queue>
    #include<cmath>
    
    using namespace std;
    
    const int N=810;
    
    struct Edge{
        int to,nxt;
        double cap;
    }edge[N*N];
    
    int n,m,cnt,head[N];
    int vis[N],instack[N];
    double dis[N],L,U;
    
    void addedge(int cu,int cv,double cw){
        edge[cnt].to=cv;    edge[cnt].cap=cw;   edge[cnt].nxt=head[cu];
        head[cu]=cnt++;
    }
    
    int SPFA(int u){
        if(instack[u])
            return 0;
        instack[u]=1;
        vis[u]=1;
        for(int i=head[u];i!=-1;i=edge[i].nxt){
            int v=edge[i].to;
            if(dis[v]>dis[u]+edge[i].cap){
                dis[v]=dis[u]+edge[i].cap;
                if(!SPFA(v))
                    return 0;
            }
        }
        instack[u]=0;
        return 1;
    }
    
    int solve(){
        memset(vis,0,sizeof(vis));
        memset(instack,0,sizeof(instack));
        memset(dis,0,sizeof(dis));
        for(int i=1;i<=n+m;i++)
            if(!vis[i]){
                if(!SPFA(i))
                    return 0;
            }
        return 1;
    }
    
    int main(){
    
        //freopen("input.txt","r",stdin);
    
        while(~scanf("%d%d%lf%lf",&n,&m,&L,&U)){
            cnt=0;
            memset(head,-1,sizeof(head));
            double x;
            for(int i=1;i<=n;i++)
                for(int j=1;j<=m;j++){
                    scanf("%lf",&x);
                    addedge(j+n,i,log(U/x));
                    addedge(i,j+n,-log(L/x));
                }
            if(solve())
                puts("YES");
            else
                puts("NO");
        }
        return 0;
    }
    

      

  • 相关阅读:
    深入理解Java Proxy机制
    StringBuilder与StringBuffer的区别
    反射
    list和set区别
    spring总结
    Hibernate与 MyBatis的比较
    手机拍照或选择照片上传html5代码
    JSP两种跳转
    离散化
    圆方树
  • 原文地址:https://www.cnblogs.com/jie-dcai/p/4519363.html
Copyright © 2011-2022 走看看