• hdoj1384


    无语啊,一个细节花了我一上午的时间,提交了40多次!

    Problem : 1384 ( Intervals )     Judge Status : Accepted
    RunId : 2659165    Language : G++    Author : huwenbiao
    Code Render Status : Rendered By HDOJ G++ Code Render Version 0.01 Beta
    /***************************************************************\
    *Author:Hu Wenbiao
    *Created Time: Thu 22 Jul 2010 10:32:53 AM CST
    *File Name: main.cpp
    *Description:差分约束系统
    \***************************************************************/

    //*========================*Head File*========================*\\

    #include<iostream>
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    /*----------------------*Global Variable*----------------------*/
    struct
    E{
    int
    s,e,len;
    }
    edges[
    151001];
    int
    _min,_max,n,dist[
    50002];//这个地方应大于50001,因为后面加1
    //的缘故,就因为错这一点,我花了一
    //上午的时间!
    //*=======================*Main Program*=======================*//
    using namespace std;

    int
    main(){

    //freopen("input","r",stdin);
    while(scanf("%d",&n)!=EOF){
    _min=
    99999;
    _max=-
    1;
    for
    (int i=
    0;i<n;++i){//s[b]-s[a-1]>c
    scanf("%d%d%d",&edges[i].s,&edges[i].e,&edges[i].len);
    edges[i].e++;
    //之所以加1,是因为数据是从0开始的S[b]-S[a-1]>c
    //a-1可能会<0,所以全加1

    if
    (_min>edges[i].s)
    //最小顶点
    _min=edges[i].s;
    if
    (_max<edges[i].e)
    //最大顶点
    _max=edges[i].e;
    }

    for
    (int i=_min;i<_max;++i){
    //s[b]-s[b-1]>=0
    edges[n].s=i;//用n来记录边的数目
    edges[n].e=i+1;
    edges[n].len=
    0;
    n++;
    }

    for
    (int i=_max;i>_min;i--){
    //s[b]-s[b-1]<=1即s[b-1]-s[b]>=-1
    edges[n].s=i;
    edges[n].e=i-
    1;
    edges[n].len=-
    1;
    n++;
    }

    memset(dist,-
    1,sizeof(dist));
    dist[_min]=
    0;
    int
    s,e,len;
    for
    (int i=
    0;i<_max-_min;i++){//Bellman-Ford求最长路径
    bool flag=1;
    for
    (int j=
    0;j<n;j++){
    s=edges[j].s,e=edges[j].e,len=edges[j].len;
    if
    (dist[s]!=-
    1&&dist[e]<dist[s]+len){
    flag=
    false;
    dist[e]=dist[s]+len;
    }
    }

    if
    (flag)break;
    }

    printf(
    "%d\n",dist[_max]);
    }
    }


  • 相关阅读:
    iphone备忘录存储路径
    wp7常用Task,启动器与选择器
    sql ce 修改表数据
    MessageBox.Show()中的换行
    莫名异常
    wp7中设置toolkit的工具栏图标不能正常显示(DatePicker和TimePicker)
    json 解析
    wp7弹出提示框退出程序
    第一个ios程序
    TextBox只显示数字
  • 原文地址:https://www.cnblogs.com/Open_Source/p/1904919.html
Copyright © 2020-2023  润新知