POJ 1364 差分约束

原创 2016年08月30日 14:52:18

思路:
把所有“>”变成“≥”
把所有“<”变成“≤”

(加一减一就好了)

然后我们发现:图不一定连通!!

怎么办呢

对于每一个连通块SPFA就好了嘛……

//By SiriusRen
#include <queue>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define N 111
using namespace std;
char a[3],inq[N];
int n,vis[N],xx,yy,zz,m,dis[N],cnt[N];
int first[N],next[N*N],v[N*N],w[N*N],tot=0;
void add(int x,int y,int z){w[tot]=z,v[tot]=y,next[tot]=first[x],first[x]=tot++;}
bool spfa(int x){
    memset(cnt,0,sizeof(cnt));
    memset(dis,0xcf,sizeof(dis));
    memset(inq,0,sizeof(inq));
    dis[x]=0;vis[x]=cnt[x]=1;
    queue<int>q;q.push(x);
    while(!q.empty()){
        int t=q.front();q.pop();
        inq[t]=0;vis[t]=1;
        for(int i=first[t];~i;i=next[i])
            if(dis[v[i]]<dis[t]+w[i]){
                dis[v[i]]=dis[t]+w[i];
                if(!inq[v[i]]){
                    inq[v[i]]=1;
                    cnt[v[i]]++;q.push(v[i]);
                    if(cnt[v[i]]>n)return 0;
                }
            }
    }
    return 1;
}
int main(){
    scanf("%d",&n);
    start:memset(first,-1,sizeof(first));
    memset(vis,0,sizeof(vis));
    scanf("%d",&m);
    for(int i=1;i<=m;i++){
        scanf("%d%d%s%d",&xx,&yy,a,&zz);
        if(a[0]=='g')add(xx-1,xx+yy,zz+1);
        else add(xx+yy,xx-1,-zz+1);
    }
    for(int i=0;i<=n;i++){
        if(vis[i])continue;
        if(!spfa(i)){
            puts("successful conspiracy");
            goto end;
        }
    }
    puts("lamentable kingdom");
    end:if(scanf("%d",&n)&&n)goto start;
}

这里写图片描述

版权声明:本文由SiriusRen原创,但可以转载,因为我们是兄弟 爬虫能爬到这句话么哈哈哈 举报

相关文章推荐

POJ 1364 差分约束

思路: 把所有“>”变成“≥” 把所有“<”变成“≤”(加一减一就好了)然后我们发现:图不一定连通!!怎么办呢 对于每一个连通块SPFA就好了嘛……//By SiriusRen #includ...

poj-1364 King 差分约束

poj1364 差分约束 1.自己先跳过bellman-ford的SPFA改进算法与Flord(所有点之间的最短距离),开始进入了差分约束系统的一个练习. 如果一个系统由n个变量和m个约束条件组...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

POJ 1364 差分约束

题意:给你一个n和m,接下来m行,每行miao'shu'le

poj 1364 SPFA+差分约束

约束条件: 如果是gt    s[a-1]-s[a+b] 如果是lt     s[a+b]-s[a-1] 此外,新加的原点与其他点的leth为零。n+1为原点。 #include ...

poj 1364 King(差分约束)

King Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 12070   Accepted...

POJ 1364 - King(差分约束)

题目: http://poj.org/problem?id=1364 题意: 一个序列含有n个数,有q个限制条件,表示为区间和(s,s+n)> k 或是 区间和(s,s+n) 思路: Si ...

poj 1364 King[差分约束]

题目大意:有一个序列。给定一些约束条件,格式为si、ni、oi、ki,意思是序列中第si项到第si+ni项的和>(或(用"gt”表示)或 思路:简单的差分约束,就是题目描述有点不太好懂。需要注意,虽然...

POj King 1364(差分约束)

King Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 12687   Accepted...

poj 1364差分约束

King Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 10206   Accepted...

POJ 1364 差分约束

/* 参考:http://hi.baidu.com/yacbi/blog/item/e79fa42e56a9ff3e1e3089ee.html 所谓查分约束系统其实很简单,就是全都是两个未知数的差小于...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)