zoukankan      html  css  js  c++  java
  • BZOJ3436: 小K的农场

    3436: 小K的农场

    Time Limit: 10 Sec  Memory Limit: 128 MB
    Submit: 185  Solved: 103
    [Submit][Status]

    Description


     背景

        小K是个特么喜欢玩MC的孩纸。。。

     描述

        小K在MC里面建立很多很多的农场,总共n个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得一些含糊的信息(共m个),以下列三种形式描述:农场a比农场b至少多种植了c个单位的作物,农场a比农场b至多多种植了c个单位的作物,农场a与农场b种植的作物数一样多。但是,由于小K的记忆有些偏差,所以他想要知道存不存在一种情况,使得农场的种植作物数量与他记忆中的所有信息吻合。输入格式

    Input

       第一行包括两个整数n和m,分别表示农场数目和小K记忆中的信息的数目

        接下来m行:

        如果每行的第一个数是1,接下来有三个整数a,b,c,表示农场a比农场b至少多种植了c个单位的作物    如果每行第一个数是2,接下来有三个整数a,b,c,表示农场a比农场b至多多种植了c个单位的作物

        如果每行第一个数是3,接下来有两个整数a,b,表示农场a种植的数量与b一样多输出格式

    Output

        如果存在某种情况与小K的记忆吻合,输出”Yes”,否则输出”No”

    Sample Input

    33
    312
    1131
    2232

    Sample Output


    Yes

    样例解释

    三个农场种植的数量可以为(2,2,1)。


    对于100%的数据,1<=n,m,a,b,c<=10000


    HINT

     

    Source

    题解:
    云神居然会出这种题。。。
    裸spfa判负环。
    代码:
     1 #include<cstdio>
     2 #include<cstdlib>
     3 #include<cmath>
     4 #include<cstring>
     5 #include<algorithm>
     6 #include<iostream>
     7 #include<vector>
     8 #include<map>
     9 #include<set>
    10 #include<queue>
    11 #include<string>
    12 #define inf 1000000000
    13 #define maxn 15000
    14 #define maxm 500+100
    15 #define eps 1e-10
    16 #define ll long long
    17 #define pa pair<int,int>
    18 #define for0(i,n) for(int i=0;i<=(n);i++)
    19 #define for1(i,n) for(int i=1;i<=(n);i++)
    20 #define for2(i,x,y) for(int i=(x);i<=(y);i++)
    21 #define for3(i,x,y) for(int i=(x);i>=(y);i--)
    22 #define mod 1000000007
    23 using namespace std;
    24 inline int read()
    25 {
    26     int x=0,f=1;char ch=getchar();
    27     while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    28     while(ch>='0'&&ch<='9'){x=10*x+ch-'0';ch=getchar();}
    29     return x*f;
    30 }
    31 struct edgs{int go,next,w;}e[maxn];
    32 int n,m,tot,head[maxn],d[maxn];
    33 bool v[maxn],flag;
    34 void insert(int x,int y,int z)
    35 {
    36     e[++tot].go=y;e[tot].next=head[x];head[x]=tot;e[tot].w=z;
    37 }
    38 void spfa(int x)
    39 {
    40     if(v[x]){flag=1;return;}
    41     v[x]=1;
    42     for(int i=head[x],y;i;i=e[i].next)
    43      if(d[x]+e[i].w<d[y=e[i].go])
    44      {
    45          d[y]=d[x]+e[i].w;
    46          spfa(y);
    47          if(flag)break;
    48      }
    49     v[x]=0;
    50 }
    51 int main()
    52 {
    53     freopen("input.txt","r",stdin);
    54     freopen("output.txt","w",stdout);
    55     n=read();m=read();
    56     for1(i,m)
    57     {
    58         int ch=read(),x=read(),y=read();
    59         if(ch==3)insert(x,y,0);
    60         else 
    61         {
    62             int z=read();
    63             if(ch==1)insert(x,y,-z);else insert(y,x,z);
    64         }
    65     }
    66     for1(i,n)
    67     {
    68         spfa(i);
    69         if(flag)break;
    70     }
    71     if(!flag)cout<<"Yes"<<endl;else cout<<"No"<<endl;
    72     return 0;
    73 }
    View Code
  • 相关阅读:
    mvc5+ef6+Bootstrap 项目心得--创立之初
    C# StopWatch的使用
    MVC Form异步请求
    bootstrap-datepicker带中文的js文件
    bootstrap
    mvc5+ef6+Bootstrap 项目心得--WebGrid
    mvc5+ef6+Bootstrap 项目心得--身份验证和权限管理
    关于mvc5+EF里面的db.Entry(model).State = EntityState.Modified报错问题
    将DBF文件导入Sqlserver数据库
    MySQL主从报错解决:Failed to initialize the master info structure
  • 原文地址:https://www.cnblogs.com/zyfzyf/p/4099485.html
Copyright © 2011-2022 走看看