Igallta
2024-11-19 15:41:10
一共有
而且:当前这一天是第一周的星期六。
问你,距离这一天最近的课还有多久上课。
首先,我们要输入。
cin>>n;
for(int i=1;i<=n;i++){
cin>>x>>y;
// .....
}
然后,我们思考:其实这道题就是算出每一节课距离当天的时间再取里面的最小值就可以了!
于是,我们使用一个变量
我们在信息学竞赛中一般使用 0x3f3f3f3f、0x7f7f7f7f、INT_MAX、1e9 等作为极大值。
int ans=0x3f3f3f3f;
现在,我们定义
首先,题目说间隔
所以我们在处理间隔
再处理星期
所以,我们便可以计算出
int k=x+1+(y-1)*7;
然后再一直计算最小值,这部分的代码:
for(int i=1;i<=n;i++){
cin>>x>>y;
int k=x+1+(y-1)*7;
if(ans>k){//如果最小值大了
ans=k;
}
}
最后记得输出!
cout<<ans;
本题考查同学们的日期日历计算能力和最小值最大值的编码能力。本题是一道较好的最小值训练题,希望各位以后能熟练掌握日期日历间隔的计算和最小值的计算,不要弄错初始值!