贪心算法 Problem G 1006

来源:互联网 发布:苹果电脑安装网页软件 编辑:程序博客网 时间:2024/06/05 15:59

Problem G  Problem ID:1006 


简单题意:给出若干组电梯要按顺序到达的楼层,向上移动一层需要6秒,向下移动一层需要4秒,每到达一层需要等待5秒。问完成给出的表中的任务共需要多长时间。


解题思路形成过程:比较简单的一个问题,用两个if语句进行循环判断、计算即可。


感想:当使用类似while(n--)的语句时,若以后还想用到n的值,一定不要忘记在n--之前对n的值进行保存。


代码:
#include<iostream>#include<algorithm>#include<stdlib.h>#include<vector>using namespace std;int main(){    int n;    while(scanf("%d",&n)!=EOF&&n){        int temp,total=0,all=n;  //对输入的n值进行保存!        vector <int> s;        while(n--){            cin>>temp;            s.push_back(temp);        }        total=s[0]*6+5;        for(int i=1;i<all;++i){            if(s[i]>s[i-1])                total+=(s[i]-s[i-1])*6+5;            else                total+=(s[i-1]-s[i])*4+5;        }        cout<<total<<endl;        s.clear();    }    return 0;}


0 0
原创粉丝点击