网站做相片,做网站要空间还是服务器,外链工具软件,秦皇岛网站建设价格【题目描述】花椰妹喜欢看灯笼。有一条铁路#xff0c;长度为L-1#xff0c;最左端为1号点#xff0c;最右端为L号点。每两个相邻点距离为1。现在有的单位点上挂着灯笼#xff0c;这些点的编号p满足是某个整数v的倍数。但是这条铁路上还有一辆火车#xff0c;它的车尾在点…【题目描述】花椰妹喜欢看灯笼。有一条铁路长度为L-1最左端为1号点最右端为L号点。每两个相邻点距离为1。现在有的单位点上挂着灯笼这些点的编号p满足是某个整数v的倍数。但是这条铁路上还有一辆火车它的车尾在点x右侧车头在点y左侧假设铁路从左向右延伸它会覆盖点x和y以及它们之间的部分使得花椰妹看不到这个区间内的灯笼。花椰妹会去t条不同的铁路上看灯笼。对于每一条铁路你都可以知道L,v,x,y四个信息。现在花椰妹问你她在每条铁路上能看见几个灯笼。 【输入格式】输入的第一行包含一个整数t1≤t≤10000。以下t行每一行四个整数L,v,x,y1≤L,v≤10000000001≤x≤y≤L。 【输出格式】每一行输出对应询问的答案总共t行。 思路 一开始的想法是直接循环总共的灯笼数减去被挡住的灯笼数显然超时啦然后就考虑怎么不使用循环计算灯笼数量。 【C语言实现】
# include stdio.h
int main()
{int t;scanf(%d, t); // 输入for (int i 0; i t; i) {int L, v, x, y;scanf(%d%d%d%d, L, v, x, y); // 输入int p (x - 1) / v; // x左侧灯笼即[1, x-1]这些是可以看见的灯笼的数量int q y / v; // y左侧灯笼, 即[1, y]这些包括能看见的灯笼的数量即x左侧灯笼加上被火车挡住的灯笼的数量即[x, y]int r L / v - (q - p); // 能看见的灯笼数是总共的灯笼数量减去被挡住的灯笼的数量printf(%d\n, r); // 输出}return 0;
}