csp练题记录(C语言,编译器dev c++)201812-1小明上学
一、题目描述
二、思路分析
由于是第一道题,没啥难度,关键在于阅读理解,感觉题目叙述的有点绕(主要是自己容易把简单问题复杂化,说到底还是没读懂题意(。•́︿•̀。))
输入的r,y,g代表的是三种交通信号灯各自亮的时间,然后是n行数据,我把它看作是小明上学路上经历的n个不同状态,可分为两大类:1、没有信号灯和2、有信号灯的情况。
对1:k=0,上学时间得加上t;
对2:k=1,2,3分别对应红、黄,绿灯,按照交通规则,只有绿灯能通过,其余两种灯的等待时间各自不同。(无需考虑过信号灯需要时间,题目没说,不用管)
三、代码
#include<stdio.h>
int main()
{
int red,yel,gre,n;
scanf("%d %d %d",&red,&yel,&gre);
scanf("%d",&n);
int k,t,time=0;
while(n--)
{
scanf("%d %d",&k,&t);
switch(k)
{
//无灯
case 0:time+=t;break;
//红灯
case 1:time+=t;break;
//黄灯
case 2:time=time+t+red;break;
//绿灯
case 3:break;
}
}
printf("%d",time);
return 0;
}
四、反思总结
一定要读懂题意,不要拿自己的生活经验去臆测,否则只是自寻烦恼,没必要,还解不出题来。