索引
链接: https://codeforces.com/contest/1066/problem/A.
题解
如果最简单的从 l 到 r 依次枚举的话,显然是不行的,又看了看题目发现题目中并没有给出 l 和 r 的数据范围,所以更行不通了(这属于傻瓜解法吧)
题目的要求是统计出货车能看见灯笼的数目, l 和 r 之间的灯笼是看不见的
即 L 所有的灯笼 - r (包含 r ) 之前的灯笼 + l (不包含 l )
之前的灯笼
一个数学式子就ac了,有点像中学的数学题
ac代码
#include<iostream>
#include<cstring>
#include<algorithm>
#include<vector>
#include<cmath>
#include<map>
using namespace std;
const int N=1e6+10;
string t,s;
int a[N];
map<char,int> m1,m2;
int main()
{
int n,s,j,i,v,l,r,k,t;
cin>>n;
while(n--){
cin>>s>>v>>l>>r;
cout<<(s/v-r/v+(l-1)/v)<<endl;
}
return 0;
}