zoukankan      html  css  js  c++  java
  • 【BZOJ3436】小K的农场(差分约束)

    【BZOJ3436】小K的农场(差分约束)

    题面

    由于BZOJ巨慢无比,使用洛谷美滋滋

    题解

    傻逼差分约束题,
    您要是不知道什么是差分约束
    您就可以按下(Ctrl+W)

    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    #include<set>
    #include<map>
    #include<vector>
    #include<stack>
    #include<queue>
    using namespace std;
    #define MAX 20000
    inline int read()
    {
    	int x=0,t=1;char ch=getchar();
    	while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();
    	if(ch=='-')t=-1,ch=getchar();
    	while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar();
    	return x*t;
    }
    struct Line
    {
    	int v,next,w;
    }e[MAX<<1];
    int h[MAX],cnt=1;
    int n,m,dis[MAX],InQ[MAX];
    bool vis[MAX];
    inline void Add(int u,int v,int w)
    {
    	e[cnt]=(Line){v,h[u],w};
    	h[u]=cnt++;
    }
    void SPFA()
    {
    	stack<int> Q;
    	for(int i=1;i<=n;++i)Q.push(i),dis[i]=0,InQ[i]=1,vis[i]=true;
    	while(!Q.empty())
    	{
    		int u=Q.top();Q.pop();
    		for(int i=h[u];i;i=e[i].next)
    		{
    			int v=e[i].v;
    			int w=dis[u]+e[i].w;
    			if(dis[v]<w)
    			{
    				dis[v]=w;
    				if(!vis[v])
    				{
    					vis[v]=true;
    					InQ[v]++;
    					Q.push(v);
    					if(InQ[v]==n)
    					{
    						puts("No");
    						return;
    					}
    				}
    			}
    		}
    		vis[u]=false;
    	}
    	puts("Yes");
    }
    int main()
    {
    	n=read();m=read();
    	for(int i=1;i<=m;++i)
    	{
    		int opt=read();
    		if(opt==1)
    		{
    			int a=read(),b=read(),c=read();
    			Add(b,a,c);
    		}
    		else if(opt==2)
    		{
    			int a=read(),b=read(),c=read();
    			Add(a,b,-c);
    		}
    		else
    		{
    			int a=read(),b=read();
    			Add(a,b,0);Add(b,a,0);
    		}
    	}
    	SPFA();
    	return 0;
    }
    
    
  • 相关阅读:
    GOF23设计模式之建造者模式
    GOF23设计模式之工厂模式
    GOF23设计模式之单例模式
    服务端字节流输出图片
    小记常见的会话跟踪技术
    Java生成随机数的三种方式
    因为new Date(),我给IE跪了
    ionic初体验
    cordova开发环境搭建
    gradle环境搭建
  • 原文地址:https://www.cnblogs.com/cjyyb/p/7725998.html
Copyright © 2011-2022 走看看