P2077 【红绿灯】
这题是一道纯模拟题,只需要用一个变量表示当前汽车行驶了多少分钟
不难发现,这个神奇的变量可以直接用m表示,还可以省去一个变量。。。(好像并没有什么卵用)
具体解释看代码:::
1 #include<cmath> 2 #include<cstdio> 3 #include<iostream> 4 #include<cstring> 5 #include<algorithm> 6 using namespace std; 7 const int N=100005;//定义一个不可改变的变量 8 int n,m; 9 int a[N],r[N],g[N];//每个路口间的距离,红灯时间(red),绿灯时间(green) 10 int main(){ 11 cin>>n>>m;//读入 12 for(int i=1;i<n;i++){//记住,有n个路口,只有n-1个距离 13 cin>>a[i]; 14 } 15 for(int i=1;i<=n;i++){//读入红灯时间 16 cin>>r[i]; 17 } 18 for(int i=1;i<=n;i++){//读入绿灯时间 19 cin>>g[i]; 20 } 21 for(int i=1;i<=n;i++){//对时间进行处理 22 if(m%(r[i]+g[i])>g[i])m+=(r[i]+g[i])-m%(r[i]+g[i]);//如果当前时间不在绿灯范围内,就将m加上当前时间与最近的当前路口的绿灯的时间差 23 cout<<m<<endl;//输出时间 24 m+=a[i];//加上通过第i到i+1个路口间距离的时间 25 } 26 return 0; 27 }//完美结束 最后,祝大家编程顺利!!!
啦啦啦新人开博鼓励一下吧~~~