poj 1716 Integer Intervals

来源:互联网 发布:python自动化运维意义 编辑:程序博客网 时间:2024/05/20 15:11

与 zoj 1508 Intervals相同,均为差分约束,http://blog.csdn.net/unimen/article/details/6719738

/*  Name: poj 1716Integer Intervals  Author: Unimen  Date: 27/08/11 09:53  Description: 差分约束 *//*解题报告:与zoj 1508Intervals 相同  */ #include <iostream>#include <cstring>using namespace std;const int MAXN = 10010;struct {int a, b;}Edge[MAXN];int n;int iMax, iMin;int dis[MAXN];int bellman_ford(){int i;bool bUpdata = true;while(bUpdata){bUpdata = false;for(i=1; i<=n; ++i){if(dis[Edge[i].b] < dis[Edge[i].a] + 2){dis[Edge[i].b] = dis[Edge[i].a] + 2;bUpdata = true;}}for(i=iMin; i<=iMax; ++i){if(dis[i] < dis[i-1]){dis[i] = dis[i-1];bUpdata = true;}}for(i=iMax; i>=iMin; --i){if(dis[i-1] < dis[i] -1){dis[i-1] = dis[i] - 1;bUpdata = true;}}}return dis[iMax] - dis[iMin-1];}int main(){int i;while(cin>>n){iMax = 0, iMin = 1000000000;for(i=1; i<=n; ++i){int a, b;cin>>a>>b;Edge[i].a = a - 1;Edge[i].b = b;if(iMin > a)iMin = a;if(iMax < b)iMax = b;}memset(dis, 0, sizeof(dis));cout<<bellman_ford()<<endl;}return 0;}




原创粉丝点击