题目描述

造一幢大楼是一项艰巨的工程,它是由n个子任务构成的,给它们分别编号1,2,…,n(5≤n≤1000)。由于对一些任务的起始条件有着严格的限制,所以每个任务的起始时间T1,T2,…,Tn并不是很容易确定的(但这些起始时间都是非负整数,因为它们必须在整个工程开始后启动)。例如:挖掘完成后,紧接着就要打地基;但是混凝土浇筑完成后,却要等待一段时间再去掉模板。

这种要求就可以用M(5≤m≤5000)个不等式表示,不等式形如Ti-Tj≤b代表i和j的起始时间必须满足的条件。每个不等式的右边都是一个常数b,这些常数可能不相同,但是它们都在区间(-100,100)内。

你的任务就是写一个程序,给定像上面那样的不等式,找出一种可能的起始时间序列T1,T2,…,Tn,或者判断问题无解。对于有解的情况,要使最早进行的那个任务和整个工程的起始时间相同,也就是说,T1,T2,…,Tn中至少有一个为0。

输入输出格式

输入格式:

第一行是用空格隔开的两个正整数n和m,下面的m行每行有三个用空格隔开的整数i,j,b对应着不等式Ti-Tj≤b。

输出格式:

如果有可行的方案,那么输出N行,每行都有一个非负整数且至少有一个为0,按顺序表示每个任务的起始时间。如果没有可行的方案,就输出信息“NO SOLUTION”。

输入输出样例

输入样例#1:

5 8
1 2 0
1 5 –1
2 5 1
3 1 5
4 1 4
4 3 –1
5 3 –1
5 4 –3
输出样例#1:

0
2
5
4
1
输入样例#2:

5 5
1 2 –3
1 5 –1
2 5 –1
5 1 –5
4 1 4
输出样例#2:

NO SOLUTION

说明

由@zhouyonglong提供SPJ

查分约束构造Ti-Tj≤b

spfa解决

#include<cstdio>
#include<cstring>
#include<algorithm> using namespace std;
int n,m;
struct node{
int next,v,w;
}edge[];
int head[];
int num;
void add_edge(int x,int y,int w)
{
edge[++num].next=head[x];edge[num].v=y;edge[num].w=w;head[x]=num;
}
int dis[];
bool vis[];
bool spfa(int x)
{
vis[x]=;
for(int i=head[x];i;i=edge[i].next)
{
int v=edge[i].v;
if(dis[v]>dis[x]+edge[i].w)
{
dis[v]=dis[x]+edge[i].w;
if(!vis[v])
{
if(!spfa(v)) return false;
}
else return false;
}
}
vis[x]=;
return true;
}
int main()
{
memset(dis,0x3f3f3f,sizeof dis);
scanf("%d%d",&n,&m);
int a,b,c;
for(int i=;i<=m;i++)
{
scanf("%d%d%d",&a,&b,&c);
add_edge(b,a,c);
}
for(int i=;i<=n;i++) add_edge(,i,);
dis[]=;
vis[]=;
if(!spfa())
{
puts("NO SOLUTION");return ;
}
int minn=0x7fffffff;
for(int i=;i<=n;i++)
{
minn=min(minn,dis[i]);
}
for(int i=;i<=n;i++)
printf("%d\n",dis[i]-minn);
return ;
}

