RT
我为什么下面的那个代码按照题解写的样例 2 出来是 −2 呀。。。
/kel
#include <iostream>
#include <cstdio>
#include <cmath>
#include <map>
using namespace std;
int t,n,m,ans;
map<int,map<int,int> > Map;
signed main()
{
scanf("%d",&t);
while(t--) {
n=m=0;
scanf("%d %d",&n,&m);
if (Map[n][m]) {printf("%d\n",Map[n][m]); continue; }
if (m<=1 || n<=1 || m>n) {printf("0\n"); continue;}
if (n==m || m==n-1) {printf("1\n"); continue;}
ans=floor(1.0*(n-1)/(1.0*m))-floor(1.0*(n-1)/(1.0*(m+1)))+floor(1.0*n/(1.0*m))-floor(1.0*n/(1.0*(m-1)));
// ans=abs(ans);
Map[n][m]=ans;
printf("%d\n",ans);
ans=0;
}
return 0;
}