题目链接

Solution

差分约束.

差分约束似乎精髓就两句话:

  • 当我们把不等式整理成 \(d[a]+w<=d[b]\) 时,我们求最长路。
  • 整理成 \(d[a]+w>=d[b]\) 时,我们求最短路。

所以对于本题的式子 \(Ti-Tj \leq b\) 可以写成: \(T_i-b \leq T_j\).

然后就从 \(i\) 向 \(j\) 连一条 \(-b\) 的边然后跑最长路即可.

按式子可以随便搞.

Code

#include<bits/stdc++.h>
using namespace std;
const int maxn=5008;
struct sj{
int to,next,w;
}a[maxn];
int kk,inf,n,m,cnt[maxn],flag;
int head[maxn],size;
int v[maxn],dis[maxn]; void add(int x,int y,int z)
{
a[++size].to=y;
a[size].next=head[x];
head[x]=size;
a[size].w=z;
} void SPFA(int s)
{
queue<int>q;
q.push(s); dis[s]=0;
while(!q.empty())
{
int x=q.front(); q.pop();
cnt[x]++;
if(cnt[x]>n){{cout<<"NO SOLUTION"<<endl;exit(0);}}
for(int i=head[x];i;i=a[i].next)
{
int tt=a[i].to;
if(dis[tt]>dis[x]+a[i].w)
{
dis[tt]=dis[x]+a[i].w;
if(!v[tt])
q.push(tt),v[tt]=1;
}
}
v[x]=0;
}
} int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++)
{
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
add(y,x,z);
}
memset(dis,127,sizeof(dis));
for(int i=1;i<=n;i++)
{
if(cnt[i])continue;
SPFA(i);
}
for(int i=1;i<=n;i++)
kk=min(kk,dis[i]);
for(int i=1;i<=n;i++)
printf("%d\n",dis[i]-kk);
}

最新文章

  1. C# 在Repeater 的ItemDataBound 如何转换e.Item.DataItem 的类型
  2. webapi5
  3. IoC/DI基本思想的演变
  4. C# 中正确实现 IDisposable 接口
  5. nginx常见内部参数,错误总结
  6. Windows Service 开发,安装与调试
  7. 常用UML模型简要小结
  8. vue中的重要特性
  9. hdu 1541 Stars(树状数组)
  10. 【shell脚本实例】一个恶作剧—— kill掉占用CPU较高的matlab进程
  11. java基础--面对对象
  12. 服务器部署Apache+PHP+MYSQL+Laravel
  13. Django 安装 创建项目
  14. 数据驱动-参数化(Parameters)
  15. https://blog.csdn.net/doegoo/article/details/50749817
  16. Nginx完美解决前后端分离端口号不同导致的跨域问题
  17. 理解Java枚举类型
  18. HP1020打印机“传递给系统调用的数据区域太小” 如何处理?
  19. JSON字符串转C#实体Class类
  20. 关于idtcpserver的使用

热门文章

  1. 3. Netbackup 7.6客户端的安装(windows/linux)
  2. Typescript的优势
  3. Meaningful Mean
  4. xml文件读取
  5. 交叉熵cross entropy和相对熵(kl散度)
  6. java String中的replace(oldChar,newChar) replace(CharSequence target,CharSequence replacement) replaceAll replaceFirst 面试题:输入英文语句,单词首字符大写后输出 char String int 相互转换
  7. 控件中添加的成员变量value和control的区别
  8. dev gridview columns代码管理
  9. 02Vs2013常用路径配置
  10. paper:基于verilog HDL 的高速可综合FSM设计