luogu P1260 工程规划的更多相关文章

  1. luogu P1260 工程规划(luogu wa)don't know way

    题目描述 造一幢大楼是一项艰巨的工程,它是由n个子任务构成的,给它们分别编号1,2,…,n(5≤n≤1000).由于对一些任务的起始条件有着严格的限制,所以每个任务的起始时间T1,T2,…,Tn并不是 ...

  2. 2021.08.16 P1260 工程规划(差分约束)

    2021.08.16 P1260 工程规划(差分约束) 重点: 1.跑最短路是为了满足更多约束条件. P1260 工程规划 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 造 ...

  3. 洛谷—— P1260 工程规划

    https://www.luogu.org/problem/show?pid=1260 题目描述 造一幢大楼是一项艰巨的工程,它是由n个子任务构成的,给它们分别编号1,2,…,n(5≤n≤1000). ...

  4. 洛谷 P1260 工程规划(差分约束)

    题目描述 造一幢大楼是一项艰巨的工程,它是由n个子任务构成的,给它们分别编号1,2,…,n(5≤n≤1000).由于对一些任务的起始条件有着严格的限制,所以每个任务的起始时间T1,T2,…,Tn并不是 ...

  5. P1260 工程规划 (差分约束)

    题目链接 Solution 差分约束. 差分约束似乎精髓就两句话: 当我们把不等式整理成 \(d[a]+w<=d[b]\) 时,我们求最长路. 整理成 \(d[a]+w>=d[b]\) 时 ...

  6. IT基础架构规划方案二(计算机系统与机房规划规划)

    计算机系统规划       服务器硬件选型规划方案       根据对某集团的实际调研,获取了企业业务应用系统的建设情况,随着企业信息化建设的推进,需要对各种信息化管理系统和应用系统的服务器选型进行选 ...

  7. 工程管理,用网页就够了!——Wish3D Earth在线三维地球强势上线

    大型工程涉及到众多的施工队.管理单位和相关部门,相互之间需要传递的数据.文件的数量是惊人的,必须建立起有效的信息管理方法,使管理者及时把握工程的信息,全面准确地控制工程施工情况. 现代化的建筑工程管理 ...

  8. Winform开发框架之插件化应用框架实现

    支持插件化应用的开发框架能给程序带来无穷的生命力,也是目前很多系统.程序追求的重要方向之一,插件化的模块,在遵循一定的接口标准的基础上,可以实现快速集成,也就是所谓的热插拔操作,可以无限对已经开发好系 ...

  9. 浅谈最大流的Dinic算法

    PART 1 什么是网络流 网络流(network-flows)是一种类比水流的解决问题方法,与线性规划密切相关.网络流的理论和应用在不断发展,出现了具有增益的流.多终端流.多商品流以及网络流的分解与 ...

随机推荐

  1. Hibernate映射文件配置(hbm.xml和注解方式)

    一:通过*.hbm.xml配置实体的实现方式 mappingResources用于指定少量的hibernate配置文件像这样 Xml代码  <property name="mappin ...

  2. Bootstrap历练实例:禁用的按钮

    <!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content=& ...

  3. JsonUtils工具类

    public class JsonUtils { public static void printTimeObject(Object obj, HttpServletResponse response ...

  4. Respond.js-----20150415

    Respond.js让IE6-8支持CSS3 Media Query. Bootstrap里面就引入了这个js文件,从名字看出来是自适应的兼容.打开IE看了一下,效果挺好的,自适应的效果挺好的.Res ...

  5. ZJOI2018游记Round1

    广告 ZJOI2018Round2游记 All Falls Down 非常感谢学弟学妹们捧场游记虽然这是一篇假游记 ZJOI Round1今天正式落下帷幕.在这过去的三天里遇到了很多朋友,见识了很多有 ...

  6. 如何用纯 CSS 创作一个记事本翻页动画

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/qKOPGw 可交互视频教 ...

  7. Cookies和Session的区别和理解

    Cookies和Session的区别和理解 cookie机制 Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器.IETF RFC 2965 HTTP State Man ...

  8. 【03】const

    [03]const 魔芋总结: 1,声明的是常量,一经声明,不得修改.必须声明的同时并赋值.否则报错. 2,只在声明所在的块级作用域内有效. 3,const命令声明的常量也是不提升,同样存在暂时性死区 ...

  9. JavaScript括号中什么什么不加引号什么时候加引号?

    *****我的QQ号:1539832180.欢迎一起讨论学习.***** 1.如果是你定义的变量,不能加引号. 因为在大多数语言里面,单引号(或双引号)里面的内容表示的都是字符串. 2.如果是你定义的 ...

  10. redux学习总结

    redux学习总结 *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !imp ...