查分约束的总结
2009-01-09 18:45
113 查看
在做了几道查分约束的题目后终于找到一点感觉了。查分约束就是把形式类似于:
A[i1] - A[j1] <= X1
A[i2] - A[j2] <= X2
....
的方程全部列写出来,把A[i]作为源点,A[j]作为末点,X作为权,把边全部放入数组中进行Bellman-Ford。至于初始化和判断条件看具体的情况。
下面是一道例题poj的3159:
#include <stdio.h>
#include <memory.h>
#define N 30010
#define M 150010
#define NIL 99999999
int next[M];
int v[M];
int w[M];
int first
;
int d
;
int n,m;
void input()
{
int i,x,y,xy;
scanf("%d%d",&n,&m);
for(i = 1; i <= m; i++) {
scanf("%d%d%d",&x,&y,&xy);
next[i] = first[x];
v[i] = y;
w[i] = xy;
first[x] = i;
}
}
int BF()
{
int i;
bool in
;
int stack
,top=0,a,p;
for(i = 1; i <=n;i++)
d[i]=NIL;
memset(in,false,sizeof(in));
d[1] = 0;
stack[top++]=1;
in[1]=true;
while(top){
a=stack[--top];
in[a]=false;
p=first[a];
while(p) {
if( d[a] + w[p] < d[v[p]]) {
d[v[p]] = d[a] + w[p];
if(!in[v[p]]) {
in[v[p]]=true;
stack[top++]=v[p];
}
}
p=next[p];
}
}
return d
;
}
int main()
{
input();
printf("%d/n",BF());
return 0;
}
懒得写了,呵呵。刷题去~~
A[i1] - A[j1] <= X1
A[i2] - A[j2] <= X2
....
的方程全部列写出来,把A[i]作为源点,A[j]作为末点,X作为权,把边全部放入数组中进行Bellman-Ford。至于初始化和判断条件看具体的情况。
下面是一道例题poj的3159:
#include <stdio.h>
#include <memory.h>
#define N 30010
#define M 150010
#define NIL 99999999
int next[M];
int v[M];
int w[M];
int first
;
int d
;
int n,m;
void input()
{
int i,x,y,xy;
scanf("%d%d",&n,&m);
for(i = 1; i <= m; i++) {
scanf("%d%d%d",&x,&y,&xy);
next[i] = first[x];
v[i] = y;
w[i] = xy;
first[x] = i;
}
}
int BF()
{
int i;
bool in
;
int stack
,top=0,a,p;
for(i = 1; i <=n;i++)
d[i]=NIL;
memset(in,false,sizeof(in));
d[1] = 0;
stack[top++]=1;
in[1]=true;
while(top){
a=stack[--top];
in[a]=false;
p=first[a];
while(p) {
if( d[a] + w[p] < d[v[p]]) {
d[v[p]] = d[a] + w[p];
if(!in[v[p]]) {
in[v[p]]=true;
stack[top++]=v[p];
}
}
p=next[p];
}
}
return d
;
}
int main()
{
input();
printf("%d/n",BF());
return 0;
}
懒得写了,呵呵。刷题去~~
相关文章推荐
- 图论总结,查分约束系统讲解,最短路,最小生成树,二分图
- 约束总结及创建用户
- 自己总结的一些T-SQL建库建表建约束的知识.
- 约束总结
- Oracle之约束总结
- javaweb学习总结十四(xml约束之Schema)
- ORACLE约束总结
- 项目总结1—Mysql创建表外键约束报错总结
- 查分约束系统详解
- MySQL学习笔记之数据定义表约束,分页方法总结
- 约束constraint的用法总结
- POJ1201(查分约束)
- SQL重命名列 增添列语句总结 SQL重命名表 SQL添加约束
- 数据库约束的一些用法总结(constraint)
- poj 1201 Interval (查分约束)
- 【查分约束】我爱你啊
- POJ 2983 查分约束+SPFA
- 【Oracle】Oracle约束的总结
- mysql外键约束总结
- STL中的约束器相关总结