今天刚刚学差分约束系统。利用最短路求解不等式。世界真的好奇妙!感觉不等式漏下几个会导致WA!!

#include<cstdio>
#include<cstring>
#include<cmath>
#include<queue>
#include<vector>
#include<algorithm>
using namespace std; const int maxn = ;
vector<int>ljb[maxn];//邻接表
int jz[maxn][maxn];//邻接矩阵
int n, m, shibai;
int c[maxn], d[maxn];
int dist[maxn];
int flag[maxn], tott[maxn]; void spfa()
{
int ii;
queue<int>Q;
memset(flag, , sizeof(flag));
memset(tott, , sizeof(tott));
flag[n] = ; tott[n]++;
for (ii = ; ii <= n; ii++) dist[ii] = ;
dist[n] = ; Q.push(n);
while (!Q.empty())
{
int hh = Q.front(); Q.pop(); flag[hh] = ;
for (ii = ; ii < ljb[hh].size(); ii++)
{
if (jz[hh][ljb[hh][ii]] != )
{
if (dist[hh] + jz[hh][ljb[hh][ii]] < dist[ljb[hh][ii]])
{
dist[ljb[hh][ii]] = dist[hh] + jz[hh][ljb[hh][ii]];
if (flag[ljb[hh][ii]] == )
{
Q.push(ljb[hh][ii]);
flag[ljb[hh][ii]] = ;
tott[ljb[hh][ii]]++;
if (tott[ljb[hh][ii]] >= n) { shibai = ; break; }
}
}
}
}
if (shibai) break;
}
} int main()
{
int i, j, u, v, k;
while (~scanf("%d%d", &n, &m))
{
shibai = ; c[] = ; d[] = ;
for (i = ; i <= n; i++) ljb[i].clear();
for (i = ; i <= n; i++)
{
for (j = ; j <= n; j++)
{
if (i == j) jz[i][j] = ;
else jz[i][j] = ;
}
}
for (i = ; i <= n; i++) scanf("%d", &c[i]);
for (i = ; i <= n; i++) d[i] = c[i] + d[i - ];
for (i = ; i < m; i++)
{
scanf("%d%d%d", &v, &u, &k);
jz[u][v - ] = -k;
ljb[u].push_back(v - );
jz[v - ][u] = d[u] - d[v - ];
ljb[v - ].push_back(u);
}
for (i = ; i <= n; i++)
{
jz[i - ][i] = c[i];
ljb[i - ].push_back(i);
jz[i][i - ] = ;
ljb[i].push_back(i - );
}
spfa();
if (shibai == ) printf("Bad Estimations\n");
else printf("%d\n", -dist[]);
}
return ;
}

zoj 2770 Burn the Linked Camp的更多相关文章

  1. ZOJ 2770 Burn the Linked Camp 差分约束

    链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do? problemCode=2770 Burn the Linked Camp Time Limi ...

  2. ZOJ 2770 Burn the Linked Camp 差分约束 ZOJ排名第一~

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1770 题目大意: 陆逊为了火烧连营七百里,派出了间谍刺探敌情,得之刘备的军营以 ...

  3. zoj 2770 Burn the Linked Camp (差分约束系统)

    // 差分约束系统// 火烧连营 // n个点 m条边 每天边约束i到j这些军营的人数 n个兵营都有容量// Si表示前i个军营的总数 那么 1.Si-S(i-1)<=C[i] 这里 建边(i- ...

  4. ZOJ 2770 Burn the Linked Camp(spfa&&bellman)

    //差分约束 >=求最长路径 <=求最短路径 结果都一样//spfa#include<stdio.h> #include<string.h> #include< ...

  5. zoj Burn the Linked Camp (查分约束)

    Burn the Linked Camp Time Limit: 2 Seconds      Memory Limit: 65536 KB It is well known that, in the ...

  6. Burn the Linked Camp(bellman 差分约束系统)

    Burn the Linked Camp Time Limit: 2 Seconds      Memory Limit: 65536 KB It is well known that, in the ...

  7. ZOJ2770 Burn the Linked Camp(差分约束系统)

    区间和一定要联系到前缀和. 这题,把前缀和看作点,从s0到sn: 对于每一个营地i的容量capi,有这么个关系si-si-1<=capi: 对于每一个区间的评估i,j,k,有sj-si-1> ...

  8. zoj2770 Burn the Linked Camp --- 差分约束

    有n个营地,每一个营地至多容纳Ci人.给出m个条件:第i到第j个营地之间至少有k人. 问n个营地总共至少有多少人. 此题显然差分约束.要求最小值.则建立x-y>=z方程组,建图求最长路. 用d[ ...

  9. ZOJ 2770 差分约束+SPFA

    Burn the Linked Camp Time Limit: 2 Seconds      Memory Limit: 65536 KB It is well known that, in the ...

随机推荐

  1. Fiddler捕获抓取 App端数据包

    最近项目设计到App抓包,所以采用Fiddler工具来采集获取APP数据包,但是fiddler对有些app是无法捕获到数据包的,以下是我的处理方法: 1. 我默认代理端口使用的是自定义的端口而不是默认 ...

  2. Oracle 列操作(增加列,修改列,删除列)

    1.增加一列: Alter table 表名 add 列名 varchar2(10); 2.修改一列: Alter table 表名 modify 列名 varchar2(20); 3.删除一列: A ...

  3. 关于angularjs的$state.go()与ui-sref传参问题

    上次转发过关于angularjs回退的文章,回退用到的还是js的回退功能,直接用history.back();实现功能,当时顺便提了下$state.go()有关路由跳转. 那这回就全面解析下$stat ...

  4. 有关css3的一些问题

    CSS3新特性(阴影.动画.渐变.变形.伪元素等) CSS3与页面布局学习总结--CSS3新特性(阴影.动画.渐变.变形.伪元素等)     目录 一.阴影 1.1.文字阴影 1.2.盒子阴影 二.背 ...

  5. 【锋利的Jquery】读书笔记五

    jquery表单 表格操作 表单从基本的得到和失去焦点表单验证 <script type="text/javascript"> $(function(){ $(&quo ...

  6. digitalocean Vultr Linode 三家海外vps最新真实情况

    中国有大批用户,在使用海外vps服务器.好处是不言而喻的:性价比高.带宽大.免备案.可搭梯子,没有后门监控. 有趣的是,每一年的周期观察,都能发现海外vps对中国大陆的线路速度.可用性变化.过去速度快 ...

  7. URL中的#

    作者:阮一峰   http://www.ruanyifeng.com/blog/2011/03/url_hash.html 一.#的涵义 #代表网页中的一个位置.其右面的字符,就是该位置的标识符.比如 ...

  8. lda 主题模型--TOPIC MODEL--Gibbslda++结果分析

    在之前的博客中已经详细介绍了如何用Gibbs做LDA抽样.(http://www.cnblogs.com/nlp-yekai/p/3711384.html) 这里,我们讨论一下实验结果: 结果文件包括 ...

  9. ajax使用json

    json是什么什么的废话不说了,去百度吧.我这里介绍一下我为何要使用json.我使用ajax响应返回值时,项目中需求要返回多个值,不能只返回一个值.这时候就想起来用到json了.这可能只是json的一 ...

  10. Postman怎么用?

    国庆期间的工作就是搞清楚postman怎么用?